Sha256: 4037d30534da2073558911c7c2b60b87bc9d1237e2d7c344a173016d0963a10b

Contents?: true

Size: 694 Bytes

Versions: 7

Compression:

Stored size: 694 Bytes

Contents

# frozen_string_literal: true

module SmartCore::Initializer::Attribute::ValueFinalizer
  require_relative 'value_finalizer/lambda'
  require_relative 'value_finalizer/method'

  class << self
    # @param finalize [Proc, String, Symbol]
    # @return [SmartCore::Initializer::Attribute::ValueFinalizer::Lambda]
    # @return [SmartCore::Initializer::Attribute::ValueFinalizer::Method]
    #
    # @api private
    # @since 0.5.0
    def build(finalize)
      case finalize
      when Symbol, String
        Method.new(finalize)
      when Proc
        Lambda.new(finalize)
      end
      # NOTE: other variants are impossible (by SmartCore::Initializer::Attribute::Builder)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
smart_core-0.8.1 lib/smart_core/initializer/attribute/value_finalizer.rb
smart_core-0.8.0 lib/smart_core/initializer/attribute/value_finalizer.rb
smart_core-0.7.0 lib/smart_core/initializer/attribute/value_finalizer.rb
smart_core-0.6.0 lib/smart_core/initializer/attribute/value_finalizer.rb
smart_core-0.5.2 lib/smart_core/initializer/attribute/value_finalizer.rb
smart_core-0.5.1 lib/smart_core/initializer/attribute/value_finalizer.rb
smart_core-0.5.0 lib/smart_core/initializer/attribute/value_finalizer.rb