Forum: Ruby Object Query Language for Ruby?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Victor S. (Guest)
on 2006-03-25 09:04
(Received via mailing list)
Hello.

Today I've stubled upon an interesting article at CodeProject:

Karmencita: an object query language for .NET
http://www.codeproject.com/csharp/Karmencita.asp

The do something like

-----
// initialize the data source
// (in this case a Stack of Customers)
Stack<Customer> customers = .....

// initialize Karmencita with
// the type of object to be queries
ObjectQuery<Customer> oq =
          new ObjectQuery<Customer>();

// write the query
string query = "Name = [Thor the Mighty]" +
               " and IsMale = true and BirthDate" +
               " < [1,1,1910]";

//run the query
Customer[] processes = (Customer[]) oq.Select(customers, query);
-------


I have no idea about when and how can be it useful, but it can be
intersting
to do the trick for Ruby, ha?

Victor.
Dave B. (Guest)
on 2006-03-25 09:18
(Received via mailing list)
Victor S. wrote:
> Today I've stubled upon an interesting article at CodeProject:
>
> Karmencita: an object query language for .NET
> ...
> // initialize the data source
> // (in this case a Stack of Customers)
> Stack<Customer> customers = .....

customers = ...

> // initialize Karmencita with
> // the type of object to be queries
> ObjectQuery<Customer> oq =
>          new ObjectQuery<Customer>();
>
> // write the query
> string query = "Name = [Thor the Mighty]" +
>               " and IsMale = true and BirthDate" +
>               " < [1,1,1910]";

oq = proc {|cust| cust.name == "Thor the Mighty" &&
                  cust.male? && cust.birth_date < Date.new(1910) }

> //run the query
> Customer[] processes = (Customer[]) oq.Select(customers, query);

processes = customers.select(&oq)

> I have no idea about when and how can be it useful, but it can be
> intersting
> to do the trick for Ruby, ha?

It's already there!

Cheers,
Dave
Victor S. (Guest)
on 2006-03-25 09:25
(Received via mailing list)
>
> oq = proc {|cust| cust.name == "Thor the Mighty" &&
>
> It's already there!
>

Hmmm... Really :) I'm not an idiot, usually.

I must say, Ruby solution seems to be much prettier and "in a spirit of
a
languages", yes?

Victor.
Robert K. (Guest)
on 2006-03-25 12:09
(Received via mailing list)
Victor S. wrote:
>>> // initialize Karmencita with
>>
> Hmmm... Really :) I'm not an idiot, usually.
>
> I must say, Ruby solution seems to be much prettier and "in a spirit of a
> languages", yes?

The longer I use Ruby the more apparent it seems to me that lambdas /
procs / blocks are one of the core features - if not *the* core feature
- that set it apart from P* languages and make these things so easy and
well looking (= easy to read and understand).

Kind regards

	robert
James G. (Guest)
on 2006-03-25 18:26
(Received via mailing list)
On Mar 25, 2006, at 4:08 AM, Robert K. wrote:

> The longer I use Ruby the more apparent it seems to me that
> lambdas / procs / blocks are one of the core features - if not
> *the* core feature - that set it apart from P* languages and make
> these things so easy and well looking (= easy to read and understand).

I so agree.  When I first came to Ruby, blocks were probably my
biggest stumbling block.  I got them down just enough not to think
they were weird every time I used one, but then didn't pay much
attention to them.  Much later, when I wanted to move down the path
of enlightenment, I found myself back at blocks.  I really believe
they are the key to great Ruby.

James Edward G. II
This topic is locked and can not be replied to.