Class REXML::Validation::OneOrMore
In: lib/rexml/validation/relaxng.rb
Parent: State

Methods

expected   matches?   new   next   reset  

Public Class methods

[Source]

     # File lib/rexml/validation/relaxng.rb, line 316
316:       def initialize context
317:         super
318:         @ord = 0
319:       end

Public Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/rexml/validation/relaxng.rb, line 321
321:       def reset
322:         super 
323:         @ord = 0
324:       end

[Validate]