Mastar
Add some features to master table class on ActiveRecord.
Installation
Add this line to your application's Gemfile:
gem 'mastar'
And then execute:
$ bundle
Or install it yourself as:
$ gem install mastar
Usage
- Call
include Mastar
in your ActiveRecord classes. - Set key column name by way of
mastar.key
method.
Feature
Ruby code
class Country < ActiveRecord::Base
include Mastar
mastar.key :code
end
class City < ActiveRecord::Base
belongs_to :country
end
Countries table data
id | name | code |
---|---|---|
1 | USA | us |
2 | Japan | jp |
- Direct access by key method.
-
Country.jp
returns#<Country id: 2, name: "Japan", code: "jp", ...>
-
Country.jp(:name)
returns"Japan"
-
Country.jp(:code, :name, :id)
returns["jp", "Japan", 2]
-
- Judge method by key. (ex.
City.first.country.jp?
) -
.get
method like as.find
,.get
preferentially returns cached object.-
Country.find
returns from DB. -
Country.get
returns from inner cache when already cached. - When not cached,
Country.get
returns from DB, and cache it.
-
-
.pairs
method for writing select element shortly in Rails.
# Normal
f.select :country_id, Country.all.map { |c| [c.name, c.id] }
f.collection_select :country_id, Country.all, :id, :name
# In using Mastar
f.select :country_id, Country.pairs
Supported versions
- Ruby: 1.9.3, 2.0.0, 2.1.0
- ActiveRecord: 3.2.x, 4.0.x
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request