diff options
| author | Geremia Taglialatela <[email protected]> | 2023-05-19 12:55:59 +0200 |
|---|---|---|
| committer | Geremia Taglialatela <[email protected]> | 2023-05-19 12:55:59 +0200 |
| commit | 497457b7a9221944a91d595465599e8451d678e4 (patch) | |
| tree | b61a33dccbd472c4dc157750177cf61d62540a03 | |
| parent | 6a4b82def2e94b4811c38c37e606d426710d1e6c (diff) | |
| download | caxlsx-497457b7a9221944a91d595465599e8451d678e4.tar.gz caxlsx-497457b7a9221944a91d595465599e8451d678e4.zip | |
Fix hash transformation related offenses
- Style/HashConversion
- Style/HashTransformKeys
```
Comparison (IPS):
transform_keys: 2890030.0 i/s
Hash[map]: 1777641.0 i/s - 1.63x (± 0.00) slower
Comparison (Memory):
transform_keys: 168 allocated
Hash[map]: 248 allocated - 1.48x more
```
| -rw-r--r-- | .rubocop_todo.yml | 13 | ||||
| -rw-r--r-- | lib/axlsx/workbook/worksheet/cell_serializer.rb | 2 | ||||
| -rw-r--r-- | lib/axlsx/workbook/worksheet/rich_text_run.rb | 2 |
3 files changed, 2 insertions, 15 deletions
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 19c4b3f5..20efee78 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -223,13 +223,6 @@ Style/GuardClause: - 'lib/axlsx/workbook/worksheet/table.rb' - 'lib/axlsx/workbook/worksheet/worksheet.rb' -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowSplatArgument. -Style/HashConversion: - Exclude: - - 'lib/axlsx/workbook/worksheet/cell_serializer.rb' - - 'lib/axlsx/workbook/worksheet/rich_text_run.rb' - # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: AllowedReceivers. # AllowedReceivers: Thread.current @@ -244,12 +237,6 @@ Style/HashEachMethods: Style/HashSyntax: Enabled: false -# This cop supports unsafe autocorrection (--autocorrect-all). -Style/HashTransformKeys: - Exclude: - - 'lib/axlsx/workbook/worksheet/cell_serializer.rb' - - '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/cell_serializer.rb b/lib/axlsx/workbook/worksheet/cell_serializer.rb index f45d3c73..dceca7eb 100644 --- a/lib/axlsx/workbook/worksheet/cell_serializer.rb +++ b/lib/axlsx/workbook/worksheet/cell_serializer.rb @@ -26,7 +26,7 @@ module Axlsx def run_xml_string(cell, str = +'') if cell.is_text_run? valid = RichTextRun::INLINE_STYLES - [:value, :type] - data = Hash[Axlsx.instance_values_for(cell).map { |k, v| [k.to_sym, v] }] + data = Axlsx.instance_values_for(cell).transform_keys(&:to_sym) data = data.select { |key, value| valid.include?(key) && !value.nil? } RichText.new(cell.value.to_s, data).to_xml_string(str) elsif cell.contains_rich_text? diff --git a/lib/axlsx/workbook/worksheet/rich_text_run.rb b/lib/axlsx/workbook/worksheet/rich_text_run.rb index 883d01d3..ffd2f941 100644 --- a/lib/axlsx/workbook/worksheet/rich_text_run.rb +++ b/lib/axlsx/workbook/worksheet/rich_text_run.rb @@ -207,7 +207,7 @@ module Axlsx # @return [String] def to_xml_string(str = +'') valid = RichTextRun::INLINE_STYLES - data = Hash[Axlsx.instance_values_for(self).map { |k, v| [k.to_sym, v] }] + data = Axlsx.instance_values_for(self).transform_keys(&:to_sym) data = data.select { |key, value| valid.include?(key) && !value.nil? } str << '<r><rPr>' |
