postsvg 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +533 -49
  3. data/CHANGELOG.md +105 -0
  4. data/CLAUDE.md +173 -0
  5. data/Gemfile +2 -3
  6. data/README.adoc +456 -179
  7. data/Rakefile +100 -0
  8. data/TODO.roadmap/00-architecture.md +139 -0
  9. data/TODO.roadmap/01-autoload-migration.md +39 -0
  10. data/TODO.roadmap/02-isolate-dormant-code.md +51 -0
  11. data/TODO.roadmap/03-domain-model.md +66 -0
  12. data/TODO.roadmap/04-lexer.md +40 -0
  13. data/TODO.roadmap/05-parser.md +43 -0
  14. data/TODO.roadmap/06-graphics-state.md +45 -0
  15. data/TODO.roadmap/07-matrix-and-color.md +37 -0
  16. data/TODO.roadmap/08-svg-builder.md +51 -0
  17. data/TODO.roadmap/09-renderer.md +52 -0
  18. data/TODO.roadmap/10-visitor.md +58 -0
  19. data/TODO.roadmap/11-operator-coverage.md +103 -0
  20. data/TODO.roadmap/12-svg-domain.md +62 -0
  21. data/TODO.roadmap/13-translation-handlers.md +69 -0
  22. data/TODO.roadmap/14-ps-serializer.md +49 -0
  23. data/TODO.roadmap/15-cli-and-public-api.md +47 -0
  24. data/TODO.roadmap/16-specs.md +84 -0
  25. data/TODO.roadmap/17-docs-sync.md +47 -0
  26. data/TODO.roadmap/18-performance-and-determinism.md +47 -0
  27. data/TODO.roadmap/19-error-model.md +45 -0
  28. data/TODO.roadmap/20-font-and-text.md +46 -0
  29. data/TODO.roadmap/21-images.md +45 -0
  30. data/TODO.roadmap/22-forms-and-resources.md +25 -0
  31. data/TODO.roadmap/23-level2-level3.md +52 -0
  32. data/TODO.roadmap/24-ci-and-release.md +42 -0
  33. data/TODO.roadmap/README.md +77 -0
  34. data/docs/.gitignore +29 -0
  35. data/docs/CHANGELOG.md +114 -0
  36. data/docs/COMPLETE_DOCUMENTATION_STATUS.md +376 -0
  37. data/docs/DEPLOYMENT.md +456 -0
  38. data/docs/DEPLOYMENT_INSTRUCTIONS.md +229 -0
  39. data/docs/DOCUMENTATION_PLAN.md +425 -0
  40. data/docs/FINAL_SUMMARY.md +657 -0
  41. data/docs/Gemfile +15 -0
  42. data/docs/README.md +327 -0
  43. data/docs/_config.yml +99 -0
  44. data/docs/advanced-topics.adoc +370 -0
  45. data/docs/api-reference/colors.adoc +705 -0
  46. data/docs/api-reference/converter.adoc +699 -0
  47. data/docs/api-reference/execution-context.adoc +1210 -0
  48. data/docs/api-reference/graphics-state.adoc +1070 -0
  49. data/docs/api-reference/interpreter.adoc +810 -0
  50. data/docs/api-reference/matrix.adoc +1179 -0
  51. data/docs/api-reference/path-builder.adoc +1284 -0
  52. data/docs/api-reference/postsvg-module.adoc +388 -0
  53. data/docs/api-reference/svg-generator.adoc +891 -0
  54. data/docs/api-reference/tokenizer.adoc +925 -0
  55. data/docs/api-reference.adoc +221 -0
  56. data/docs/architecture/command-registry.adoc +1191 -0
  57. data/docs/architecture/conversion-pipeline.adoc +746 -0
  58. data/docs/architecture/design-decisions.adoc +999 -0
  59. data/docs/architecture/generator-stage.adoc +1115 -0
  60. data/docs/architecture/graphics-state-model.adoc +1089 -0
  61. data/docs/architecture/interpreter-stage.adoc +1125 -0
  62. data/docs/architecture/parser-stage.adoc +1051 -0
  63. data/docs/architecture.adoc +354 -0
  64. data/docs/cli-reference/batch-command.adoc +616 -0
  65. data/docs/cli-reference/check-command.adoc +677 -0
  66. data/docs/cli-reference/cli-options.adoc +802 -0
  67. data/docs/cli-reference/convert-command.adoc +462 -0
  68. data/docs/cli-reference/version-command.adoc +296 -0
  69. data/docs/cli-reference.adoc +317 -0
  70. data/docs/concepts/conversion-pipeline.adoc +903 -0
  71. data/docs/concepts/coordinate-systems.adoc +836 -0
  72. data/docs/concepts/graphics-state.adoc +861 -0
  73. data/docs/concepts/path-operations.adoc +1076 -0
  74. data/docs/concepts/postscript-language.adoc +859 -0
  75. data/docs/concepts/svg-generation.adoc +937 -0
  76. data/docs/concepts.adoc +198 -0
  77. data/docs/contributing.adoc +443 -0
  78. data/docs/development.adoc +420 -0
  79. data/docs/faq.adoc +493 -0
  80. data/docs/getting-started/basic-usage.adoc +538 -0
  81. data/docs/getting-started/common-workflows.adoc +577 -0
  82. data/docs/getting-started/first-conversion.adoc +492 -0
  83. data/docs/getting-started/installation.adoc +534 -0
  84. data/docs/getting-started.adoc +94 -0
  85. data/docs/index.adoc +248 -0
  86. data/docs/optimization.adoc +196 -0
  87. data/docs/ps2svg_compatibility.adoc +149 -0
  88. data/docs/quick-reference.adoc +453 -0
  89. data/docs/sitemap.adoc +337 -0
  90. data/docs/troubleshooting.adoc +486 -0
  91. data/docs/validation.adoc +772 -0
  92. data/exe/postsvg +1 -0
  93. data/lib/postsvg/cli.rb +109 -57
  94. data/lib/postsvg/errors.rb +68 -3
  95. data/lib/postsvg/graphics_context.rb +81 -0
  96. data/lib/postsvg/graphics_stack.rb +43 -0
  97. data/lib/postsvg/options.rb +29 -0
  98. data/lib/postsvg/parser/postscript_parser.rb +7 -7
  99. data/lib/postsvg/renderer.rb +89 -0
  100. data/lib/postsvg/svg/attribute_parser.rb +45 -0
  101. data/lib/postsvg/svg/clip_path_registry.rb +46 -0
  102. data/lib/postsvg/svg/document.rb +22 -0
  103. data/lib/postsvg/svg/element.rb +86 -0
  104. data/lib/postsvg/svg/elements/circle.rb +36 -0
  105. data/lib/postsvg/svg/elements/clip_path.rb +26 -0
  106. data/lib/postsvg/svg/elements/defs.rb +24 -0
  107. data/lib/postsvg/svg/elements/ellipse.rb +39 -0
  108. data/lib/postsvg/svg/elements/group.rb +37 -0
  109. data/lib/postsvg/svg/elements/image.rb +35 -0
  110. data/lib/postsvg/svg/elements/line.rb +36 -0
  111. data/lib/postsvg/svg/elements/path.rb +32 -0
  112. data/lib/postsvg/svg/elements/polygon.rb +12 -0
  113. data/lib/postsvg/svg/elements/polyline.rb +32 -0
  114. data/lib/postsvg/svg/elements/rect.rb +44 -0
  115. data/lib/postsvg/svg/elements/svg.rb +40 -0
  116. data/lib/postsvg/svg/elements/text.rb +42 -0
  117. data/lib/postsvg/svg/elements.rb +31 -0
  118. data/lib/postsvg/svg/paint.rb +34 -0
  119. data/lib/postsvg/svg/parser.rb +39 -0
  120. data/lib/postsvg/svg/path_data/command.rb +27 -0
  121. data/lib/postsvg/svg/path_data/parser.rb +86 -0
  122. data/lib/postsvg/svg/path_data.rb +17 -0
  123. data/lib/postsvg/svg/stroke.rb +33 -0
  124. data/lib/postsvg/svg/transform_list.rb +59 -0
  125. data/lib/postsvg/svg.rb +22 -0
  126. data/lib/postsvg/svg_builder.rb +253 -0
  127. data/lib/postsvg/translation/arc_converter.rb +96 -0
  128. data/lib/postsvg/translation/bounding_box.rb +62 -0
  129. data/lib/postsvg/translation/context.rb +34 -0
  130. data/lib/postsvg/translation/handler_registry.rb +38 -0
  131. data/lib/postsvg/translation/handlers/circle_handler.rb +28 -0
  132. data/lib/postsvg/translation/handlers/clip_path_handler.rb +13 -0
  133. data/lib/postsvg/translation/handlers/defs_handler.rb +15 -0
  134. data/lib/postsvg/translation/handlers/ellipse_handler.rb +36 -0
  135. data/lib/postsvg/translation/handlers/group_handler.rb +22 -0
  136. data/lib/postsvg/translation/handlers/image_handler.rb +21 -0
  137. data/lib/postsvg/translation/handlers/line_handler.rb +27 -0
  138. data/lib/postsvg/translation/handlers/open_handler.rb +19 -0
  139. data/lib/postsvg/translation/handlers/path_handler.rb +372 -0
  140. data/lib/postsvg/translation/handlers/polygon_handler.rb +35 -0
  141. data/lib/postsvg/translation/handlers/polyline_handler.rb +33 -0
  142. data/lib/postsvg/translation/handlers/rect_handler.rb +32 -0
  143. data/lib/postsvg/translation/handlers/shared.rb +110 -0
  144. data/lib/postsvg/translation/handlers/svg_handler.rb +26 -0
  145. data/lib/postsvg/translation/handlers/text_handler.rb +57 -0
  146. data/lib/postsvg/translation/handlers.rb +26 -0
  147. data/lib/postsvg/translation/ps_renderer.rb +106 -0
  148. data/lib/postsvg/translation/record_emitter.rb +35 -0
  149. data/lib/postsvg/translation.rb +17 -0
  150. data/lib/postsvg/version.rb +1 -1
  151. data/lib/postsvg/visitors/ps_visitor/arithmetic.rb +125 -0
  152. data/lib/postsvg/visitors/ps_visitor/boolean.rb +105 -0
  153. data/lib/postsvg/visitors/ps_visitor/color.rb +56 -0
  154. data/lib/postsvg/visitors/ps_visitor/common.rb +65 -0
  155. data/lib/postsvg/visitors/ps_visitor/container.rb +164 -0
  156. data/lib/postsvg/visitors/ps_visitor/control_flow.rb +110 -0
  157. data/lib/postsvg/visitors/ps_visitor/device.rb +20 -0
  158. data/lib/postsvg/visitors/ps_visitor/dictionary.rb +93 -0
  159. data/lib/postsvg/visitors/ps_visitor/font.rb +103 -0
  160. data/lib/postsvg/visitors/ps_visitor/graphics_state.rb +55 -0
  161. data/lib/postsvg/visitors/ps_visitor/painting.rb +90 -0
  162. data/lib/postsvg/visitors/ps_visitor/path.rb +117 -0
  163. data/lib/postsvg/visitors/ps_visitor/stack.rb +47 -0
  164. data/lib/postsvg/visitors/ps_visitor/transformations.rb +101 -0
  165. data/lib/postsvg/visitors/ps_visitor.rb +208 -0
  166. data/lib/postsvg/visitors.rb +9 -0
  167. data/lib/postsvg.rb +96 -57
  168. data/lychee.toml +86 -0
  169. metadata +197 -12
  170. data/lib/postsvg/matrix.rb +0 -106
  171. data/postsvg.gemspec +0 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a2ecbfa1ecb4e8bc18ce43304e7ea828054d255bb2183e9356cf08742e91483
