= Epoxy - bind data to queries for any query language. Let me hit ya with some science! # numbered binds ep = Epoxy.new("select * from foo where bar=?") binds = %W[foo] bound_query = ep.quote { |x| "'" + binds[x] + "'" } "select * from foo where bar='foo'" # named binds binds = { :name => 'Lee', :age => 132 } ep = Epoxy.new("select * from people where name=?name and age=?age") bound_query = ep.quote(binds) { |x| "'#{binds[x]}'" } "select * from people where name='Lee' and age='132'" # mix them! binds = { 0 => "Age", :name => 'Lee' } ep = Epoxy.new("select * from people where name=?name and age=?") bound_query = ep.quote(binds) { |x| "'#{binds[x]}'" } "select * from people where name='Lee' and age='Age'" Epoxy handles: * ?<name> for named binds * ? for numbered binds * ?? for a *real* question mark * '?' for a *real* question mark * comments, weird quoting styles (look at the "holy shit" test for examples) * not telling you how to quote your data. This solution works for any query language and any database.
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright © 2010 Erik Hollensbe. See LICENSE for details.