Sha256: 070b976676a70578ab8b2109efd4e107b3a62edf4dcc71ed3df3db644e0611ad

Contents?: true

Size: 739 Bytes

Versions: 2

Compression:

Stored size: 739 Bytes

Contents

# frozen_string_literal: true

module DevSuite
  module Utils
    module Construct
      module Component
        module Initializer
          extend self

          def define_constants(base)
            structure_module = ensure_structure_module(base)
            define_structure_component(structure_module)
          end

          private

          def ensure_structure_module(base)
            base.const_defined?(:Structure) ? base.const_get(:Structure) : base.const_set(:Structure, Module.new)
          end

          def define_structure_component(structure_module)
            structure_module.const_set(:Component, Base) unless structure_module.const_defined?(:Component)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dev_suite-0.2.7 lib/dev_suite/utils/construct/component/initializer.rb
dev_suite-0.2.6 lib/dev_suite/utils/construct/component/initializer.rb