4
- data.tar.gz: c7520e5a867bd4992d169ffa496cfc70eb36dba2bddfc78a1c472b3b21009020
3
+ metadata.gz: cb402be3cc1cc1e0549eadff9895d28443bc5c0c6ea3b09dbddc7348deb81a7b
4
+ data.tar.gz: 5f310a606bc03201f9d73731ad01d10ea39f9f1ca860bc28604532981cef653c
5
5
  SHA512:
6
- metadata.gz: 212ad8d736573633ab5d335908e1305f89e621e7389740420858fbaacf6c982165af4b69a0c154e21ff0ea456e3e0343c88b9d06c43a2c1b47202dc31078511e
7
- data.tar.gz: 91f449c7d4a7a09560215bae0f83b58410ca64a472c43c97af9322198e1d2c249442263cdfe5aa41163735bdcd5728211169b30f67feeeaefb14a66e096b5f8f
6
+ metadata.gz: d900530243b54e6fb0339bfa4e22cea9773d53e58fc0955aa4df9f3960fb3043da18f56e7a6a72ca2fe89cad3e85191b10b472135cbc18d6e57d68abf8542464
7
+ data.tar.gz: 7bfd43221c8af2a570e74626ba27036fb9dca904e1cd406763d7e17c41ca937ffda9e3e53d3eb8babb1bd4741b915c48b459b72004f5beacb061a22d4c64e853
data/.rubocop_todo.yml CHANGED
@@ -1,98 +1,348 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-10-19 09:58:29 UTC using RuboCop version 1.81.1.
3
+ # on 2026-07-27 10:08:25 UTC using RuboCop version 1.88.2.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 36
9
+ # Offense count: 68
10
10
  # This cop supports safe autocorrection (--autocorrect).
