summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGeremia Taglialatela <[email protected]>2023-05-26 15:21:13 +0200
committerGeremia Taglialatela <[email protected]>2023-05-26 15:21:13 +0200
commit2ed27823eaeb345e383343fb70dfa3f205f71ca1 (patch)
treed0eb22ca642d70272fa4e5c4f30e30e7c9f38685
parent63a6edf1e191cf91fb80717ebae67c78af0d7db5 (diff)
downloadcaxlsx-2ed27823eaeb345e383343fb70dfa3f205f71ca1.tar.gz
caxlsx-2ed27823eaeb345e383343fb70dfa3f205f71ca1.zip
Fix Style/HashEachMethods offense
Replace `keys.each` with hash iteration ```rb MY_HASH = { first: '1', second: '2', third: '3' } %i[ips memory].each do |benchmark| Benchmark.send(benchmark) do |x| x.report("each_key") { MY_HASH.each_key { |k| MY_HASH[k] } } x.report("keys.each") { MY_HASH.keys.each { |k| MY_HASH[k] } } x.report("each") { MY_HASH.each { |k, v| v } } x.compare! end end ``` ``` IPS Comparison: each: 4283031.6 i/s each_key: 3683407.4 i/s - 1.16x (± 0.00) slower keys.each: 3387425.1 i/s - 1.26x (± 0.00) slower Memory Comparison: each_key: 0 allocated each: 0 allocated - same keys.each: 40 allocated - Infx more ```
-rw-r--r--.rubocop_todo.yml7
-rw-r--r--lib/axlsx/workbook/worksheet/rich_text_run.rb6
2 files changed, 3 insertions, 10 deletions
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index bb6a38f9..4aaaa2ed 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -183,13 +183,6 @@ Style/GuardClause:
- 'lib/axlsx/workbook/worksheet/table.rb'
- 'lib/axlsx/workbook/worksheet/worksheet.rb'
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: AllowedReceivers.
-# AllowedReceivers: Thread.current
-Style/HashEachMethods:
- Exclude:
- - 'lib/axlsx/workbook/worksheet/rich_text_run.rb'
-
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowIfModifier.
Style/IfInsideElse:
diff --git a/lib/axlsx/workbook/worksheet/rich_text_run.rb b/lib/axlsx/workbook/worksheet/rich_text_run.rb
index ffd2f941..e3522d4c 100644
--- a/lib/axlsx/workbook/worksheet/rich_text_run.rb
+++ b/lib/axlsx/workbook/worksheet/rich_text_run.rb
@@ -211,14 +211,14 @@ module Axlsx
data = data.select { |key, value| valid.include?(key) && !value.nil? }
str << '<r><rPr>'
- data.keys.each do |key|
+ data.each do |key, val|
case key
when :font_name
str << '<rFont val="' << font_name << '"/>'
when :color
- str << data[key].to_xml_string
+ str << val.to_xml_string
else
- str << '<' << key.to_s << ' val="' << xml_value(data[key]) << '"/>'
+ str << '<' << key.to_s << ' val="' << xml_value(val) << '"/>'
end
end
clean_value = Axlsx::trust_input ? @value.to_s : ::CGI.escapeHTML(Axlsx::sanitize(@value.to_s))