Class | REXML::Validation::OneOrMore |
In: |
lib/rexml/validation/relaxng.rb
|
Parent: | State |
# File lib/rexml/validation/relaxng.rb, line 316 316: def initialize context 317: super 318: @ord = 0 319: end
# File lib/rexml/validation/relaxng.rb, line 352 352: def expected 353: if @current == 0 and @ord > 0 354: return [@previous[-1].expected, @events[0]].flatten 355: else 356: return [@events[@current]] 357: end 358: end
# File lib/rexml/validation/relaxng.rb, line 347 347: def matches?( event ) 348: @events[@current].matches?(event) || 349: (@current == 0 and @ord > 0 and @previous[-1].matches?(event)) 350: end
# File lib/rexml/validation/relaxng.rb, line 326 326: def next( event ) 327: expand_ref_in( @events, @current ) if @events[@current].class == Ref 328: if ( @events[@current].matches?(event) ) 329: @current += 1 330: @ord += 1 331: if @events[@current].nil? 332: @current = 0 333: return self 334: elsif @events[@current].kind_of? State 335: @current += 1 336: @events[@current-1].previous = self 337: return @events[@current-1] 338: else 339: return self 340: end 341: else 342: return @previous.pop.next( event ) if @current == 0 and @ord > 0 343: return nil 344: end 345: end