11
- # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
11
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
12
+ # SupportedStyles: with_first_argument, with_fixed_indentation
13
+ Layout/ArgumentAlignment:
14
+ Enabled: false
15
+
16
+ # Offense count: 7
17
+ # This cop supports safe autocorrection (--autocorrect).
18
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
19
+ # SupportedStyles: with_first_element, with_fixed_indentation
20
+ Layout/ArrayAlignment:
21
+ Exclude:
22
+ - 'lib/postsvg/renderer.rb'
23
+ - 'lib/postsvg/translation/bounding_box.rb'
24
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
25
+ - 'spec/postsvg/integration_spec.rb'
26
+
27
+ # Offense count: 4
28
+ # This cop supports safe autocorrection (--autocorrect).
29
+ # Configuration parameters: EnforcedStyleAlignWith.
30
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
31
+ Layout/BlockAlignment:
32
+ Exclude:
33
+ - 'lib/postsvg/svg/clip_path_registry.rb'
34
+ - 'lib/postsvg/svg/element.rb'
35
+ - 'spec/postsvg/format_number_spec.rb'
36
+
37
+ # Offense count: 4
38
+ # This cop supports safe autocorrection (--autocorrect).
39
+ Layout/BlockEndNewline:
40
+ Exclude:
41
+ - 'lib/postsvg/svg/clip_path_registry.rb'
42
+ - 'lib/postsvg/svg/element.rb'
43
+ - 'spec/postsvg/format_number_spec.rb'
44
+
45
+ # Offense count: 4
46
+ # This cop supports safe autocorrection (--autocorrect).
47
+ # Configuration parameters: EnforcedStyle, IndentOneStep, IndentationWidth.
48
+ # SupportedStyles: case, end
49
+ Layout/CaseIndentation:
50
+ Exclude:
51
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
52
+
53
+ # Offense count: 19
54
+ # This cop supports safe autocorrection (--autocorrect).
55
+ # Configuration parameters: IndentationWidth.
56
+ Layout/ClosingParenthesisIndentation:
57
+ Exclude:
58
+ - 'lib/postsvg/translation/handlers/circle_handler.rb'
59
+ - 'lib/postsvg/translation/handlers/ellipse_handler.rb'
60
+ - 'lib/postsvg/translation/handlers/line_handler.rb'
61
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
62
+ - 'lib/postsvg/translation/handlers/shared.rb'
63
+ - 'lib/postsvg/translation/handlers/text_handler.rb'
64
+ - 'spec/postsvg/serializer_spec.rb'
65
+
66
+ # Offense count: 5
67
+ # This cop supports safe autocorrection (--autocorrect).
68
+ Layout/ElseAlignment:
69
+ Exclude:
70
+ - 'lib/postsvg/svg/path_data/parser.rb'
71
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
72
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
73
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
74
+
75
+ # Offense count: 1
76
+ # This cop supports safe autocorrection (--autocorrect).
77
+ Layout/EmptyLinesAfterModuleInclusion:
78
+ Exclude:
79
+ - 'spec/postsvg/model/operators_spec.rb'
80
+
81
+ # Offense count: 1
82
+ # This cop supports safe autocorrection (--autocorrect).
83
+ # Configuration parameters: AllowAliasSyntax, AllowedMethods.
84
+ # AllowedMethods: alias_method, public, protected, private
85
+ Layout/EmptyLinesAroundAttributeAccessor:
86
+ Exclude:
87
+ - 'spec/postsvg/model/operators_spec.rb'
88
+
89
+ # Offense count: 4
90
+ # This cop supports safe autocorrection (--autocorrect).
91
+ # Configuration parameters: EnforcedStyleAlignWith.
92
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
93
+ Layout/EndAlignment:
94
+ Exclude:
95
+ - 'lib/postsvg/svg/path_data/parser.rb'
96
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
97
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
98
+
99
+ # Offense count: 1
100
+ # This cop supports safe autocorrection (--autocorrect).
101
+ # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
102
+ Layout/ExtraSpacing:
103
+ Exclude:
104
+ - 'lib/postsvg/translation/arc_converter.rb'
105
+
106
+ # Offense count: 19
107
+ # This cop supports safe autocorrection (--autocorrect).
108
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
109
+ # SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
110
+ Layout/FirstArgumentIndentation:
111
+ Exclude:
112
+ - 'lib/postsvg/translation/handlers/circle_handler.rb'
113
+ - 'lib/postsvg/translation/handlers/ellipse_handler.rb'
114
+ - 'lib/postsvg/translation/handlers/line_handler.rb'
115
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
116
+ - 'lib/postsvg/translation/handlers/shared.rb'
117
+ - 'lib/postsvg/translation/handlers/text_handler.rb'
118
+ - 'spec/postsvg/serializer_spec.rb'
119
+
120
+ # Offense count: 4
121
+ # This cop supports safe autocorrection (--autocorrect).
122
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
123
+ # SupportedStyles: special_inside_parentheses, consistent, align_brackets
124
+ Layout/FirstArrayElementIndentation:
125
+ Exclude:
126
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
127
+ - 'lib/postsvg/translation/handlers/shared.rb'
128
+
129
+ # Offense count: 47
130
+ # This cop supports safe autocorrection (--autocorrect).
131
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
132
+ # SupportedHashRocketStyles: key, separator, table
133
+ # SupportedColonStyles: key, separator, table
134
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
135
+ Layout/HashAlignment:
136
+ Exclude:
137
+ - 'lib/postsvg/translation/bounding_box.rb'
138
+ - 'lib/postsvg/translation/handlers/ellipse_handler.rb'
139
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
140
+ - 'lib/postsvg/translation/handlers/polygon_handler.rb'
141
+ - 'lib/postsvg/translation/handlers/polyline_handler.rb'
142
+ - 'lib/postsvg/translation/handlers/rect_handler.rb'
143
+ - 'lib/postsvg/translation/handlers/text_handler.rb'
144
+ - 'lib/postsvg/translation/ps_renderer.rb'
145
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
146
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
147
+ - 'spec/postsvg/serializer_spec.rb'
148
+
149
+ # Offense count: 4
150
+ # This cop supports safe autocorrection (--autocorrect).
151
+ # Configuration parameters: EnforcedStyle.
152
+ # SupportedStyles: normal, indented_internal_methods
153
+ Layout/IndentationConsistency:
154
+ Exclude:
155
+ - 'spec/postsvg/model/operators_spec.rb'
156
+
157
+ # Offense count: 23
158
+ # This cop supports safe autocorrection (--autocorrect).
159
+ # Configuration parameters: Width, EnforcedStyleAlignWith, AllowedPatterns.
160
+ # SupportedStylesAlignWith: start_of_line, relative_to_receiver
161
+ Layout/IndentationWidth:
162
+ Exclude:
163
+ - 'lib/postsvg/svg/clip_path_registry.rb'
164
+ - 'lib/postsvg/svg/element.rb'
165
+ - 'lib/postsvg/svg/path_data/parser.rb'
166
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
167
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
168
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
169
+ - 'spec/postsvg/format_number_spec.rb'
170
+
171
+ # Offense count: 173
172
+ # This cop supports safe autocorrection (--autocorrect).
173
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
12
174
  # URISchemes: http, https
