Sha256: bf747874d4c05ac562042b8191479effff65b40d7ab1e62807ccd25ad4451254

Contents?: true

Size: 635 Bytes

Versions: 1

Compression:

Stored size: 635 Bytes

Contents

# encoding: utf-8
require 'enum_attr_base'
require "active_record"

module EnumAttr
  module MixinForActiveRecord
    include EnumAttr::Mixin

    def enum_attr(attr, enums)
      super(attr, enums)
      enums.each do |enum|
        scope "#{attr}_#{enum[2]}".to_sym, where("#{attr}=#{enum[1]}")
      end # end: enums.each

      self.class_eval(%Q{
validates_inclusion_of attr, :in => enums.map{|e| e[1].to_i}, :allow_nil => true
def attr
  read_attribute(attr.to_sym)
end

def attr=(value)
  write_attribute(attr.to_sym, value)
end
})

    end # end def
  end
end


::ActiveRecord::Base.send :extend, EnumAttr::MixinForActiveRecord

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
enum_attr-1.0.1 lib/enum_attr_for_active_record.rb