Tren
Tren lets you use your SQL as a first class method in your Crystal code.
Installation
Add this to your application's shard.yml
:
dependencies:
tren:
github: sdogruyol/tren
Usage
Create a simple SQL file. The first line must be -- name: your_method_name(args)
.
-- name: get_users(name : String, surname : String)
SELECT * FROM users WHERE name = '{{ name }}' AND surname = '{{ surname }}'
Require Tren and load your SQL file. It's going to create a first class method to your SQL.
require "tren"
Tren.load("/path/to/your/file.sql")
Overloading
-- name: get_users(name : String, surname : String)
SELECT * FROM users WHERE name = '{{ name }}' AND surname = '{{ surname }}'
-- name: get_users(name : String, age : Int32)
SELECT * FROM users WHERE name = '{{ name }}' AND age = {{ age }}
Roadmap
- Prevent SQL Injection.
- One file, multiple queries.
Contributing
- Fork it ( https://github.com/sdogruyol/tren/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
Built on a TREN from Ankara to Istanbul.