13
175
  Layout/LineLength:
176
+ Enabled: false
177
+
178
+ # Offense count: 7
179
+ # This cop supports safe autocorrection (--autocorrect).
180
+ # Configuration parameters: EnforcedStyle.
181
+ # SupportedStyles: symmetrical, new_line, same_line
182
+ Layout/MultilineMethodCallBraceLayout:
183
+ Exclude:
184
+ - 'lib/postsvg/translation/handlers/ellipse_handler.rb'
185
+ - 'lib/postsvg/translation/handlers/line_handler.rb'
186
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
187
+ - 'spec/postsvg/serializer_spec.rb'
188
+
189
+ # Offense count: 7
190
+ # This cop supports safe autocorrection (--autocorrect).
191
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
192
+ # SupportedStyles: aligned, indented, indented_relative_to_receiver
193
+ Layout/MultilineMethodCallIndentation:
194
+ Exclude:
195
+ - 'lib/postsvg/svg/path_data/parser.rb'
196
+ - 'lib/postsvg/svg_builder.rb'
197
+
198
+ # Offense count: 4
199
+ # This cop supports safe autocorrection (--autocorrect).
200
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
201
+ # SupportedStyles: aligned, indented
202
+ Layout/MultilineOperationIndentation:
14
203
  Exclude:
