Class: REXML::Validation::OneOrMore
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
          State
         | |
| Instance Chain: 
          self,
          State
         | |
| Inherits: | REXML::Validation::State 
 | 
| Defined in: | lib/rexml/validation/relaxng.rb | 
Class Method Summary
Instance Attribute Summary
State - Inherited
Instance Method Summary
State - Inherited
Constructor Details
    .new(context)  ⇒ OneOrMore 
  
# File 'lib/rexml/validation/relaxng.rb', line 311
def initialize context super @ord = 0 end
Instance Method Details
#expected
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 347
def expected if @current == 0 and @ord > 0 return [@previous[-1].expected, @events[0]].flatten else return [@events[@current]] end end
    #matches?(event)  ⇒ Boolean 
  
# File 'lib/rexml/validation/relaxng.rb', line 342
def matches?( event ) @events[@current].matches?(event) || (@current == 0 and @ord > 0 and @previous[-1].matches?(event)) end
#next(event)
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 321
def next( event ) ( @events, @current ) if @events[@current].class == Ref if ( @events[@current].matches?(event) ) @current += 1 @ord += 1 if @events[@current].nil? @current = 0 return self elsif @events[@current].kind_of? State @current += 1 @events[@current-1].previous = self return @events[@current-1] else return self end else return @previous.pop.next( event ) if @current == 0 and @ord > 0 return nil end end
#reset
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 316
def reset super @ord = 0 end