onigmo 0.1.0

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.
@@ -0,0 +1,339 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Onigmo
4
+ class AlternationNode
5
+ def accept(visitor)
6
+ visitor.visit_alternation_node(self)
7
+ end
8
+
9
+ def child_nodes
10
+ [*nodes]
11
+ end
12
+ end
13
+
14
+ class AnchorBufferBeginNode
15
+ def accept(visitor)
16
+ visitor.visit_anchor_buffer_begin_node(self)
17
+ end
18
+
19
+ def child_nodes
20
+ []
21
+ end
22
+ end
23
+
24
+ class AnchorBufferEndNode
25
+ def accept(visitor)
26
+ visitor.visit_anchor_buffer_end_node(self)
27
+ end
28
+
29
+ def child_nodes
30
+ []
31
+ end
32
+ end
33
+
34
+ class AnchorKeepNode
35
+ def accept(visitor)
36
+ visitor.visit_anchor_keep_node(self)
37
+ end
38
+
39
+ def child_nodes
40
+ []
41
+ end
42
+ end
43
+
44
+ class AnchorLineBeginNode
45
+ def accept(visitor)
46
+ visitor.visit_anchor_line_begin_node(self)
47
+ end
48
+
49
+ def child_nodes
50
+ []
51
+ end
52
+ end
53
+
54
+ class AnchorLineEndNode
55
+ def accept(visitor)
56
+ visitor.visit_anchor_line_end_node(self)
57
+ end
58
+
59
+ def child_nodes
60
+ []
61
+ end
62
+ end
63
+
64
+ class AnchorPositionBeginNode
65
+ def accept(visitor)
66
+ visitor.visit_anchor_position_begin_node(self)
67
+ end
68
+
69
+ def child_nodes
70
+ []
71
+ end
72
+ end
73
+
74
+ class AnchorSemiEndNode
75
+ def accept(visitor)
76
+ visitor.visit_anchor_semi_end_node(self)
77
+ end
78
+
79
+ def child_nodes
80
+ []
81
+ end
82
+ end
83
+
84
+ class AnchorWordBoundaryNode
85
+ def accept(visitor)
86
+ visitor.visit_anchor_word_boundary_node(self)
87
+ end
88
+
89
+ def child_nodes
90
+ []
91
+ end
92
+ end
93
+
94
+ class AnchorWordBoundaryInvertNode
95
+ def accept(visitor)
96
+ visitor.visit_anchor_word_boundary_invert_node(self)
97
+ end
98
+
99
+ def child_nodes
100
+ []
101
+ end
102
+ end
103
+
104
+ class AnyNode
105
+ def accept(visitor)
106
+ visitor.visit_any_node(self)
107
+ end
108
+
109
+ def child_nodes
110
+ []
111
+ end
112
+ end
113
+
114
+ class BackrefNode
115
+ def accept(visitor)
116
+ visitor.visit_backref_node(self)
117
+ end
118
+
119
+ def child_nodes
120
+ []
121
+ end
122
+ end
123
+
124
+ class CallNode
125
+ def accept(visitor)
126
+ visitor.visit_call_node(self)
127
+ end
128
+
129
+ def child_nodes
130
+ []
131
+ end
132
+ end
133
+
134
+ class CClassNode
135
+ def accept(visitor)
136
+ visitor.visit_cclass_node(self)
137
+ end
138
+
139
+ def child_nodes
140
+ []
141
+ end
142
+ end
143
+
144
+ class CClassInvertNode
145
+ def accept(visitor)
146
+ visitor.visit_cclass_invert_node(self)
147
+ end
148
+
149
+ def child_nodes
150
+ []
151
+ end
152
+ end
153
+
154
+ class EncloseAbsentNode
155
+ def accept(visitor)
156
+ visitor.visit_enclose_absent_node(self)
157
+ end
158
+
159
+ def child_nodes
160
+ [node]
161
+ end
162
+ end
163
+
164
+ class EncloseConditionNode
165
+ def accept(visitor)
166
+ visitor.visit_enclose_condition_node(self)
167
+ end
168
+
169
+ def child_nodes
170
+ [node]
171
+ end
172
+ end
173
+
174
+ class EncloseMemoryNode
175
+ def accept(visitor)
176
+ visitor.visit_enclose_memory_node(self)
177
+ end
178
+
179
+ def child_nodes
180
+ [node]
181
+ end
182
+ end
183
+
184
+ class EncloseOptionsNode
185
+ def accept(visitor)
186
+ visitor.visit_enclose_options_node(self)
187
+ end
188
+
189
+ def child_nodes
190
+ [node]
191
+ end
192
+ end
193
+
194
+ class EncloseStopBacktrackNode
195
+ def accept(visitor)
196
+ visitor.visit_enclose_stop_backtrack_node(self)
197
+ end
198
+
199
+ def child_nodes
200
+ [node]
201
+ end
202
+ end
203
+
204
+ class ListNode
205
+ def accept(visitor)
206
+ visitor.visit_list_node(self)
207
+ end
208
+
209
+ def child_nodes
210
+ [*nodes]
211
+ end
212
+ end
213
+
214
+ class LookAheadNode
215
+ def accept(visitor)
216
+ visitor.visit_look_ahead_node(self)
217
+ end
218
+
219
+ def child_nodes
220
+ [node]
221
+ end
222
+ end
223
+
224
+ class LookAheadInvertNode
225
+ def accept(visitor)
226
+ visitor.visit_look_ahead_invert_node(self)
227
+ end
228
+
229
+ def child_nodes
230
+ [node]
231
+ end
232
+ end
233
+
234
+ class LookBehindNode
235
+ def accept(visitor)
236
+ visitor.visit_look_behind_node(self)
237
+ end
238
+
239
+ def child_nodes
240
+ [node]
241
+ end
242
+ end
243
+
244
+ class LookBehindInvertNode
245
+ def accept(visitor)
246
+ visitor.visit_look_behind_invert_node(self)
247
+ end
248
+
249
+ def child_nodes
250
+ [node]
251
+ end
252
+ end
253
+
254
+ class QuantifierNode
255
+ def accept(visitor)
256
+ visitor.visit_quantifier_node(self)
257
+ end
258
+
259
+ def child_nodes
260
+ [node]
261
+ end
262
+ end
263
+
264
+ class StringNode
265
+ def accept(visitor)
266
+ visitor.visit_string_node(self)
267
+ end
268
+
269
+ def child_nodes
270
+ []
271
+ end
272
+ end
273
+
274
+ class WordNode
275
+ def accept(visitor)
276
+ visitor.visit_word_node(self)
277
+ end
278
+
279
+ def child_nodes
280
+ []
281
+ end
282
+ end
283
+
284
+ class WordInvertNode
285
+ def accept(visitor)
286
+ visitor.visit_word_invert_node(self)
287
+ end
288
+
289
+ def child_nodes
290
+ []
291
+ end
292
+ end
293
+
294
+ class Visitor
295
+ def visit_child_nodes(node)
296
+ node.child_nodes.each { |child_node| child_node.accept(self) }
297
+ end
298
+
299
+ alias visit_alternation_node visit_child_nodes
300
+ alias visit_anchor_buffer_begin_node visit_child_nodes
301
+ alias visit_anchor_buffer_end_node visit_child_nodes
302
+ alias visit_anchor_keep_node visit_child_nodes
303
+ alias visit_anchor_line_begin_node visit_child_nodes
304
+ alias visit_anchor_line_end_node visit_child_nodes
305
+ alias visit_anchor_position_begin_node visit_child_nodes
306
+ alias visit_anchor_semi_end_node visit_child_nodes
307
+ alias visit_anchor_word_boundary_node visit_child_nodes
308
+ alias visit_anchor_word_boundary_invert_node visit_child_nodes
309
+ alias visit_any_node visit_child_nodes
310
+ alias visit_backref_node visit_child_nodes
311
+ alias visit_call_node visit_child_nodes
312
+ alias visit_cclass_node visit_child_nodes
313
+ alias visit_cclass_invert_node visit_child_nodes
314
+ alias visit_enclose_absent_node visit_child_nodes
315
+ alias visit_enclose_condition_node visit_child_nodes
316
+ alias visit_enclose_memory_node visit_child_nodes
317
+ alias visit_enclose_options_node visit_child_nodes
318
+ alias visit_enclose_stop_backtrack_node visit_child_nodes
319
+ alias visit_list_node visit_child_nodes
320
+ alias visit_look_ahead_node visit_child_nodes
321
+ alias visit_look_ahead_invert_node visit_child_nodes
322
+ alias visit_look_behind_node visit_child_nodes
323
+ alias visit_look_behind_invert_node visit_child_nodes
324
+ alias visit_quantifier_node visit_child_nodes
325
+ alias visit_string_node visit_child_nodes
326
+ alias visit_word_node visit_child_nodes
327
+ alias visit_word_invert_node visit_child_nodes
328
+
329
+ private
330
+
331
+ def visit(node)
332
+ node.accept(self)
333
+ end
334
+
335
+ def visit_all(nodes)
336
+ nodes.map { |node| visit(node) }
337
+ end
338
+ end
339
+ end
data/lib/onigmo.rb ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Onigmo
4
+ require "onigmo/node"
5
+ require "onigmo/onigmo"
6
+
7
+ autoload :Visitor, "onigmo/visitor"
8
+ autoload :DeconstructVisitor, "onigmo/deconstruct_visitor"
9
+ autoload :JSONVisitor, "onigmo/json_visitor"
10
+ autoload :PrettyPrintVisitor, "onigmo/pretty_print_visitor"
11
+ end
data/onigmo.gemspec ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "onigmo"
5
+ spec.version = "0.1.0"
6
+ spec.authors = ["Shopify"]
7
+ spec.email = ["ruby@shopify.com"]
8
+
9
+ spec.summary = "A Ruby wrapper around the onigmo regular expression library"
10
+ spec.homepage = "https://github.com/Shopify/onigmo"
11
+ spec.license = "MIT"
12
+
13
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
14
+ spec.require_paths = ["lib"]
15
+ spec.extensions = ["ext/onigmo/extconf.rb"]
16
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: onigmo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Shopify
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-03-19 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ - ruby@shopify.com
16
+ executables: []
17
+ extensions:
18
+ - ext/onigmo/extconf.rb
19
+ extra_rdoc_files: []
20
+ files:
21
+ - ".github/workflows/main.yml"
22
+ - ".gitignore"
23
+ - Gemfile
24
+ - Gemfile.lock
25
+ - LICENSE
26
+ - README.md
27
+ - Rakefile
28
+ - bin/console
29
+ - ext/onigmo/extconf.rb
30
+ - ext/onigmo/onigmo.c
31
+ - ext/onigmo/regenc.h
32
+ - ext/onigmo/regint.h
33
+ - ext/onigmo/regparse.h
34
+ - lib/onigmo.rb
35
+ - lib/onigmo/deconstruct_visitor.rb
36
+ - lib/onigmo/json_visitor.rb
37
+ - lib/onigmo/node.rb
38
+ - lib/onigmo/pretty_print_visitor.rb
39
+ - lib/onigmo/visitor.rb
40
+ - onigmo.gemspec
41
+ homepage: https://github.com/Shopify/onigmo
42
+ licenses:
43
+ - MIT
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubygems_version: 3.4.1
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: A Ruby wrapper around the onigmo regular expression library
64
+ test_files: []