Class: MatchData
- Defined in:
- opal/opal/corelib/regexp.rb,
opal/opal/corelib/marshal/write_buffer.rb
Instance Attribute Summary collapse
-
#post_match ⇒ Object
readonly
Returns the value of attribute post_match.
-
#pre_match ⇒ Object
readonly
Returns the value of attribute pre_match.
-
#regexp ⇒ Object
readonly
Returns the value of attribute regexp.
-
#string ⇒ Object
readonly
Returns the value of attribute string.
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #[](*args) ⇒ Object
- #__marshal__(buffer) ⇒ Object
- #begin(n) ⇒ Object
- #captures ⇒ Object
- #end(n) ⇒ Object
-
#initialize(regexp, match_groups) ⇒ MatchData
constructor
A new instance of MatchData.
- #inspect ⇒ Object
- #length ⇒ Object (also: #size)
- #offset(n) ⇒ Object
- #to_a ⇒ Object
- #to_s ⇒ Object
- #values_at(*args) ⇒ Object
Constructor Details
#initialize(regexp, match_groups) ⇒ MatchData
Returns a new instance of MatchData
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'opal/opal/corelib/regexp.rb', line 214 def initialize(regexp, match_groups) $~ = self @regexp = regexp @begin = `match_groups.index` @string = `match_groups.input` @pre_match = `match_groups.input.slice(0, match_groups.index)` @post_match = `match_groups.input.slice(match_groups.index + match_groups[0].length)` @matches = [] %x{ for (var i = 0, length = match_groups.length; i < length; i++) { var group = match_groups[i]; if (group == null) { #@matches.push(nil); } else { #@matches.push(group); } } } end |
Instance Attribute Details
#post_match ⇒ Object (readonly)
Returns the value of attribute post_match
212 213 214 |
# File 'opal/opal/corelib/regexp.rb', line 212 def post_match @post_match end |
#pre_match ⇒ Object (readonly)
Returns the value of attribute pre_match
212 213 214 |
# File 'opal/opal/corelib/regexp.rb', line 212 def pre_match @pre_match end |
#regexp ⇒ Object (readonly)
Returns the value of attribute regexp
212 213 214 |
# File 'opal/opal/corelib/regexp.rb', line 212 def regexp @regexp end |
#string ⇒ Object (readonly)
Returns the value of attribute string
212 213 214 |
# File 'opal/opal/corelib/regexp.rb', line 212 def string @string end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
250 251 252 253 254 255 256 257 258 |
# File 'opal/opal/corelib/regexp.rb', line 250 def ==(other) return false unless MatchData === other `self.string == other.string` && `self.regexp.toString() == other.regexp.toString()` && `self.pre_match == other.pre_match` && `self.post_match == other.post_match` && `self.begin == other.begin` end |
#[](*args) ⇒ Object
237 238 239 |
# File 'opal/opal/corelib/regexp.rb', line 237 def [](*args) @matches[*args] end |
#__marshal__(buffer) ⇒ Object
102 103 104 |
# File 'opal/opal/corelib/marshal/write_buffer.rb', line 102 def __marshal__(buffer) raise TypeError, "no _dump_data is defined for class #{self.class}" end |
#begin(n) ⇒ Object
262 263 264 265 266 267 268 269 |
# File 'opal/opal/corelib/regexp.rb', line 262 def begin(n) %x{ if (n !== 0) { #{raise ArgumentError, 'MatchData#begin only supports 0th element'} } return self.begin; } end |
#captures ⇒ Object
280 281 282 |
# File 'opal/opal/corelib/regexp.rb', line 280 def captures `#@matches.slice(1)` end |
#end(n) ⇒ Object
271 272 273 274 275 276 277 278 |
# File 'opal/opal/corelib/regexp.rb', line 271 def end(n) %x{ if (n !== 0) { #{raise ArgumentError, 'MatchData#end only supports 0th element'} } return self.begin + self.matches[n].length; } end |
#inspect ⇒ Object
284 285 286 287 288 289 290 291 292 293 294 |
# File 'opal/opal/corelib/regexp.rb', line 284 def inspect %x{ var str = "#<MatchData " + #{`#@matches[0]`.inspect}; for (var i = 1, length = #@matches.length; i < length; i++) { str += " " + i + ":" + #{`#@matches[i]`.inspect}; } return str + ">"; } end |
#length ⇒ Object Also known as: size
296 297 298 |
# File 'opal/opal/corelib/regexp.rb', line 296 def length `#@matches.length` end |
#offset(n) ⇒ Object
241 242 243 244 245 246 247 248 |
# File 'opal/opal/corelib/regexp.rb', line 241 def offset(n) %x{ if (n !== 0) { #{raise ArgumentError, 'MatchData#offset only supports 0th element'} } return [self.begin, self.begin + self.matches[n].length]; } end |
#to_a ⇒ Object
302 303 304 |
# File 'opal/opal/corelib/regexp.rb', line 302 def to_a @matches end |
#to_s ⇒ Object
306 307 308 |
# File 'opal/opal/corelib/regexp.rb', line 306 def to_s `#@matches[0]` end |
#values_at(*args) ⇒ Object
310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 |
# File 'opal/opal/corelib/regexp.rb', line 310 def values_at(*args) %x{ var i, a, index, values = []; for (i = 0; i < args.length; i++) { if (args[i].$$is_range) { a = #{`args[i]`.to_a}; a.unshift(i, 1); Array.prototype.splice.apply(args, a); } index = #{Opal.coerce_to!(`args[i]`, Integer, :to_int)}; if (index < 0) { index += #@matches.length; if (index < 0) { values.push(nil); continue; } } values.push(#@matches[index]); } return values; } end |