meteor 0.9.45 → 0.9.46
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.
- checksums.yaml +4 -4
- data/ChangeLog +4 -0
- data/Gemfile.lock +1 -1
- data/lib/meteor/ml/html4/parser_impl.rb +79 -57
- data/lib/meteor/ml/xhtml4/parser_impl.rb +0 -2
- data/lib/meteor.rb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: da1a40f7b01242df1d91e5a5c9fbe36a606393ebc787874ea9e87ebf4a50fc80
|
|
4
|
+
data.tar.gz: 38a522602a2634d109714bad2a27fbe60c1e9173f0c9730f27ab7dcc9eb7aa78
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6be1372ef96ba157c1ef6e9803fcf4cefa916915034e3448945dcc353ce56c1e78f1c6535264e60baf515f0c1eb11550483881cbf15c5489acf31024e84d2495
|
|
7
|
+
data.tar.gz: f50a8ddde335d672a00c6313f189d6b9d7398f00a509ed249afcb8c8d3da40574fbd43fe0c670c565eb211107ba42c1114dba7d27e9e9f21df7a5f3a011a38f2
|
data/ChangeLog
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -160,39 +160,14 @@ module Meteor
|
|
|
160
160
|
# @param [String] name tag name (タグ名)
|
|
161
161
|
# @return [Meteor::Element] element (要素)
|
|
162
162
|
#
|
|
163
|
-
def element_one(name)
|
|
163
|
+
def element_one(name)
|
|
164
164
|
quote_name(name)
|
|
165
165
|
|
|
166
166
|
# case of void element (空要素の場合(<->内容あり要素の場合))
|
|
167
167
|
if match?(MATCH_TAG, name)
|
|
168
|
-
|
|
169
|
-
@pattern_cc = String.new('') << '<' << @_name << '(|\\s[^<>]*)>'
|
|
170
|
-
# @pattern_cc = "<#{@_name}(|\\s[^<>]*)>"
|
|
171
|
-
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
172
|
-
@res = @pattern.match(@root.document)
|
|
173
|
-
if @res
|
|
174
|
-
element_void_one(name)
|
|
175
|
-
else
|
|
176
|
-
puts(Meteor::Exception::NoSuchElementException.new(name).message) if @error_check
|
|
177
|
-
|
|
178
|
-
@elm_ = nil
|
|
179
|
-
end
|
|
168
|
+
element_one_void(name)
|
|
180
169
|
else
|
|
181
|
-
|
|
182
|
-
@pattern_cc = "<#{@_name}(|\\s[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
|
|
183
|
-
|
|
184
|
-
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
185
|
-
# search of normal element (内容あり要素検索)
|
|
186
|
-
@res = @pattern.match(@root.document)
|
|
187
|
-
# case of normal element (内容あり要素の場合)
|
|
188
|
-
if @res
|
|
189
|
-
@on_search = true
|
|
190
|
-
element_normal_one(name)
|
|
191
|
-
else
|
|
192
|
-
puts(Meteor::Exception::NoSuchElementException.new(name).message) if @error_check
|
|
193
|
-
|
|
194
|
-
@elm_ = nil
|
|
195
|
-
end
|
|
170
|
+
element_one_normal(name)
|
|
196
171
|
end
|
|
197
172
|
|
|
198
173
|
@elm_
|
|
@@ -200,6 +175,41 @@ module Meteor
|
|
|
200
175
|
|
|
201
176
|
private :element_one
|
|
202
177
|
|
|
178
|
+
def element_one_void(name)
|
|
179
|
+
# void element search pattern (空要素検索用パターン)
|
|
180
|
+
@pattern_cc = String.new('') << '<' << @_name << '(|\\s[^<>]*)>'
|
|
181
|
+
# @pattern_cc = "<#{@_name}(|\\s[^<>]*)>"
|
|
182
|
+
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
183
|
+
@res = @pattern.match(@root.document)
|
|
184
|
+
if @res
|
|
185
|
+
element_void_one(name)
|
|
186
|
+
else
|
|
187
|
+
puts(Meteor::Exception::NoSuchElementException.new(name).message) if @error_check
|
|
188
|
+
|
|
189
|
+
@elm_ = nil
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
private :element_one_void
|
|
194
|
+
|
|
195
|
+
def element_one_normal(name)
|
|
196
|
+
# normal element search pattern (内容あり要素検索用パターン()
|
|
197
|
+
@pattern_cc = "<#{@_name}(|\\s[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
|
|
198
|
+
|
|
199
|
+
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
200
|
+
# search of normal element (内容あり要素検索)
|
|
201
|
+
@res = @pattern.match(@root.document)
|
|
202
|
+
# case of normal element (内容あり要素の場合)
|
|
203
|
+
if @res
|
|
204
|
+
@on_search = true
|
|
205
|
+
element_normal_one(name)
|
|
206
|
+
else
|
|
207
|
+
puts(Meteor::Exception::NoSuchElementException.new(name).message) if @error_check
|
|
208
|
+
|
|
209
|
+
@elm_ = nil
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
203
213
|
def element_void_one(name)
|
|
204
214
|
@elm_ = Meteor::Element.new(name)
|
|
205
215
|
# attribute (属性)
|
|
@@ -222,48 +232,39 @@ module Meteor
|
|
|
222
232
|
# @param [true,false] quote quote flag (クオート・フラグ)
|
|
223
233
|
# @return [Meteor::Element] element (要素)
|
|
224
234
|
#
|
|
225
|
-
def element_three(name, attr_name, attr_value, quote = true) # rubocop:disable
|
|
235
|
+
def element_three(name, attr_name, attr_value, quote = true) # rubocop:disable Style/OptionalBooleanParameter
|
|
226
236
|
quote_name(name)
|
|
227
237
|
quote_attribute(attr_name, attr_value) if quote
|
|
228
238
|
|
|
229
239
|
# case of void element (空要素の場合(<->内容あり要素の場合))
|
|
230
240
|
if match?(MATCH_TAG, name)
|
|
231
|
-
|
|
232
|
-
@pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>"
|
|
233
|
-
|
|
234
|
-
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
235
|
-
# void element search (空要素検索)
|
|
236
|
-
@res = @pattern.match(@root.document)
|
|
237
|
-
if @res
|
|
238
|
-
element_void_three(name)
|
|
239
|
-
else
|
|
240
|
-
puts(Meteor::Exception::NoSuchElementException.new(name, attr_name, attr_value).message) if @error_check
|
|
241
|
-
|
|
242
|
-
@elm_ = nil
|
|
243
|
-
end
|
|
241
|
+
element_three_void(name, attr_name, attr_value)
|
|
244
242
|
else
|
|
245
|
-
|
|
246
|
-
|
|
243
|
+
element_three_normal(name, attr_name, attr_value)
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
@elm_
|
|
247
|
+
end
|
|
247
248
|
|
|
248
|
-
|
|
249
|
-
# search of normal element (内容あり要素検索)
|
|
250
|
-
@res = @pattern.match(@root.document)
|
|
249
|
+
private :element_three
|
|
251
250
|
|
|
252
|
-
|
|
251
|
+
def element_three_void(name, attr_name, attr_value)
|
|
252
|
+
# void element search pattern (空要素検索パターン)
|
|
253
|
+
@pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>"
|
|
253
254
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
256
|
+
# void element search (空要素検索)
|
|
257
|
+
@res = @pattern.match(@root.document)
|
|
258
|
+
if @res
|
|
259
|
+
element_void_three(name)
|
|
260
|
+
else
|
|
261
|
+
puts(Meteor::Exception::NoSuchElementException.new(name, attr_name, attr_value).message) if @error_check
|
|
258
262
|
|
|
259
|
-
|
|
260
|
-
end
|
|
263
|
+
@elm_ = nil
|
|
261
264
|
end
|
|
262
|
-
|
|
263
|
-
@elm_
|
|
264
265
|
end
|
|
265
266
|
|
|
266
|
-
private :
|
|
267
|
+
private :element_three_void
|
|
267
268
|
|
|
268
269
|
def element_void_three(name)
|
|
269
270
|
element_void_three_one(name, '"[^<>]*)>')
|
|
@@ -271,6 +272,27 @@ module Meteor
|
|
|
271
272
|
|
|
272
273
|
private :element_void_three
|
|
273
274
|
|
|
275
|
+
def element_three_normal(name, attr_name, attr_value)
|
|
276
|
+
# normal element search pattern (内容あり要素検索パターン)
|
|
277
|
+
@pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>" # rubocop:disable Layout/LineLength
|
|
278
|
+
|
|
279
|
+
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
|
280
|
+
# search of normal element (内容あり要素検索)
|
|
281
|
+
@res = @pattern.match(@root.document)
|
|
282
|
+
|
|
283
|
+
@res = element_normal_three_two if !@res && !match?(MATCH_TAG_NNE, name)
|
|
284
|
+
|
|
285
|
+
if @res
|
|
286
|
+
element_normal_three_one(name)
|
|
287
|
+
else
|
|
288
|
+
puts(Meteor::Exception::NoSuchElementException.new(name, attr_name, attr_value).message) if @error_check
|
|
289
|
+
|
|
290
|
+
@elm_ = nil
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
private :element_three_normal
|
|
295
|
+
|
|
274
296
|
#
|
|
275
297
|
# get element using attribute(name="value") (属性(属性名="属性値")で検索し、要素を取得する)
|
|
276
298
|
# @param [String] attr_name attribute name (属性名)
|
data/lib/meteor.rb
CHANGED
|
@@ -37,11 +37,11 @@ require 'meteor/ml/xml/parser_impl'
|
|
|
37
37
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
38
38
|
#
|
|
39
39
|
# @author Yasumasa Ashida
|
|
40
|
-
# @version 0.9.
|
|
40
|
+
# @version 0.9.46
|
|
41
41
|
#
|
|
42
42
|
|
|
43
43
|
module Meteor
|
|
44
|
-
VERSION = '0.9.
|
|
44
|
+
VERSION = '0.9.46'
|
|
45
45
|
|
|
46
46
|
# require 'fileutils'
|
|
47
47
|
|