Class | REXML::Validation::Choice |
In: |
rexml/validation/relaxng.rb
|
Parent: | State |
# File rexml/validation/relaxng.rb, line 374 def <<( event ) add_event_to_arry( @choices, event ) end
# File rexml/validation/relaxng.rb, line 411 def expected #puts "IN CHOICE EXPECTED" #puts "EVENTS = #{@events.inspect}" return [@events[@current]] if @events.size > 0 return @choices.collect do |x| if x[0].kind_of? State x[0].expected else x[0] end end.flatten end
# File rexml/validation/relaxng.rb, line 424 def inspect "< #{to_s} #{@choices.collect{|e| e.collect{|f|f.to_s}.join(', ')}.join(' or ')} >" end
# File rexml/validation/relaxng.rb, line 406 def matches?( event ) return @events[@current].matches?( event ) if @events.size > 0 !@choices.find{|evt| evt[0].matches?(event)}.nil? end
# File rexml/validation/relaxng.rb, line 378 def next( event ) # Make the choice if we haven't if @events.size == 0 c = 0 ; max = @choices.size while c < max if @choices[c][0].class == Ref expand_ref_in( @choices[c], 0 ) @choices += @choices[c] @choices.delete( @choices[c] ) max -= 1 else c += 1 end end @events = @choices.find { |evt| evt[0].matches? event } # Remove the references # Find the events end #puts "In next with #{event.inspect}." #puts "events is #{@events.inspect}" unless @events @events = [] return nil end #puts "current = #@current" super end