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:
=

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:

=

Total downloads 41,558

For this version 3,767

Version Released:

Licenses:

N/A

Required Ruby Version: None

Links: