Sha256: 8c5bd1fe047785f4afd7fbb3a0a15133875c142bd8ddb2135f8535ccb2def75f
Contents?: true
Size: 641 Bytes
Versions: 3
Compression:
Stored size: 641 Bytes
Contents
module ROM # @api private class ReaderBuilder attr_reader :relations, :readers # @api private def initialize(relations) @relations = relations @readers = {} end # @api private def call(name, options = {}, &block) parent = relations[options.fetch(:parent) { name }] builder = MapperBuilder.new(name, parent, options) builder.instance_exec(&block) mapper = builder.call mappers = options[:parent] ? readers.fetch(parent.name).mappers : {} mappers[name] = mapper readers[name] = Reader.new(name, parent, mappers) unless options[:parent] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rom-0.4.0 | lib/rom/reader_builder.rb |
rom-0.3.1 | lib/rom/reader_builder.rb |
rom-0.3.0 | lib/rom/reader_builder.rb |