Dark Ambient
8/13/2006 7:02:00 PM
Well a few things. For some reason, in the past I've attempted to use
'find' in Ruby and irb has sent back a nomethod error. So perhaps t
was syntax errors (though I don't believe it was) not sure. I'm about
to run out so I'll check it in a while.
And yes, this is for educational purposes though I think I may have
not seen some options. Particularly the ability in Rails to play with
models and controllers in the console. I know this is not the Rails
list and I've gone ahead posted my errors while attempting to load the
console using the NAME or DESCRIPTION option.
Stuart
On 8/13/06, Morton Goldberg <m_goldberg@ameritech.net> wrote:
> I'm assuming that you are just implementing this for its educational
> value and not seriously considering implementing a data base with
> this approach. Ruby has built-in and third-party libraries to help
> you implement a data bases application.
>
> I've modified your posting just enough to make a shallow scratch on
> the surface of what can be done to organize and search data. I hope
> it's enough to help you along. Although you said you didn't want to
> consider regular expressions yet, I use them because it makes life
> much simpler to use at least simple regexes.
>
> #! /usr/bin/ruby -w
>
> class Composer
>
> @@composers = []
>
> def Composer.find(attrib, regex)
> @@composers.select do |c|
> c.respond_to?(attrib) &&
> c.send(attrib) =~ regex
> end
> end
>
> def initialize( lname, country )
> @lname = lname
> @country = country
> @@composers << self
> end
>
> attr_accessor :lname, :country
> alias :to_s :inspect
>
> end
>
> Composer.new("Beethoven", "Germany")
> Composer.new("DeFalla", "Spain")
> Composer.new("Debussy", "France")
> Composer.new("Bach", "Germany")
> Composer.new("Rodrigo", "Spain")
> Composer.new("Ravel", "France")
>
> puts Composer.find(:country, /^Ger/)
> puts Composer.find(:lname, /^R/)
> # =>
> # #<Composer:0x24a18 @country="Germany", @lname="Beethoven">
> # #<Composer:0x24964 @country="Germany", @lname="Bach">
> # #<Composer:0x24928 @country="Spain", @lname="Rodrigo">
> # #<Composer:0x248ec @country="France", @lname="Ravel">
>
> Regards, Morton
>
>
> On Aug 13, 2006, at 1:54 PM, Dark Ambient wrote:
>
> > I can use some help here:
> >
> > I've set up this class and objects and would like to "search" it
> > similar to the way I would search a database. At this point I'm not
> > concerned with adding regex for more liberal searches.
> > Any suggestions ?
> >
> >
> >
> > class Composer
> > def initialize( lname, country )
> > @lname = lname
> > @country = country
> > end
> > attr_accessor(:lname, :country)
> > end
> >
> > comp1 = Composer.new("Beethoven", "Germany")
> > comp2 = Composer.new("DeFalla", "Spain")
> > comp3 = Composer.new("Debussy", "France")
> >
>
>
>