<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Friends-<DIV><BR class="khtml-block-placeholder"></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>I wanted to let people know that there is a new experimental release of this plugin. I would love feedback on syntax and features. There is now a full test suite with fixtures that covers all the available syntax. Look at the test suite for more syntax possibilities. There have been many additions since my last release. Fabien Atelier has been working on this with me and has added a bunch of great code. </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>You can get it from here:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV> http://<A href="http://brainspl.at/opensvn.csie.org/ezra/rails/plugins/dev/ez_where/">http://brainspl.at/opensvn.csie.org/ezra/rails/plugins/dev/ez_where/</A> </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>This is a request for feedback. I want to solidify the api soon so suggestions are welcome.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Here's a snippet from the README:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">Welcome to the new improved ez_where plugin for rails. This plugin is meant</SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">to be used as a nice ruby like syntax for creating the :conditions part of an</SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">ActiveRecord::Base.find. We also add the ActiveRecord::Base.ez_find method.</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">This method takes a block to simplify single and multi table queries. There</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">is now support for nested sub conditions using a few different techniques. The</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">default boolean used is 'AND'. any takes a subcondition block and uses 'OR' </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">to join them together.</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10.9px/normal Courier; min-height: 13px; "><FONT class="Apple-style-span" color="#4D6170"><SPAN class="Apple-style-span" style="line-height: 20px;"><BR></SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">@articles = Article.ez_find(:all, :include => :author) do |article, author|</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">article.title =~ "%Foo Title%"</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">author.any do</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">name == 'Ezra'</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">name == 'Fab'</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">end</SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">end</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10.9px/normal Courier; min-height: 13px; "><FONT class="Apple-style-span" color="#4D6170"><SPAN class="Apple-style-span" style="line-height: 20px;"><BR></SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">This issue a find with these :conditions => ["article.title LIKE ? AND</SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">(authors.name = ? OR authors.name = ?)", "%Foo Title%", "Ezra", "Fab"]</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10.9px/normal Courier; min-height: 13px; "><FONT class="Apple-style-span" color="#4D6170"><SPAN class="Apple-style-span" style="line-height: 20px;"><BR></SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">Basically here is the breakdown of how we map ruby operators to SQL operators:</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10.9px/normal Courier; min-height: 13px; "><FONT class="Apple-style-span" color="#4D6170"><SPAN class="Apple-style-span" style="line-height: 20px;"><BR></SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">foo == 'bar' </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">#=> ["foo = ?", 'bar']</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">foo =~ '%bar'</SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">#=> ["foo LIKE ?", '%bar']</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-style-span" style="line-height: 20px;"><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">foo <=> (1..5) </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;"> </SPAN></FONT><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px; line-height: normal;">#=> ["foo BETWEEN ? AND ?", 1, 5]</SPAN></FONT></SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;">id === [1, 2, 3, 5, 8] #=> ["id IN(?)", [1, 2, 3, 5, 8]]</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#4D6170" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 10.9px;"><, >, >=, <= et all will just work like you expect.</SPAN></FONT></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>And here is a link to my blog with the entire README for your perusal:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><A href="http://brainspl.at/articles/2006/01/30/i-have-been-busy">http://brainspl.at/articles/2006/01/30/i-have-been-busy</A></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Cheers-<BR><DIV> <DIV>-Ezra Zygmuntowicz</DIV><DIV>WebMaster</DIV><DIV>Yakima Herald-Republic Newspaper</DIV><DIV><A href="mailto:ezra@yakima-herald.com">ezra@yakima-herald.com</A></DIV><DIV>509-577-7732</DIV> </DIV><BR></DIV></BODY></HTML>