Class Methods
::
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 359
def initialize context
super
@choices = []
end
No documentation available
Instance Methods
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 370
def <<( event )
add_event_to_arry( @choices, event )
end
No documentation available
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 420
def add_event_to_arry( arry, evt )
if evt.kind_of? State or evt.class == Ref
arry << [evt]
elsif evt[0] == :text
if arry[-1] and
arry[-1][-1].kind_of?( Event ) and
arry[-1][-1].event_type == :text and @value
arry[-1][-1].event_arg = evt[1]
@value = false
end
else
arry << [] if evt[0] == :start_element
arry[-1] << generate_event( evt )
end
end
No documentation available
#
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 404
def expected
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
No documentation available
#
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 415
def inspect
"< #{to_s} #{@choices.collect{|e| e.collect{|f|f.to_s}.join(', ')}.join(' or ')} >"
end
No documentation available
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 399
def matches?( event )
return @events[@current].matches?( event ) if @events.size > 0
!@choices.find{|evt| evt[0].matches?(event)}.nil?
end
No documentation available
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 374
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
unless @events
@events = []
return nil
end
super
end
No documentation available
#
lib/rexml/validation/relaxng.rb
View on GitHub
# File tmp/rubies/ruby-2.3.8/lib/rexml/validation/relaxng.rb, line 364
def reset
super
@events = []
@choices.each { |c| c.each { |s| s.reset if s.kind_of? State } }
end
No documentation available