Project

mastar

0.0
No commit activity in last 3 years
No release in over 3 years
MASTer table on Active Record
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

>= 3.2.0
 Project Readme

Mastar

Build Status Coverage Status

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

  1. Call include Mastar in your ActiveRecord classes.
  2. 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
  1. 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]
  2. Judge method by key. (ex. City.first.country.jp?)
  3. .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.
  4. .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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request