Sha256: e6779ed39e36a5b7d105996a6bc8dc7135910ef31a40828c89e635615d76e6ef

Contents?: true

Size: 740 Bytes

Versions: 9

Compression:

Stored size: 740 Bytes

Contents

# encoding: utf-8
module EnumField
  module DefineEnum
    def self.included(base)
      base.send :include, InstanceMethods
      base.send :extend,  ClassMethods
    end
      
    module ClassMethods
      def self.extended(base)
        base.class_eval do
          attr_reader :id
        end
      end

      def define_enum(&block)
        @enum_builder ||= EnumField::Builder.new(self)
        yield @enum_builder

        [:all, :names, :find_by_id, :find, :first, :last].each do |method|
          instance_eval <<-END
            def #{method}(*args, &block)
              @enum_builder.send(:#{method}, *args, &block)
            end
          END
        end
      end
    end
    
    module InstanceMethods
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
galetahub-enum_field-0.2.2 lib/enum_field/define_enum.rb
galetahub-enum_field-0.2.1 lib/enum_field/define_enum.rb
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/galetahub-enum_field-0.2.0/lib/enum_field/define_enum.rb
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/galetahub-enum_field-0.2.0/lib/enum_field/define_enum.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/galetahub-enum_field-0.2.0/lib/enum_field/define_enum.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/galetahub-enum_field-0.2.0/lib/enum_field/define_enum.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/galetahub-enum_field-0.2.0/lib/enum_field/define_enum.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/galetahub-enum_field-0.2.0/lib/enum_field/define_enum.rb
galetahub-enum_field-0.2.0 lib/enum_field/define_enum.rb