Sha256: 50f50f3fc5d73d7b38c7ca21fb303b20ea3104901e323f9afc4768f667198e5d

Contents?: true

Size: 1.07 KB

Versions: 117

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/common_constructor/instance_initialize'
require 'eac_ruby_utils/common_constructor/super_args'

module EacRubyUtils
  class CommonConstructor
    class ClassInitialize
      attr_reader :common_constructor, :klass

      def initialize(common_constructor, klass)
        @common_constructor = common_constructor
        @klass = klass
      end

      def define_initialize_callbacks
        klass.include(::ActiveSupport::Callbacks)
        klass.define_callbacks :initialize
      end

      def define_initialize_method
        class_initialize = self
        klass.send(:define_method, :initialize) do |*args, &block|
          ::EacRubyUtils::CommonConstructor::InstanceInitialize.new(
            class_initialize.common_constructor, args, self, block
          ).perform
          super(*::EacRubyUtils::CommonConstructor::SuperArgs.new(
            class_initialize, args, self
          ).result)
        end
      end

      def perform
        define_initialize_callbacks
        define_initialize_method
      end
    end
  end
end

Version data entries

117 entries across 117 versions & 2 rubygems

Version Path
eac_ruby_utils-0.124.0 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.97.2 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.123.0 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.121.0 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.120.0 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.76.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.76.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.75.2 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.119.2 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.75.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.75.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.119.1 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.74.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.74.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.73.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.119.0 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.72.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.118.1 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_ruby_utils-0.118.0 lib/eac_ruby_utils/common_constructor/class_initialize.rb
eac_tools-0.70.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb