Class: REXML::Validation::ZeroOrMore

Inherits:
Optional show all
Defined in:
lib/rexml/validation/relaxng.rb

Instance Method Summary collapse

Methods inherited from Optional

#matches?

Methods inherited from State

#<<, #initialize, #inspect, #previous=, #reset, #to_s

Constructor Details

This class inherits a constructor from REXML::Validation::State

Instance Method Details

#expectedObject



308
309
310
311
# File 'lib/rexml/validation/relaxng.rb', line 308

def expected
  return [ @prior.expected, @events[0] ].flatten if @current == 0
  return [@events[@current]]
end

#next(event) ⇒ Object



287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
# File 'lib/rexml/validation/relaxng.rb', line 287

def next( event )
  expand_ref_in( @events, @current ) if @events[@current].class == Ref
  if ( @events[@current].matches?(event) )
    @current += 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
    @prior = @previous.pop
    return @prior.next( event ) if @current == 0
    return nil
  end
end