Sha256: 781e1ed451ae7b022d5ea097c0d3fae7890bf4b2494e954e3aabd4bcb89e2f49

Contents?: true

Size: 660 Bytes

Versions: 3

Compression:

Stored size: 660 Bytes

Contents

module StateObjects
  class Base

    def initialize(model)
      @model = model               
    end

    def self.state_object_values(*opts)  # :nodoc:          
      unless opts.size == 3
        raise @model.to_s + "#state_object_values Must have 3 arguments: symbol, db_value, label.  For Example: state_object_values :red,'R','Dont Walk'"
      end
      
      class_eval <<-EOF
        def self.symbol
          '#{opts[0]}'.to_sym
        end
        def self.db_value
          '#{opts[1]}'
        end
        def self.label
          '#{opts[2]}'
        end
      EOF
    end

    protected 
      def model
        @model
      end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
state_objects-0.9.1 lib/state_objects/base.rb
state_objects-0.9.0 lib/state_objects/base.rb
state_objects-0.0.8 lib/state_objects/base.rb