emfsvg 0.1.1 → 0.1.2

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +86 -58
  3. data/exe/emfsvg +21 -2
  4. data/lib/emfsvg/dib_encoder.rb +67 -0
  5. data/lib/emfsvg/error.rb +2 -0
  6. data/lib/emfsvg/png_decoder.rb +23 -0
  7. data/lib/emfsvg/svg/attribute_parser.rb +31 -0
  8. data/lib/emfsvg/svg/clip_path_registry.rb +43 -0
  9. data/lib/emfsvg/svg/color.rb +105 -0
  10. data/lib/emfsvg/svg/document.rb +70 -0
  11. data/lib/emfsvg/svg/element.rb +66 -0
  12. data/lib/emfsvg/svg/elements/circle.rb +38 -0
  13. data/lib/emfsvg/svg/elements/clip_path.rb +128 -0
  14. data/lib/emfsvg/svg/elements/defs.rb +24 -0
  15. data/lib/emfsvg/svg/elements/ellipse.rb +35 -0
  16. data/lib/emfsvg/svg/elements/group.rb +33 -0
  17. data/lib/emfsvg/svg/elements/image.rb +65 -0
  18. data/lib/emfsvg/svg/elements/line.rb +35 -0
  19. data/lib/emfsvg/svg/elements/path.rb +29 -0
  20. data/lib/emfsvg/svg/elements/polygon.rb +29 -0
  21. data/lib/emfsvg/svg/elements/polyline.rb +29 -0
  22. data/lib/emfsvg/svg/elements/rect.rb +44 -0
  23. data/lib/emfsvg/svg/elements/stylable.rb +28 -0
  24. data/lib/emfsvg/svg/elements/text.rb +67 -0
  25. data/lib/emfsvg/svg/elements.rb +42 -0
  26. data/lib/emfsvg/svg/paint.rb +36 -0
  27. data/lib/emfsvg/svg/parser.rb +44 -0
  28. data/lib/emfsvg/svg/path_data/command.rb +15 -0
  29. data/lib/emfsvg/svg/path_data.rb +135 -0
  30. data/lib/emfsvg/svg/stroke.rb +107 -0
  31. data/lib/emfsvg/svg/transform_parser.rb +123 -0
  32. data/lib/emfsvg/svg.rb +25 -0
  33. data/lib/emfsvg/translation/context.rb +99 -0
  34. data/lib/emfsvg/translation/decimal_detector.rb +112 -0
  35. data/lib/emfsvg/translation/emf_renderer.rb +146 -0
  36. data/lib/emfsvg/translation/handler_registry.rb +38 -0
  37. data/lib/emfsvg/translation/handlers/circle_handler.rb +17 -0
  38. data/lib/emfsvg/translation/handlers/clip_path_handler.rb +16 -0
  39. data/lib/emfsvg/translation/handlers/defs_handler.rb +17 -0
  40. data/lib/emfsvg/translation/handlers/ellipse_handler.rb +28 -0
  41. data/lib/emfsvg/translation/handlers/group_handler.rb +40 -0
  42. data/lib/emfsvg/translation/handlers/image_handler.rb +94 -0
  43. data/lib/emfsvg/translation/handlers/line_handler.rb +30 -0
  44. data/lib/emfsvg/translation/handlers/path_flattener.rb +139 -0
  45. data/lib/emfsvg/translation/handlers/path_handler.rb +78 -0
  46. data/lib/emfsvg/translation/handlers/polygon_handler.rb +17 -0
  47. data/lib/emfsvg/translation/handlers/polyline_handler.rb +51 -0
  48. data/lib/emfsvg/translation/handlers/rect_handler.rb +43 -0
  49. data/lib/emfsvg/translation/handlers/shared_gdi.rb +97 -0
  50. data/lib/emfsvg/translation/handlers/text_handler.rb +137 -0
  51. data/lib/emfsvg/translation/handlers.rb +25 -0
  52. data/lib/emfsvg/translation/header_builder.rb +89 -0
  53. data/lib/emfsvg/translation/record_emitter.rb +36 -0
  54. data/lib/emfsvg/translation/scaler/fixed.rb +41 -0
  55. data/lib/emfsvg/translation/scaler/identity.rb +23 -0
  56. data/lib/emfsvg/translation/scaler.rb +19 -0
  57. data/lib/emfsvg/translation.rb +16 -0
  58. data/lib/emfsvg/version.rb +1 -1
  59. data/lib/emfsvg.rb +21 -0
  60. metadata +73 -3
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emfsvg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-07-26 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: base64
@@ -79,6 +80,20 @@ dependencies:
79
80
  - - "~>"
80
81
  - !ruby/object:Gem::Version
81
82
  version: '1.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: nokogiri
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.16'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.16'
82
97
  description: Convert Microsoft Enhanced Metafile (EMF) to SVG and back. Consumes the
83
98
  `emf` gem's domain model. Replaces the FFI wrapper around libemf2svg with a pure-Ruby
84
99
  transformer.
@@ -98,15 +113,68 @@ files:
98
113
  - lib/emfsvg/clip_region.rb
99
114
  - lib/emfsvg/device_context.rb
100
115
  - lib/emfsvg/dib_decoder.rb
116
+ - lib/emfsvg/dib_encoder.rb
101
117
  - lib/emfsvg/error.rb
102
118
  - lib/emfsvg/format_helpers.rb
103
119
  - lib/emfsvg/glyph_index_mapper.rb
104
120
  - lib/emfsvg/object_table.rb
105
121
  - lib/emfsvg/options.rb
122
+ - lib/emfsvg/png_decoder.rb
106
123
  - lib/emfsvg/png_encoder.rb
107
124
  - lib/emfsvg/renderer.rb
125
+ - lib/emfsvg/svg.rb
126
+ - lib/emfsvg/svg/attribute_parser.rb
127
+ - lib/emfsvg/svg/clip_path_registry.rb
128
+ - lib/emfsvg/svg/color.rb
129
+ - lib/emfsvg/svg/document.rb
130
+ - lib/emfsvg/svg/element.rb
131
+ - lib/emfsvg/svg/elements.rb
132
+ - lib/emfsvg/svg/elements/circle.rb
133
+ - lib/emfsvg/svg/elements/clip_path.rb
134
+ - lib/emfsvg/svg/elements/defs.rb
135
+ - lib/emfsvg/svg/elements/ellipse.rb
136
+ - lib/emfsvg/svg/elements/group.rb
137
+ - lib/emfsvg/svg/elements/image.rb
138
+ - lib/emfsvg/svg/elements/line.rb
139
+ - lib/emfsvg/svg/elements/path.rb
140
+ - lib/emfsvg/svg/elements/polygon.rb
141
+ - lib/emfsvg/svg/elements/polyline.rb
142
+ - lib/emfsvg/svg/elements/rect.rb
143
+ - lib/emfsvg/svg/elements/stylable.rb
144
+ - lib/emfsvg/svg/elements/text.rb
145
+ - lib/emfsvg/svg/paint.rb
146
+ - lib/emfsvg/svg/parser.rb
147
+ - lib/emfsvg/svg/path_data.rb
148
+ - lib/emfsvg/svg/path_data/command.rb
149
+ - lib/emfsvg/svg/stroke.rb
150
+ - lib/emfsvg/svg/transform_parser.rb
108
151
  - lib/emfsvg/svg_builder.rb
109
152
  - lib/emfsvg/transform_stack.rb
153
+ - lib/emfsvg/translation.rb
154
+ - lib/emfsvg/translation/context.rb
155
+ - lib/emfsvg/translation/decimal_detector.rb
156
+ - lib/emfsvg/translation/emf_renderer.rb
157
+ - lib/emfsvg/translation/handler_registry.rb
158
+ - lib/emfsvg/translation/handlers.rb
159
+ - lib/emfsvg/translation/handlers/circle_handler.rb
160
+ - lib/emfsvg/translation/handlers/clip_path_handler.rb
161
+ - lib/emfsvg/translation/handlers/defs_handler.rb
162
+ - lib/emfsvg/translation/handlers/ellipse_handler.rb
163
+ - lib/emfsvg/translation/handlers/group_handler.rb
164
+ - lib/emfsvg/translation/handlers/image_handler.rb
165
+ - lib/emfsvg/translation/handlers/line_handler.rb
166
+ - lib/emfsvg/translation/handlers/path_flattener.rb
167
+ - lib/emfsvg/translation/handlers/path_handler.rb
168
+ - lib/emfsvg/translation/handlers/polygon_handler.rb
169
+ - lib/emfsvg/translation/handlers/polyline_handler.rb
170
+ - lib/emfsvg/translation/handlers/rect_handler.rb
171
+ - lib/emfsvg/translation/handlers/shared_gdi.rb
172
+ - lib/emfsvg/translation/handlers/text_handler.rb
173
+ - lib/emfsvg/translation/header_builder.rb
174
+ - lib/emfsvg/translation/record_emitter.rb
175
+ - lib/emfsvg/translation/scaler.rb
176
+ - lib/emfsvg/translation/scaler/fixed.rb
177
+ - lib/emfsvg/translation/scaler/identity.rb
110
178
  - lib/emfsvg/version.rb
111
179
  - lib/emfsvg/visitors.rb
112
180
  - lib/emfsvg/visitors/emr_visitor.rb
@@ -118,6 +186,7 @@ metadata:
118
186
  source_code_uri: https://github.com/claricle/emfsvg
119
187
  changelog_uri: https://github.com/claricle/emfsvg/blob/main/CHANGELOG.adoc
120
188
  rubygems_mfa_required: 'true'
189
+ post_install_message:
121
190
  rdoc_options: []
122
191
  require_paths:
123
192
  - lib
@@ -132,7 +201,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
201
  - !ruby/object:Gem::Version
133
202
  version: '0'
134
203
  requirements: []
135
- rubygems_version: 4.0.16
204
+ rubygems_version: 3.5.22
205
+ signing_key:
136
206
  specification_version: 4
137
207
  summary: EMF <-> SVG transformer (Ruby).
138
208
  test_files: []