Sha256: 15439c7c06a2572009e5252d686fb84bb16f0a0dd14d67c554c5e3987ecc675d

Contents?: true

Size: 1.08 KB

Versions: 54

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

class ReeMapper::BuildMapperFactory
  include Ree::FnDSL

  fn :build_mapper_factory do
    link 'ree_mapper/mapper', -> { Mapper }
    link 'ree_mapper/mapper_factory', -> { MapperFactory }
    link 'ree_mapper/mapper_strategy', -> { MapperStrategy }
  end

  contract(ArrayOf[MapperStrategy] => SubclassOf[MapperFactory])
  def call(strategies:)
    klass = Class.new(ReeMapper::MapperFactory)

    klass.instance_eval {
      @types = {}
      @wrappers = {}
      @strategies = strategies
    }

    klass.register_type(:bool, ReeMapper::Bool.new)
    klass.register_type(:date_time, ReeMapper::DateTime.new)
    klass.register_type(:time, ReeMapper::Time.new)
    klass.register_type(:date, ReeMapper::Date.new)
    klass.register_type(:float, ReeMapper::Float.new)
    klass.register_type(:integer, ReeMapper::Integer.new)
    klass.register_type(:string, ReeMapper::String.new)
    klass.register_type(:any, ReeMapper::Any.new)
    klass.register_type(:rational, ReeMapper::Rational.new)

    klass.register_wrapper(:array, ReeMapper::Array)

    klass
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
ree_lib-1.1.1 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.1.0 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.124 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.123 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.122 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.121 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.120 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.119 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.118 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.117 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.116 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.115 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.114 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.113 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.112 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.111 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.110 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.109 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.108 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.107 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb