Class: REXML::Validation::State
- Inherits:
-
Object
- Object
- REXML::Validation::State
- Defined in:
- lib/rexml/validation/relaxng.rb
Instance Method Summary (collapse)
- - (Object) <<(event)
- - (Object) expected
-
- (State) initialize(context)
constructor
A new instance of State.
- - (Object) inspect
- - (Object) next(event)
- - (Object) previous=(previous)
- - (Object) reset
- - (Object) to_s
Constructor Details
- (State) initialize(context)
A new instance of State
127 128 129 130 131 132 133 134 |
# File 'lib/rexml/validation/relaxng.rb', line 127 def initialize( context ) @previous = [] @events = [] @current = 0 @count = context.count += 1 @references = context.references @value = false end |
Instance Method Details
- (Object) <<(event)
196 197 198 |
# File 'lib/rexml/validation/relaxng.rb', line 196 def <<( event ) add_event_to_arry( @events, event ) end |
- (Object) expected
192 193 194 |
# File 'lib/rexml/validation/relaxng.rb', line 192 def expected return [@events[@current]] end |
- (Object) inspect
185 186 187 188 189 190 |
# File 'lib/rexml/validation/relaxng.rb', line 185 def inspect "< #{to_s} #{@events.collect{|e| pre = e == @events[@current] ? '#' : '' pre + e.inspect unless self == e }.join(', ')} >" end |
- (Object) next(event)
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/rexml/validation/relaxng.rb', line 146 def next( event ) #print "In next with #{event.inspect}. " #puts "Next (#@current) is #{@events[@current]}" #p @previous return @previous.pop.next( event ) if @events[@current].nil? ( @events, @current ) if @events[@current].class == Ref if ( @events[@current].kind_of? State ) @current += 1 @events[@current-1].previous = self return @events[@current-1].next( event ) end #puts "Current isn't a state" if ( @events[@current].matches?(event) ) @current += 1 if @events[@current].nil? #puts "#{inspect[0,5]} 1RETURNING #{@previous.inspect[0,5]}" return @previous.pop elsif @events[@current].kind_of? State @current += 1 #puts "#{inspect[0,5]} 2RETURNING (#{@current-1}) #{@events[@current-1].inspect[0,5]}; on return, next is #{@events[@current]}" @events[@current-1].previous = self return @events[@current-1] else #puts "#{inspect[0,5]} RETURNING self w/ next(#@current) = #{@events[@current]}" return self end else return nil end end |
- (Object) previous=(previous)
142 143 144 |
# File 'lib/rexml/validation/relaxng.rb', line 142 def previous=( previous ) @previous << previous end |
- (Object) reset
136 137 138 139 140 |
# File 'lib/rexml/validation/relaxng.rb', line 136 def reset return if @current == 0 @current = 0 @events.each {|s| s.reset if s.kind_of? State } end |
- (Object) to_s
177 178 179 180 181 182 183 |
# File 'lib/rexml/validation/relaxng.rb', line 177 def to_s # Abbreviated: self.class.name =~ /(?:::)(\w)\w+$/ # Full: #self.class.name =~ /(?:::)(\w+)$/ "#$1.#@count" end |