class Perpetuity::MapperRegistry
Public Class Methods
new()
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 5 def initialize @mappers = Hash.new end
Public Instance Methods
[](klass)
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 13 def [] klass mapper_class(klass).new(self) end
[]=(klass, mapper)
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 32 def []= klass, mapper @mappers[klass] = mapper end
check_rails_app_for_mappers()
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 44 def check_rails_app_for_mappers Dir['app/**/*_mapper.rb'] end
each(&block)
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 36 def each &block @mappers.each(&block) end
has_mapper?(klass)
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 9 def has_mapper? klass @mappers.has_key? klass end
load_mappers()
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 40 def load_mappers check_rails_app_for_mappers.each(&method(:load)) end
mapper_class(klass)
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 22 def mapper_class klass @mappers.fetch(klass) do load_mappers unless @mappers.has_key? klass raise KeyError, "No mapper for #{klass}" end @mappers[klass] end end
mapper_for(klass, options={})
click to toggle source
# File lib/perpetuity/mapper_registry.rb, line 17 def mapper_for klass, options={} identity_map = options.fetch(:identity_map) { IdentityMap.new } mapper_class(klass).new(self, identity_map) end