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

### Methods

expected matches? new next reset

### Public Class methods

new(context)

[Source]

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

### Public Instance methods

expected()

[Source]

    # File rexml/validation/relaxng.rb, line 352
          def expected
            if @current == 0 and @ord > 0
              return [@previous[-1].expected, @events[0]].flatten
            else
              return [@events[@current]]
            end
          end

matches?( event )

[Source]

    # File rexml/validation/relaxng.rb, line 347
          def matches?( event )
            @events[@current].matches?(event) ||
            (@current == 0 and @ord > 0 and @previous[-1].matches?(event))
          end

next( event )

[Source]

    # File rexml/validation/relaxng.rb, line 326
          def next( event )
            expand_ref_in( @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()

[Source]

    # File rexml/validation/relaxng.rb, line 321
          def reset
            super
            @ord = 0
          end

[Validate]