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 |