caxlsx icon indicating copy to clipboard operation
caxlsx copied to clipboard

Use `attr_writer` when validations are not needed

Open tagliala opened this issue 7 months ago • 3 comments

Offences found by fasterer

lib/axlsx/drawing/area_series.rb:49 Use attr_writer for writing to ivars.

lib/axlsx/drawing/axis.rb:89 Use attr_writer for writing to ivars.

lib/axlsx/drawing/bar_series.rb:48 Use attr_writer for writing to ivars.

lib/axlsx/drawing/bubble_series.rb:37 Use attr_writer for writing to ivars.

lib/axlsx/drawing/line_series.rb:49 Use attr_writer for writing to ivars.

lib/axlsx/drawing/scatter_series.rb:59 Use attr_writer for writing to ivars.
lib/axlsx/drawing/scatter_series.rb:70 Use attr_writer for writing to ivars.

lib/axlsx/workbook/worksheet/conditional_formatting.rb:64 Use attr_writer for writing to ivars.

lib/axlsx/workbook/worksheet/rich_text_run.rb:21 Use attr_writer for writing to ivars.

lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb:36 Use attr_writer for writing to ivars.

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/area_series.rb#L49-L51

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/axis.rb#L89-L91

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/bar_series.rb#L48-L50

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/bubble_series.rb#L37-L39

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/line_series.rb#L49-L51

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/scatter_series.rb#L59-L61 https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/drawing/scatter_series.rb#L70-L72

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/workbook/worksheet/conditional_formatting.rb#L64

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/workbook/worksheet/rich_text_run.rb#L21-L23

https://github.com/caxlsx/caxlsx/blob/62b9d37ab5fd5e9cda8d9d53a934577daadf9623/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb#L36-L38

There are several options here:

  1. For uniformity, setting those variables should keep using method=
  2. For performance and code quality, those variables should use attr_writer
  3. Some validations are missing

Comparison (IPS 2.6.10):
         attr_writer: 16354506.9 i/s
              method: 14390115.2 i/s - 1.14x  (± 0.00) slower

Comparison (IPS 3.2.2):
         attr_writer: 16205198.6 i/s
              method: 14282149.6 i/s - 1.13x  (± 0.00) slower

tagliala avatar Nov 23 '23 17:11 tagliala