summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2023-06-09Merge pull request #278 from tagliala/chore/invert-nil-checksZsolt Kozaroczy
Invert nil checks to improve performance
2023-06-09Merge pull request #279 from tagliala/chore/fix-safe-offenses-in-vml-shapeZsolt Kozaroczy
Refactor random char generation
2023-06-09Refactor random char generationGeremia Taglialatela
Fix the following safe offenses: - Style/OperatorMethodCall - Style/RandomWithOffset And use Array.new to avoid an extra allocation: ``` Comparison (IPS): Array.new(8) { rand(65..89).chr }.join: 492433.7 i/s (0...8).map { 65.+(rand(25)).chr }.join: 432155.8 i/s - 1.14x (± 0.00) slower Comparison (Memory): Array.new(8) { rand(65..89).chr }.join: 440 allocated (0...8).map { 65.+(rand(25)).chr }.join: 560 allocated - 1.27x more ```
2023-06-06Invert nil checks to improve performanceGeremia Taglialatela
Check for `nil` before checking for more expensive conditions which include a method call or an array scan. Also removes redundant comments on self-explanatory code
2023-06-05Merge pull request #277 from tagliala/chore/fix-format-string-offensesZsolt Kozaroczy
Fix format string offenses
2023-06-05Prefer `Kernel#format` to `String#%`Geremia Taglialatela
This commit fixes cases that cannot be detected by RuboCop Ref: https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/FormatString
2023-06-05Fix Style/RedundantInterpolation offensesGeremia Taglialatela
`%` is an operation on `String` that will return a new `String`, so the interpolation is redundant Also adds a missing spec on PivotTable#rels_pn ``` IPS: uninterpolated: 4045715.7 i/s interpolated: 2359775.6 i/s - 1.71x (± 0.00) slower Memory: uninterpolated: 160 allocated interpolated: 232 allocated - 1.45x more ```
2023-06-05Fix Style/FormatString offensesGeremia Taglialatela
`Kernel#format` is faster and will avoid to allocate an array compared to `String#%`. ``` IPS: kernel_format: 3877614.2 i/s string_percent: 3531475.0 i/s - 1.10x (± 0.00) slower Memory: kernel_format: 160 allocated string_percent: 200 allocated - 1.25x more ```
2023-06-05Merge pull request #276 from tagliala/performance/avoid-unnecessary-method-callZsolt Kozaroczy
Avoid unnecessary calls to `parse_options`
2023-06-05Merge pull request #274 from tagliala/chore/fix-negated-if-offensesZsolt Kozaroczy
Fix negated if offenses
2023-06-05Merge pull request #271 from tagliala/chore/fix-redundant-parenthesesZsolt Kozaroczy
Remove redundant parentheses
2023-06-03Avoid unnecessary calls to `parse_options`Geremia Taglialatela
`Cell#initialize` is one of the most used methods in the library, so a small improvement here will make a lot of difference on the overall performance. The impact of this change is negligible when `options` has elements but is substantial when it is empty. ``` Comparison (empty options): parse unless: 11636650.6 i/s parse: 8109825.4 i/s - 1.43x (± 0.00) slower Comparison (1 option): parse: 3548037.5 i/s parse unless: 3459029.7 i/s - same-ish: difference falls within error ```
2023-06-02Fix negated if offensesGeremia Taglialatela
Should also provide a negligible performance improvement, about 3% on Ruby 3.2 and 6% on Ruby 2.6 (M1 Pro)
2023-05-31Remove redundant parenthesesGeremia Taglialatela
- Style/ParenthesesAroundCondition - Style/RedundantParentheses - Style/TernaryParentheses `Style/ParenthesesAroundCondition` may be questionable, but a majority of comparison where not using parentheses, so offenses have been fixed for uniformity across the codebase
2023-05-31Merge pull request #270 from tagliala/chore/use-ruby-19-hash-syntaxZsolt Kozaroczy
Use Ruby 1.9 hash syntax
2023-05-31Use Ruby 1.9 hash syntaxGeremia Taglialatela
2023-05-31Merge pull request #268 from tagliala/chore/fix-symbol-proc-offensesZsolt Kozaroczy
Fix Style/SymbolProc offenses
2023-05-31Merge pull request #267 from tagliala/chore/freeze-mutable-constantsZsolt Kozaroczy
Fix Style/MutableConstant offenses
2023-05-31Merge pull request #266 from tagliala/chore/fix-yoda-condition-offenseZsolt Kozaroczy
Fix Style/YodaCondition offense
2023-05-31Merge pull request #265 from tagliala/chore/fix-conditional-assignment-offensesZsolt Kozaroczy
Fix Style/ConditionalAssignment offenses
2023-05-31Fix Style/SymbolProc offensesGeremia Taglialatela
This also provides a performance improvement ``` Comparison (array of 4 elements): map(&): 3643131.4 i/s map {}: 3488052.5 i/s - 1.04x (± 0.00) slower Comparison (array of 20 elements): map(&): 466013.9 i/s map {}: 408447.2 i/s - 1.14x (± 0.00) slower ```
2023-05-31Fix Style/MutableConstant offensesGeremia Taglialatela
2023-05-31Fix Style/YodaCondition offenseGeremia Taglialatela
2023-05-31Fix Style/ConditionalAssignment offensesGeremia Taglialatela
2023-05-31Merge pull request #249 from tagliala/chore/use-each-keyZsolt Kozaroczy
Fix Style/HashEachMethods offense
2023-05-31Merge pull request #263 from tagliala/chore/fix-string-concatenationZsolt Kozaroczy
Fix string concatenation in production code
2023-05-31Fix string concatenation offenses in production codeGeremia Taglialatela
2023-05-31Merge pull request #264 from tagliala/chore/improve-cell-referenceZsolt Kozaroczy
Improve absolute cell reference method
2023-05-31Merge pull request #262 from tagliala/chore/fix-if-inside-else-offenseZsolt Kozaroczy
Fix Style/IfInsideElse offense
2023-05-31Merge pull request #261 from ↵Zsolt Kozaroczy
tagliala/chore/fix-string-concatenation-in-non-production-code Fix StringConcatenation offenses (non-production)
2023-05-31Merge pull request #260 from ↵Zsolt Kozaroczy
tagliala/chore/fix-redundant-file-extension-in-require-offenses Fix Style/RedundantFileExtensionInRequire offenses
2023-05-31Merge pull request #259 from tagliala/chore/enable-naming-copsZsolt Kozaroczy
Enable Naming cops
2023-05-31Merge pull request #255 from pkmiec/fixSimpleTypeListRegressionZsolt Kozaroczy
Use #== and #eql? from BasicObject
2023-05-31Merge pull request #238 from tagliala/chore/use-case-whenZsolt Kozaroczy
Remove duplicate branch condition
2023-05-27Improve absolute cell reference methodGeremia Taglialatela
Also inverts `string.match(REGEX)` with `REGEX.match(string)` because of uniformity and because it has been tested 5% more performant on Ruby 3.2. Performance on older Rubies is the same ``` REGEX.match(string): 1234330.7 i/s string.match(REGEX): 1172670.1 i/s - 1.05x (± 0.00) slower ```
2023-05-26Fix Style/HashEachMethods offenseGeremia Taglialatela
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 ```
2023-05-25Enable Naming copsGeremia Taglialatela
Also fix safe minor offenses - Naming/BinaryOperatorParameterName - Naming/HeredocDelimiterCase
2023-05-25Fix StringConcatenation offenses (non-production)Geremia Taglialatela
Prefer interpolation over concatenation ``` Comparison ("String#{'String'}" vs 'String' + 'String'): interpolation: 11821321.0 i/s concatenation: 8849491.7 i/s - 1.34x (± 0.00) slower ```
2023-05-25Opt-in for MFA requirementGeremia Taglialatela
Make the gem more secure by requiring that all privileged operations by any of the owners require OTP. Ref: https://guides.rubygems.org/mfa-requirement-opt-in/
2023-05-25Remove duplicate checkGeremia Taglialatela
Axlsx::Row is now an Array, so it is possible to remove the extra duplicate branch
2023-05-25Merge pull request #258 from tagliala/chore/enable-gemspec-copsZsolt Kozaroczy
Enable Gemspec cops
2023-05-25Merge pull request #234 from tagliala/chore/fix-collection-literal-in-loopZsolt Kozaroczy
Do not use collection literal in loops
2023-05-25Merge pull request #212 from westonganger/masterZsolt Kozaroczy
Fix axlsx_styler gem deprecation error
2023-05-24Fix axlsx_styler gem errorWeston Ganger
2023-05-24Fix Style/IfInsideElse offenseGeremia Taglialatela
2023-05-24Fix Style/RedundantFileExtensionInRequire offensesGeremia Taglialatela
2023-05-24Do not use collection literal in loopsGeremia Taglialatela
Also refactors Page margins to avoid code duplication
2023-05-24Enable Gemspec copsGeremia Taglialatela
Gemspec/RequireMFA will be fixed via #197
2023-05-24Merge pull request #257 from tagliala/chore/improve-cell-type-from-valueZsolt Kozaroczy
Improve cell type from value implementation
2023-05-24Merge pull request #256 from tagliala/chore/fix-profiler-deprecationsZsolt Kozaroczy
Fix profiler deprecations