15
- - 'lib/postsvg.rb'
16
- - 'lib/postsvg/converter.rb'
17
- - 'lib/postsvg/graphics_state.rb'
18
- - 'lib/postsvg/interpreter.rb'
19
204
  - 'lib/postsvg/parser/postscript_parser.rb'
20
- - 'lib/postsvg/tokenizer.rb'
21
- - 'postsvg.gemspec'
22
- - 'scripts/regenerate_fixtures.rb'
23
205
 
24
- # Offense count: 5
206
+ # Offense count: 1
207
+ # This cop supports safe autocorrection (--autocorrect).
208
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator, EnforcedStyleForRationalLiterals.
209
+ # SupportedStylesForExponentOperator: space, no_space
210
+ # SupportedStylesForRationalLiterals: space, no_space
211
+ Layout/SpaceAroundOperators:
212
+ Exclude:
213
+ - 'lib/postsvg/translation/arc_converter.rb'
214
+
215
+ # Offense count: 2
216
+ # This cop supports safe autocorrection (--autocorrect).
217
+ # Configuration parameters: EnforcedStyle.
218
+ # SupportedStyles: final_newline, final_blank_line
219
+ Layout/TrailingEmptyLines:
220
+ Exclude:
221
+ - 'lib/postsvg/translation/handlers/open_handler.rb'
222
+ - 'lib/postsvg/translation/handlers/svg_handler.rb'
223
+
224
+ # Offense count: 54
225
+ # This cop supports safe autocorrection (--autocorrect).
226
+ # Configuration parameters: AllowInHeredoc.
227
+ Layout/TrailingWhitespace:
228
+ Enabled: false
229
+
230
+ # Offense count: 38
231
+ # This cop supports safe autocorrection (--autocorrect).
232
+ Lint/AmbiguousOperatorPrecedence:
233
+ Exclude:
234
+ - 'lib/postsvg/translation/arc_converter.rb'
235
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
236
+ - 'lib/postsvg/visitors/ps_visitor/arithmetic.rb'
237
+
238
+ # Offense count: 14
25
239
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
26
240
  Lint/DuplicateBranch:
27
241
  Exclude:
28
242
  - 'lib/postsvg/converter.rb'
29
243
  - 'lib/postsvg/interpreter.rb'
244
+ - 'lib/postsvg/svg/path_data/command.rb'
245
+ - 'lib/postsvg/svg/path_data/parser.rb'
246
+ - 'lib/postsvg/visitors/ps_visitor/common.rb'
247
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
248
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
30
249
 
31
250
  # Offense count: 1
32
251
  Lint/DuplicateCaseCondition:
33
252
  Exclude:
34
253
  - 'lib/postsvg/converter.rb'
35
254
 
36
- # Offense count: 29
255
+ # Offense count: 2
256
+ Lint/DuplicateMethods:
257
+ Exclude:
258
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
259
+
260
+ # Offense count: 3
261
+ Lint/FloatComparison:
262
+ Exclude:
263
+ - 'lib/postsvg/svg/stroke.rb'
264
+ - 'lib/postsvg/svg_builder.rb'
265
+
266
+ # Offense count: 1
267
+ Lint/StructNewOverride:
268
+ Exclude:
269
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
270
+
271
+ # Offense count: 5
272
+ # This cop supports safe autocorrection (--autocorrect).
273
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
274
+ # NotImplementedExceptions: NotImplementedError
275
+ Lint/UnusedMethodArgument:
276
+ Exclude:
277
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
278
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
279
+
280
+ # Offense count: 1
281
+ # This cop supports safe autocorrection (--autocorrect).
282
+ Lint/UselessAssignment:
283
+ Exclude:
284
+ - 'lib/postsvg/translation/handlers/image_handler.rb'
285
+
286
+ # Offense count: 1
287
+ # This cop supports unsafe autocorrection (--autocorrect-all).
288
+ Lint/UselessOr:
289
+ Exclude:
290
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
291
+
292
+ # Offense count: 74
37
293
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
38
294
  Metrics/AbcSize:
