Sha256: 8a37bd5c19e86b556ab89ece9978dc63bf045c132d75532dc2f580945f56d7b5

Contents?: true

Size: 734 Bytes

Versions: 19

Compression:

Stored size: 734 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)
      case
      when type == Document::Enum
        AttributeInitializer::Enum
      when type && type.included_modules.include?(::ActiveModel::Model)
        AttributeInitializer::ActiveModel
      else
        AttributeInitializer::Base
      end
    end

    private_class_method :build_class
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
renalware-core-2.0.37 lib/document/attribute_initializer.rb
renalware-core-2.0.36 lib/document/attribute_initializer.rb
renalware-core-2.0.35 lib/document/attribute_initializer.rb
renalware-core-2.0.34 lib/document/attribute_initializer.rb
renalware-core-2.0.33 lib/document/attribute_initializer.rb
renalware-core-2.0.32 lib/document/attribute_initializer.rb
renalware-core-2.0.31 lib/document/attribute_initializer.rb
renalware-core-2.0.30 lib/document/attribute_initializer.rb
renalware-core-2.0.28 lib/document/attribute_initializer.rb
renalware-core-2.0.27 lib/document/attribute_initializer.rb
renalware-core-2.0.26 lib/document/attribute_initializer.rb
renalware-core-2.0.25 lib/document/attribute_initializer.rb
renalware-core-2.0.24 lib/document/attribute_initializer.rb
renalware-core-2.0.23 lib/document/attribute_initializer.rb
renalware-core-2.0.22 lib/document/attribute_initializer.rb
renalware-core-2.0.21 lib/document/attribute_initializer.rb
renalware-core-2.0.20 lib/document/attribute_initializer.rb
renalware-core-2.0.18 lib/document/attribute_initializer.rb
renalware-core-2.0.17 lib/document/attribute_initializer.rb