Sha256: 54b2beefd2e00c6640cbb434f7852e874cf11f9999497d6bd41b8b157de5ed4b

Contents?: true

Size: 1.04 KB

Versions: 35

Compression:

Stored size: 1.04 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 = {}
      @strategies = strategies
    }

    klass.register(:bool, Mapper.build(strategies, ReeMapper::Bool.new))
    klass.register(:date_time, Mapper.build(strategies, ReeMapper::DateTime.new))
    klass.register(:time, Mapper.build(strategies, ReeMapper::Time.new))
    klass.register(:date, Mapper.build(strategies, ReeMapper::Date.new))
    klass.register(:float, Mapper.build(strategies, ReeMapper::Float.new))
    klass.register(:integer, Mapper.build(strategies, ReeMapper::Integer.new))
    klass.register(:string, Mapper.build(strategies, ReeMapper::String.new))

    klass
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
ree_lib-1.0.35 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.34 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.33 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.32 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.31 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.30 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.29 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.28 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.27 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.26 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.24 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.23 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.22 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.21 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.20 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.19 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.18 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.17 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.16 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb
ree_lib-1.0.15 lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb