Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.ruby > #3113
| From | 7stud -- <bbxx789_05ss@yahoo.com> |
|---|---|
| Newsgroups | comp.lang.ruby |
| Subject | Re: Making a simple parser |
| Date | 2011-04-18 13:24 -0500 |
| Organization | Service de news de lacave.net |
| Message-ID | <da69f5afa6794cb197ccceb8072e2fcc@ruby-forum.com> (permalink) |
| References | <87adbac7061a00a72e282c160ed42414@ruby-forum.com> |
I'm pretty unclear about what you are trying to do, but maybe this will
help:
class InputFormat
@children = []
def self.children
@children
end
def initialize(input)
@input = input
end
def parse
InputFormat.children.each { |child|
child.parse(@input) if child.supported?
}
end
def self.inherited(sub_class)
@children << sub_class.new('dummy')
end
end
class InputFormatA < InputFormat
def supported?
true
end
def parse(str)
puts "InputFormatA is parsing #{str}"
end
end
class InputFormatB < InputFormat
def supported?
true
end
def parse(str)
puts "InputFormatB is parsing #{str}"
end
end
input = InputFormat.new('hello world')
input.parse
--output:--
InputFormatA is parsing hello world
InputFormatB is parsing hello world
Note that when inherited() is called, the methods of the subclass are
not defined yet, so the inherited initialize() is called.
--
Posted via http://www.ruby-forum.com/.
Back to comp.lang.ruby | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Making a simple parser Felipe Balbi <balbif@gmail.com> - 2011-04-16 14:52 -0500
Re: Making a simple parser 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-16 22:31 -0500
Re: Making a simple parser jake kaiden <jakekaiden@yahoo.com> - 2011-04-17 12:01 -0500
Re: Making a simple parser Felipe Balbi <balbif@gmail.com> - 2011-04-17 15:22 -0500
Re: Making a simple parser jake kaiden <jakekaiden@yahoo.com> - 2011-04-17 21:10 -0500
Re: Making a simple parser Jesús Gabriel y Galán <jgabrielygalan@gmail.com> - 2011-04-18 02:22 -0500
Re: Making a simple parser Felipe Balbi <balbif@gmail.com> - 2011-04-19 16:03 -0500
Re: Making a simple parser 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-18 13:24 -0500
Re: Making a simple parser 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-18 15:22 -0500
csiph-web