Sha256: 8440f740f637e7956cbfb56d62511c261e817bcadedb0e85883062adb34448db

Contents?: true

Size: 676 Bytes

Versions: 1

Compression:

Stored size: 676 Bytes

Contents

# frozen_string_literal: true

module Strict
  module Reader
    class Module < ::Module
      attr_reader :configuration

      def initialize(configuration)
        super()

        @configuration = configuration
        const_set(Strict::Attributes::Configured::CONSTANT, configuration)
        configuration.attributes.each do |attribute|
          module_eval(
            "def #{attribute.name} = #{attribute.instance_variable}", # def name = @instance_variable
            __FILE__,
            __LINE__ - 2
          )
        end
      end

      def inspect
        "#<#{self.class} (#{configuration.attributes.map(&:name).join(', ')})>"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
strict-1.0.0 lib/strict/reader/module.rb