Sha256: 3be3d042e67c18976a5ec7ffc757ff98e9a72312449c95cd5aad68774b63a5a3

Contents?: true

Size: 601 Bytes

Versions: 1

Compression:

Stored size: 601 Bytes

Contents

# encoding: utf-8
module EnumField
  module DefineEnum
    def self.included(base)
      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

        EnumField::Builder::METHODS.each do |method|
          define_singleton_method method do |*args, &block|
            @enum_builder.send(method, *args, &block)
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
galetahub-enum_field-0.3.0 lib/enum_field/define_enum.rb