Sha256: 11bc7c81ded7ce2f5482d377806e42892feb144525cd4cc28bfd6691e14ef69d

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

# Sakuramochi

Sakuramochi is a minimal active record extensions for Rails3.

## Installation

```ruby
gem 'sakuramochi', :git => 'git://github.com/mashiro/sakuramochi.git'
```

## Getting started

```ruby
User.where(:name_contains => 'ai')
# => "SELECT \"users\".* FROM \"users\"  WHERE (\"users\".\"name\" LIKE '%ai%')"

User.where(:name_contains_any => ['ru', 'ai'])
# => "SELECT \"users\".* FROM \"users\"  WHERE ((\"users\".\"name\" LIKE '%ru%' OR \"users\".\"name\" LIKE '%ai%'))"

User.where(:name_contains_all => ['ru', 'ai'])
# => "SELECT \"users\".* FROM \"users\"  WHERE ((\"users\".\"name\" LIKE '%ru%' AND \"users\".\"name\" LIKE '%ai%'))"
```

## Predicates

* contains
* starts_with, start_with
* ends_with, end_with
* in
* eq, equal, equals
* gt
* gte, gteq
* lt
* lte, lteq

## Configration

```ruby
Sakuramochi.configure do |config|
  # simple
  config.add :eq_amamiya,
    :arel_predicate => :eq,
    :converter => proc { |v| "amamiya #{v}" }

  # advanced
  config.add :surrounds_with, :surrounds_with_alias,
    :arel_predicate => :matches,
    :grouping => true,
    :expand => false,
    :converter => proc { |v| "#{v.first}%#{v.last}" },
    :validator => proc { |v| true || v.is_a?(Enumerable) && v.to_a.size == 2 }
end

User.where(:name_eq_amamiya => 'rizumu')
# => "SELECT \"users\".* FROM \"users\"  WHERE \"users\".\"name\" = 'amamiya rizumu'"

User.where(:name_surrounds_with => ["ama", "umu"])
# => "SELECT \"users\".* FROM \"users\"  WHERE (\"users\".\"name\" LIKE 'ama%umu')"
```

## Copyright

Copyright (c) 2011 mashiro

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sakuramochi-0.1.0 README.md