Sha256: ee1899a15207fb358223c71c35a48ec1c0223587393b9b6c1e9fb64439181079

Contents?: true

Size: 671 Bytes

Versions: 6

Compression:

Stored size: 671 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::Class::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

6 entries across 6 versions & 1 rubygems

Version Path
strict-1.5.0 lib/strict/reader/module.rb
strict-1.4.0 lib/strict/reader/module.rb
strict-1.3.1 lib/strict/reader/module.rb
strict-1.3.0 lib/strict/reader/module.rb
strict-1.2.0 lib/strict/reader/module.rb
strict-1.1.0 lib/strict/reader/module.rb