39
- Exclude:
40
- - 'lib/postsvg.rb'
41
- - 'lib/postsvg/cli.rb'
42
- - 'lib/postsvg/colors.rb'
43
- - 'lib/postsvg/converter.rb'
44
- - 'lib/postsvg/graphics_state.rb'
45
- - 'lib/postsvg/interpreter.rb'
46
- - 'lib/postsvg/matrix.rb'
47
- - 'lib/postsvg/path_builder.rb'
48
- - 'lib/postsvg/svg_generator.rb'
49
- - 'lib/postsvg/tokenizer.rb'
295
+ Enabled: false
296
+
297
+ # Offense count: 2
298
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
299
+ # AllowedMethods: refine
300
+ Metrics/BlockLength:
301
+ Max: 85
50
302
 
51
303
  # Offense count: 1
52
304
  # Configuration parameters: CountBlocks, CountModifierForms.
53
305
  Metrics/BlockNesting:
54
306
  Max: 6
55
307
 
56
- # Offense count: 14
308
+ # Offense count: 33
57
309
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
58
310
  Metrics/CyclomaticComplexity:
59
- Exclude:
60
- - 'lib/postsvg/cli.rb'
61
- - 'lib/postsvg/converter.rb'
62
- - 'lib/postsvg/interpreter.rb'
63
- - 'lib/postsvg/tokenizer.rb'
311
+ Enabled: false
64
312
 
65
- # Offense count: 30
313
+ # Offense count: 76
66
314
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
67
315
  Metrics/MethodLength:
68
316
  Max: 111
69
317
 
70
- # Offense count: 5
318
+ # Offense count: 21
71
319
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
72
320
  Metrics/ParameterLists:
73
- Max: 7
321
+ Max: 10
74
322
 
75
- # Offense count: 13
323
+ # Offense count: 24
76
324
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
77
325
  Metrics/PerceivedComplexity:
78
326
  Exclude:
79
- - 'lib/postsvg/cli.rb'
80
327
  - 'lib/postsvg/converter.rb'
81
328
  - 'lib/postsvg/interpreter.rb'
329
+ - 'lib/postsvg/svg/paint.rb'
330
+ - 'lib/postsvg/svg/path_data/parser.rb'
331
+ - 'lib/postsvg/svg/transform_list.rb'
332
+ - 'lib/postsvg/svg_builder.rb'
82
333
  - 'lib/postsvg/tokenizer.rb'
334
+ - 'lib/postsvg/translation/arc_converter.rb'
335
+ - 'lib/postsvg/translation/handlers/shared.rb'
336
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
337
+ - 'lib/postsvg/visitors/ps_visitor/control_flow.rb'
338
+ - 'lib/postsvg/visitors/ps_visitor/painting.rb'
339
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
83
340
 
84
- # Offense count: 67
341
+ # Offense count: 254
85
342
  # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
86
343
  # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
87
344
  Naming/MethodParameterName:
88
- Exclude:
89
- - 'lib/postsvg.rb'
90
- - 'lib/postsvg/converter.rb'
91
- - 'lib/postsvg/graphics_state.rb'
92
- - 'lib/postsvg/interpreter.rb'
93
- - 'lib/postsvg/matrix.rb'
94
- - 'lib/postsvg/path_builder.rb'
95
- - 'lib/postsvg/tokenizer.rb'
345
+ Enabled: false
96
346
 
97
347
  # Offense count: 1
98
348
  # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros, UseSorbetSigs.
@@ -104,38 +354,272 @@ Naming/PredicatePrefix:
104
354
  Exclude:
105
355
  - 'lib/postsvg/interpreter.rb'
106
356
 
107
- # Offense count: 3
357
+ # Offense count: 4
108
358
  # Configuration parameters: MinSize.
109
359
  Performance/CollectionLiteralInLoop:
110
360
  Exclude:
111
361
  - 'lib/postsvg/interpreter.rb'
362
+ - 'lib/postsvg/svg/path_data/parser.rb'
112
363
 
113
364
  # Offense count: 1
365
+ # This cop supports unsafe autocorrection (--autocorrect-all).
366
+ # Configuration parameters: SafeMultiline.
367
+ Performance/DeletePrefix:
368
+ Exclude:
369
+ - 'lib/postsvg/visitors/ps_visitor/common.rb'
370
+
371
+ # Offense count: 1
372
+ # This cop supports unsafe autocorrection (--autocorrect-all).
373
+ Performance/MapCompact:
374
+ Exclude:
375
+ - 'lib/postsvg/svg/clip_path_registry.rb'
376
+
377
+ # Offense count: 5
378
+ RSpec/BeforeAfterAll:
379
+ Exclude:
380
+ - 'spec/postsvg/model/operator_spec.rb'
381
+ - 'spec/postsvg/model/operators_spec.rb'
382
+ - 'spec/postsvg/svg/elements_spec.rb'
383
+ - 'spec/postsvg/translation/handlers_spec.rb'
384
+ - 'spec/postsvg/translation/ps_renderer_spec.rb'
385
+
386
+ # Offense count: 10
114
387
  # Configuration parameters: IgnoredMetadata.
115
388
  RSpec/DescribeClass:
116
389
  Exclude:
117
390
  - 'spec/postsvg/integration_spec.rb'
391
+ - 'spec/postsvg/round_trip_spec.rb'
392
+ - 'spec/postsvg/svg/elements_spec.rb'
393
+ - 'spec/postsvg/visitors/ps_visitor_behavior_spec.rb'
118
394
 
