RubyGems Navigation menu

has_enumeration 0.2.1

Extends ActiveRecord with the has_enumeration method allowing a symbolic enumeration to be stored in an ActiveRecord attribute. The enumeration is specified as a mapping between symbols and their underlying representation in the database. Predicates are provided for each symbol in the enumeration and the symbols may be used in finder methods. For example: class TrafficLight < ActiveRecord::Base # Implicit mapping when the attribute is a string storing the string # version of the symbol: has_enumeration :color, [:red, :yellow, :green] # Explicit mappings between symbols and underlying values are also # supported. E.g.: # has_enumeration :color, :red => 1, :yellow => 2, :green => 3 end tl = TrafficLight.new tl.color = :red tl.color.value # ==> :red tl.color.red? # ==> true tl.color.yellow? # ==> false TrafficLight.all(:conditions => {:color => :red}) # ==> all red traffic lights When using ActiveRecord 3, the symbolic values can also be used when interacting with the underlying Arel attributes for a model: attr = TrafficLight.arel_table[:color] TrafficLight.where(attr.in([:yellow, :green])) # ==> yellow or green lights has_enumeration has been tested with: Rubies: Ruby 1.8.7, Ruby 1.9.2, and JRuby 1.5.1. ActiveRecord: 2.3.8 and 3.0.0.rc

Gemfile:
= Copy to clipboard Copied!

install:
=

Versions:

  1. 1.0.2 - November 19, 2010 (12.5 KB)
  2. 1.0.1 - November 18, 2010 (12.5 KB)
  3. 1.0.0 - November 08, 2010 (12 KB)
  4. 0.5.0 - October 06, 2010 (9.5 KB)
  5. 0.4.0 - September 02, 2010 (9.5 KB)
  6. 0.2.1 - August 19, 2010 (9 KB)
Show all versions (11 total)

Owners:

Authors:

  • Greg Spurrier

SHA 256 checksum:

0fb6166c9aaa5bcd96a42b8a2aa9eb1e45c6e6da8c330ddfeeb2fceb44a2a82d

Total downloads 40,681

For this version 3,682

Licenses:

N/A

Required Ruby Version: None

Links: