summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGeremia Taglialatela <[email protected]>2023-05-22 18:10:10 +0200
committerGeremia Taglialatela <[email protected]>2023-05-22 18:10:10 +0200
commit3b4fc2bfaa6563d071322de21434aeae6eff9d8a (patch)
tree5bca4235d1be7d92f23e225e8ed59b3e9c3758ba
parent6752225bbb8a9eec905ec02a98f1a25a309c404a (diff)
downloadcaxlsx-3b4fc2bfaa6563d071322de21434aeae6eff9d8a.tar.gz
caxlsx-3b4fc2bfaa6563d071322de21434aeae6eff9d8a.zip
Fix safe class comparison offenses
Fixes: - Style/ClassCheck - Style/ClassEqualityComparison While `is_a?` and `kind_of?` are equivalent, there is a 5% gain when switching from class comparison to `intance_of?` ``` Comparison: instance_of: 16902635.9 i/s class comparison: 16061288.3 i/s - 1.05x (± 0.00) slower ```
-rw-r--r--.rubocop_todo.yml21
-rw-r--r--lib/axlsx/drawing/axes.rb2
-rw-r--r--lib/axlsx/workbook/worksheet/pane.rb2
-rw-r--r--lib/axlsx/workbook/worksheet/selection.rb2
-rw-r--r--lib/axlsx/workbook/worksheet/sheet_view.rb2
5 files changed, 4 insertions, 25 deletions
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1de00edb..c1d2a7d8 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -77,11 +77,6 @@ Lint/UnusedMethodArgument:
- 'lib/axlsx/package.rb'
- 'lib/axlsx/util/validators.rb'
-Lint/UselessAssignment:
- Exclude:
- - 'lib/axlsx/workbook/worksheet/header_footer.rb'
- - 'lib/axlsx/workbook/worksheet/sheet_protection.rb'
-
# Configuration parameters: MinSize.
Performance/CollectionLiteralInLoop:
Exclude:
@@ -112,22 +107,6 @@ Style/CaseLikeIf:
Exclude:
- 'lib/axlsx/workbook/worksheet/merged_cells.rb'
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: is_a?, kind_of?
-Style/ClassCheck:
- Exclude:
- - 'lib/axlsx/drawing/axes.rb'
-
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: AllowedMethods, AllowedPatterns.
-# AllowedMethods: ==, equal?, eql?
-Style/ClassEqualityComparison:
- Exclude:
- - 'lib/axlsx/workbook/worksheet/pane.rb'
- - 'lib/axlsx/workbook/worksheet/selection.rb'
- - 'lib/axlsx/workbook/worksheet/sheet_view.rb'
-
Style/ClassVars:
Exclude:
- 'lib/axlsx.rb'
diff --git a/lib/axlsx/drawing/axes.rb b/lib/axlsx/drawing/axes.rb
index 6a74c879..010fe8cd 100644
--- a/lib/axlsx/drawing/axes.rb
+++ b/lib/axlsx/drawing/axes.rb
@@ -32,7 +32,7 @@ module Axlsx
def to_xml_string(str = +'', options = {})
if options[:ids]
# CatAxis must come first in the XML (for Microsoft Excel at least)
- sorted = axes.sort_by { |name, axis| axis.kind_of?(CatAxis) ? 0 : 1 }
+ sorted = axes.sort_by { |name, axis| axis.is_a?(CatAxis) ? 0 : 1 }
sorted.each { |axis| str << '<c:axId val="' << axis[1].id.to_s << '"/>' }
else
axes.each { |axis| axis[1].to_xml_string(str) }
diff --git a/lib/axlsx/workbook/worksheet/pane.rb b/lib/axlsx/workbook/worksheet/pane.rb
index a018dc74..6cab87b9 100644
--- a/lib/axlsx/workbook/worksheet/pane.rb
+++ b/lib/axlsx/workbook/worksheet/pane.rb
@@ -108,7 +108,7 @@ module Axlsx
# @see top_left_cell
def top_left_cell=(v)
- cell = (v.class == Axlsx::Cell ? v.r_abs : v)
+ cell = (v.instance_of?(Axlsx::Cell) ? v.r_abs : v)
Axlsx::validate_string(cell)
@top_left_cell = cell
end
diff --git a/lib/axlsx/workbook/worksheet/selection.rb b/lib/axlsx/workbook/worksheet/selection.rb
index 556651e3..1a2633b4 100644
--- a/lib/axlsx/workbook/worksheet/selection.rb
+++ b/lib/axlsx/workbook/worksheet/selection.rb
@@ -74,7 +74,7 @@ module Axlsx
# @see active_cell
def active_cell=(v)
- cell = (v.class == Axlsx::Cell ? v.r_abs : v)
+ cell = (v.instance_of?(Axlsx::Cell) ? v.r_abs : v)
Axlsx::validate_string(cell)
@active_cell = cell
end
diff --git a/lib/axlsx/workbook/worksheet/sheet_view.rb b/lib/axlsx/workbook/worksheet/sheet_view.rb
index d06715fe..73e7533e 100644
--- a/lib/axlsx/workbook/worksheet/sheet_view.rb
+++ b/lib/axlsx/workbook/worksheet/sheet_view.rb
@@ -166,7 +166,7 @@ module Axlsx
# @see top_left_cell
def top_left_cell=(v)
- cell = (v.class == Axlsx::Cell ? v.r_abs : v)
+ cell = (v.instance_of?(Axlsx::Cell) ? v.r_abs : v)
Axlsx::validate_string(cell)
@top_left_cell = cell
end