Sha256: 545647ed852688bd226a9cae9c90dc0ebc2e45642fe9e5bdedf9db462f89fb6f

Contents?: true

Size: 617 Bytes

Versions: 1

Compression:

Stored size: 617 Bytes

Contents

module DryStructGenerator
  module Config
    module Configuration
      def configuration
        yield self
      end

      def define_setting(name, default = nil)
        class_variable_set("@@#{name}", default)

        define_class_method "#{name}=" do |value|
          class_variable_set("@@#{name}", value)
        end

        define_class_method name do
          class_variable_get("@@#{name}")
        end
      end

      private

      def define_class_method(name, &block)
        (class << self; self; end).instance_eval do
          define_method name, &block
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dry_struct_generator-0.1.0 lib/dry_struct_generator/config/configuration.rb