Sha256: 5f4f53409efbb422302e645052b18929a69053b4ea15c97773cf7663955ed246

Contents?: true

Size: 649 Bytes

Versions: 4

Compression:

Stored size: 649 Bytes

Contents

# frozen_string_literal: true

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

4 entries across 4 versions & 1 rubygems

Version Path
dry_struct_generator-0.3.2 lib/dry_struct_generator/config/configuration.rb
dry_struct_generator-0.3.1 lib/dry_struct_generator/config/configuration.rb
dry_struct_generator-0.3.0 lib/dry_struct_generator/config/configuration.rb
dry_struct_generator-0.2.0 lib/dry_struct_generator/config/configuration.rb