119
- # Offense count: 7
395
+ # Offense count: 30
396
+ # This cop supports unsafe autocorrection (--autocorrect-all).
397
+ # Configuration parameters: SkipBlocks, EnforcedStyle, OnlyStaticConstants.
398
+ # SupportedStyles: described_class, explicit
399
+ RSpec/DescribedClass:
400
+ Exclude:
401
+ - 'spec/postsvg/color_spec.rb'
402
+ - 'spec/postsvg/format_number_spec.rb'
403
+ - 'spec/postsvg/matrix_spec.rb'
404
+ - 'spec/postsvg/model/operators_spec.rb'
405
+ - 'spec/postsvg/svg/parser_spec.rb'
406
+
407
+ # Offense count: 22
120
408
  # Configuration parameters: CountAsOne.
121
409
  RSpec/ExampleLength:
122
- Max: 16
410
+ Max: 18
123
411
 
124
- # Offense count: 3
412
+ # Offense count: 1
413
+ RSpec/IdenticalEqualityAssertion:
414
+ Exclude:
415
+ - 'spec/postsvg/color_spec.rb'
416
+
417
+ # Offense count: 1
418
+ # This cop supports safe autocorrection (--autocorrect).
419
+ RSpec/MatchWithSimpleRegex:
420
+ Exclude:
421
+ - 'spec/postsvg/integration_spec.rb'
422
+
423
+ # Offense count: 4
424
+ RSpec/MultipleDescribes:
425
+ Exclude:
426
+ - 'spec/postsvg/round_trip_spec.rb'
427
+ - 'spec/postsvg/svg/parser_spec.rb'
428
+ - 'spec/postsvg/translation/ps_renderer_spec.rb'
429
+ - 'spec/postsvg/visitors/ps_visitor_behavior_spec.rb'
430
+
431
+ # Offense count: 59
125
432
  RSpec/MultipleExpectations:
126
- Max: 4
433
+ Max: 7
434
+
435
+ # Offense count: 5
436
+ # This cop supports safe autocorrection (--autocorrect).
437
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
438
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
439
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
440
+ # FunctionalMethods: let, let!, subject, watch
441
+ # AllowedMethods: lambda, proc, it
442
+ Style/BlockDelimiters:
443
+ Exclude:
444
+ - 'lib/postsvg/svg/clip_path_registry.rb'
445
+ - 'lib/postsvg/svg/element.rb'
446
+ - 'spec/postsvg/format_number_spec.rb'
447
+
448
+ # Offense count: 7
449
+ # This cop supports safe autocorrection (--autocorrect).
450
+ Style/ComparableClamp:
451
+ Exclude:
452
+ - 'lib/postsvg/colors.rb'
127
453
 
128
454
  # Offense count: 1
129
455
  # This cop supports safe autocorrection (--autocorrect).
456
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
457
+ # SupportedStyles: assign_to_condition, assign_inside_condition
458
+ Style/ConditionalAssignment:
459
+ Exclude:
460
+ - 'lib/postsvg/visitors/ps_visitor/container.rb'
461
+
462
+ # Offense count: 3
463
+ # This cop supports safe autocorrection (--autocorrect).
130
464
  # Configuration parameters: EnforcedStyle, AllowComments.
131
465
  # SupportedStyles: empty, nil, both
132
466
  Style/EmptyElse:
133
467
  Exclude:
134
468
  - 'lib/postsvg/converter.rb'
469
+ - 'lib/postsvg/visitors/ps_visitor/common.rb'
470
+ - 'lib/postsvg/visitors/ps_visitor/graphics_state.rb'
135
471
 
136
- # Offense count: 12
472
+ # Offense count: 1
473
+ # This cop supports unsafe autocorrection (--autocorrect-all).
474
+ # Configuration parameters: EnforcedStyle.
475
+ # SupportedStyles: left_coerce, right_coerce, single_coerce, fdiv
476
+ Style/FloatDivision:
477
+ Exclude:
478
+ - 'lib/postsvg/visitors/ps_visitor/arithmetic.rb'
479
+
480
+ # Offense count: 16
137
481
  # This cop supports safe autocorrection (--autocorrect).
138
482
  # Configuration parameters: MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
139
483
  # SupportedStyles: annotated, template, unannotated
140
484
  Style/FormatStringToken:
141
485
  EnforcedStyle: unannotated
