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.
      279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 279 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.
      277 278 279  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 277 def post_match @post_match end  | 
  
#pre_match ⇒ Object (readonly)
Returns the value of attribute pre_match.
      277 278 279  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 277 def pre_match @pre_match end  | 
  
#regexp ⇒ Object (readonly)
Returns the value of attribute regexp.
      277 278 279  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 277 def regexp @regexp end  | 
  
#string ⇒ Object (readonly)
Returns the value of attribute string.
      277 278 279  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 277 def string @string end  | 
  
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
      315 316 317 318 319 320 321 322 323  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 315 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
      302 303 304  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 302 def [](*args) @matches[*args] end  | 
  
#__marshal__(buffer) ⇒ Object
      107 108 109  | 
    
      # File 'opal/opal/corelib/marshal/write_buffer.rb', line 107 def __marshal__(buffer) raise TypeError, "no _dump_data is defined for class #{self.class}" end  | 
  
#begin(n) ⇒ Object
      327 328 329 330 331 332 333 334  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 327 def begin(n) %x{ if (n !== 0) { #{raise ArgumentError, 'MatchData#begin only supports 0th element'} } return self.begin; } end  | 
  
#captures ⇒ Object
      345 346 347  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 345 def captures `#{@matches}.slice(1)` end  | 
  
#end(n) ⇒ Object
      336 337 338 339 340 341 342 343  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 336 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
      349 350 351 352 353 354 355 356 357 358 359  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 349 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
      361 362 363  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 361 def length `#{@matches}.length` end  | 
  
#offset(n) ⇒ Object
      306 307 308 309 310 311 312 313  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 306 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
      367 368 369  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 367 def to_a @matches end  | 
  
#to_s ⇒ Object
      371 372 373  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 371 def to_s `#{@matches}[0]` end  | 
  
#values_at(*args) ⇒ Object
      375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402  | 
    
      # File 'opal/opal/corelib/regexp.rb', line 375 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  |