Thanks to a discussion with Pratik on #rails-contrib today, I decided
to roll this into a gem instead:

http://github.com/ernie/meta_where

Consider the request for feedback on the patch revoked. :)

Thanks!

On Apr 12, 5:08 pm, Ernie Miller <[email protected]> wrote:
> I could use some eyes 
> onhttps://rails.lighthouseapp.com/projects/8994/tickets/4368
> if anyone has the time.
>
> Summary of the change:
>
> Similar to PredicateBuilder's existing support for 'table.column' =>
> 'value', this patch enables 'column#method' => 'value'.
>
> For instance, Article.where('title#matches' => 'Hello%') generates SQL
> like:
>
> SELECT "articles".* FROM "articles" WHERE ("articles"."title" LIKE
> 'Hello%')
>
> Among other things, this change would prevent it from being necessary
> to resort to SQL strings in order to achieve something as simple as a
> a "published_at is not null" where clause.
>
>   Article.where('published_at#noteq' => nil).to_sql
>   SELECT "articles".* FROM "articles" WHERE ("articles"."published_at"
> IS NOT NULL)
>
> It plays nicely with scopes:
>
>   scope :published, where('published_at#noteq' => nil)
>
> In general, I don't see a whole lot of downsides to this... One thing
> that could perhaps be improved is the elimination of quote
> requirements around hash keys by method_missing on Symbol
> (:table.column), and an operator for method selection
> -- :column/:method maybe? I don't know, that syntax looks a bit goofy,
> too. I chose the # of its relationship to Object#method. Most likely
> for the same reasons the new routing strings were chosen.
>
> Thanks,
>    Ernie

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to