486
+
487
+ # Offense count: 1
488
+ # This cop supports unsafe autocorrection (--autocorrect-all).
489
+ # Configuration parameters: AllowedReceivers.
490
+ # AllowedReceivers: Thread.current
491
+ Style/HashEachMethods:
492
+ Exclude:
493
+ - 'spec/postsvg/integration_spec.rb'
494
+
495
+ # Offense count: 2
496
+ # This cop supports safe autocorrection (--autocorrect).
497
+ Style/MultilineIfModifier:
498
+ Exclude:
499
+ - 'lib/postsvg/renderer.rb'
500
+ - 'lib/postsvg/svg_builder.rb'
501
+
502
+ # Offense count: 2
503
+ # This cop supports safe autocorrection (--autocorrect).
504
+ Style/MultilineTernaryOperator:
505
+ Exclude:
506
+ - 'lib/postsvg/visitors/ps_visitor/font.rb'
507
+
508
+ # Offense count: 1
509
+ # This cop supports unsafe autocorrection (--autocorrect-all).
510
+ # Configuration parameters: EnforcedStyle, Recursive.
511
+ # SupportedStyles: literals, strict
512
+ Style/MutableConstant:
513
+ Exclude:
514
+ - 'lib/postsvg/svg/element.rb'
515
+
516
+ # Offense count: 2
517
+ # This cop supports safe autocorrection (--autocorrect).
518
+ Style/NestedTernaryOperator:
519
+ Exclude:
520
+ - 'lib/postsvg/svg/path_data/parser.rb'
521
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
522
+
523
+ # Offense count: 4
524
+ # This cop supports safe autocorrection (--autocorrect).
525
+ Style/ParallelAssignment:
526
+ Exclude:
527
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
528
+ - 'lib/postsvg/translation/handlers/rect_handler.rb'
529
+
530
+ # Offense count: 5
531
+ # This cop supports safe autocorrection (--autocorrect).
532
+ Style/RedundantFreeze:
533
+ Exclude:
534
+ - 'lib/postsvg/svg/path_data/parser.rb'
535
+ - 'lib/postsvg/svg_builder.rb'
536
+
537
+ # Offense count: 1
538
+ # This cop supports safe autocorrection (--autocorrect).
539
+ Style/RedundantInterpolationUnfreeze:
540
+ Exclude:
541
+ - 'lib/postsvg/svg_builder.rb'
542
+
543
+ # Offense count: 5
544
+ # This cop supports safe autocorrection (--autocorrect).
545
+ Style/RedundantParentheses:
546
+ Exclude:
547
+ - 'lib/postsvg/parser/postscript_parser.rb'
548
+ - 'lib/postsvg/translation/handlers/shared.rb'
549
+
550
+ # Offense count: 1
551
+ # This cop supports safe autocorrection (--autocorrect).
552
+ Style/RedundantRegexpArgument:
553
+ Exclude:
554
+ - 'lib/postsvg/svg/path_data/parser.rb'
555
+
556
+ # Offense count: 5
557
+ # This cop supports unsafe autocorrection (--autocorrect-all).
558
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
559
+ # AllowedMethods: present?, blank?, presence, try, try!
560
+ Style/SafeNavigation:
561
+ Exclude:
562
+ - 'lib/postsvg/translation/handlers/shared.rb'
563
+ - 'lib/postsvg/translation/handlers/text_handler.rb'
564
+
565
+ # Offense count: 4
566
+ # This cop supports safe autocorrection (--autocorrect).
567
+ # Configuration parameters: AllowAsExpressionSeparator.
568
+ Style/Semicolon:
569
+ Exclude:
570
+ - 'spec/postsvg/model/operators_spec.rb'
571
+
572
+ # Offense count: 1
573
+ # This cop supports safe autocorrection (--autocorrect).
574
+ # Configuration parameters: AllowModifier.
575
+ Style/SoleNestedConditional:
576
+ Exclude:
577
+ - 'lib/postsvg/visitors/ps_visitor/path.rb'
578
+
579
+ # Offense count: 1
580
+ # This cop supports safe autocorrection (--autocorrect).
581
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
582
+ # SupportedStyles: single_quotes, double_quotes
583
+ Style/StringLiterals:
584
+ Exclude:
585
+ - 'lib/postsvg/visitors/ps_visitor/common.rb'
586
+
587
+ # Offense count: 2
588
+ # This cop supports safe autocorrection (--autocorrect).
589
+ # Configuration parameters: EnforcedStyle, AllowSafeAssignment.
590
+ # SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
591
+ Style/TernaryParentheses:
592
+ Exclude:
593
+ - 'lib/postsvg/svg/path_data/parser.rb'
594
+ - 'lib/postsvg/translation/arc_converter.rb'
595
+
596
+ # Offense count: 11
597
+ # This cop supports safe autocorrection (--autocorrect).
598
+ # Configuration parameters: EnforcedStyleForMultiline.
599
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
600
+ Style/TrailingCommaInArguments:
601
+ Exclude:
602
+ - 'lib/postsvg/translation/handlers/ellipse_handler.rb'
603
+ - 'lib/postsvg/translation/handlers/line_handler.rb'
604
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
605
+ - 'lib/postsvg/visitors/ps_visitor/painting.rb'
606
+ - 'spec/postsvg/serializer_spec.rb'
607
+ - 'spec/postsvg/translation/arc_converter_spec.rb'
608
+
609
+ # Offense count: 3
610
+ # This cop supports safe autocorrection (--autocorrect).
611
+ # Configuration parameters: EnforcedStyleForMultiline.
612
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
613
+ Style/TrailingCommaInArrayLiteral:
614
+ Exclude:
615
+ - 'lib/postsvg/translation/bounding_box.rb'
616
+ - 'lib/postsvg/translation/handlers/path_handler.rb'
617
+ - 'lib/postsvg/translation/handlers/shared.rb'
618
+
619
+ # Offense count: 1
620
+ # This cop supports safe autocorrection (--autocorrect).
621
+ # Configuration parameters: EnforcedStyleForMultiline.
622
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
623
+ Style/TrailingCommaInHashLiteral:
624
+ Exclude:
625
+ - 'lib/postsvg/options.rb'