Sha256: 7c72ea4f5766c5e54ce3f9030e52a3b27780e205c031000012bf21efb4821ea6

Contents?: true

Size: 716 Bytes

Versions: 123

Compression:

Stored size: 716 Bytes

Contents

# frozen_string_literal: true

require "document/attribute_initializer/base"
require "document/attribute_initializer/active_model"
require "document/attribute_initializer/enum"

module Document
  module AttributeInitializer
    def self.determine_initializer(klass, name, type, options)
      initializer_class = build_class(type)
      initializer_class.new(klass, name, type, options)
    end

    def self.build_class(type)
      if type == Document::Enum
        AttributeInitializer::Enum
      elsif type&.included_modules&.include?(::ActiveModel::Model)
        AttributeInitializer::ActiveModel
      else
        AttributeInitializer::Base
      end
    end

    private_class_method :build_class
  end
end

Version data entries

123 entries across 123 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/documents/document/attribute_initializer.rb
renalware-core-2.1.0 app/documents/document/attribute_initializer.rb
renalware-core-2.0.167 app/documents/document/attribute_initializer.rb
renalware-core-2.0.166 app/documents/document/attribute_initializer.rb
renalware-core-2.0.165 app/documents/document/attribute_initializer.rb
renalware-core-2.0.164 app/documents/document/attribute_initializer.rb
renalware-core-2.0.163 app/documents/document/attribute_initializer.rb
renalware-core-2.0.162 app/documents/document/attribute_initializer.rb
renalware-core-2.0.161 app/documents/document/attribute_initializer.rb
renalware-core-2.0.160 app/documents/document/attribute_initializer.rb
renalware-core-2.0.159 lib/document/attribute_initializer.rb
renalware-core-2.0.158 lib/document/attribute_initializer.rb
renalware-core-2.0.157 lib/document/attribute_initializer.rb
renalware-core-2.0.156 lib/document/attribute_initializer.rb
renalware-core-2.0.155 lib/document/attribute_initializer.rb
renalware-core-2.0.153 lib/document/attribute_initializer.rb
renalware-core-2.0.152 lib/document/attribute_initializer.rb
renalware-core-2.0.151 lib/document/attribute_initializer.rb
renalware-core-2.0.149 lib/document/attribute_initializer.rb
renalware-core-2.0.148 lib/document/attribute_initializer.rb