Class: Perpetuity::MapperRegistry
- Inherits:
-
Object
- Object
- Perpetuity::MapperRegistry
- Includes:
- Enumerable
- Defined in:
- lib/perpetuity/mapper_registry.rb
Instance Method Summary collapse
- #[](klass) ⇒ Object
- #[]=(klass, mapper) ⇒ Object
- #check_rails_app_for_mappers ⇒ Object
- #each(&block) ⇒ Object
- #has_mapper?(klass) ⇒ Boolean
-
#initialize ⇒ MapperRegistry
constructor
A new instance of MapperRegistry.
- #load_mappers ⇒ Object
Constructor Details
#initialize ⇒ MapperRegistry
Returns a new instance of MapperRegistry.
5 6 7 |
# File 'lib/perpetuity/mapper_registry.rb', line 5 def initialize @mappers = Hash.new end |
Instance Method Details
#[](klass) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/perpetuity/mapper_registry.rb', line 13 def [] klass mapper_class = @mappers.fetch(klass) do load_mappers unless @mappers.has_key? klass raise KeyError, "No mapper for #{klass}" end @mappers[klass] end mapper_class.new(self) end |
#[]=(klass, mapper) ⇒ Object
25 26 27 |
# File 'lib/perpetuity/mapper_registry.rb', line 25 def []= klass, mapper @mappers[klass] = mapper end |
#check_rails_app_for_mappers ⇒ Object
37 38 39 |
# File 'lib/perpetuity/mapper_registry.rb', line 37 def check_rails_app_for_mappers Dir['app/**/*_mapper.rb'] end |
#each(&block) ⇒ Object
29 30 31 |
# File 'lib/perpetuity/mapper_registry.rb', line 29 def each &block @mappers.each(&block) end |
#has_mapper?(klass) ⇒ Boolean
9 10 11 |
# File 'lib/perpetuity/mapper_registry.rb', line 9 def has_mapper? klass @mappers.has_key? klass end |
#load_mappers ⇒ Object
33 34 35 |
# File 'lib/perpetuity/mapper_registry.rb', line 33 def load_mappers check_rails_app_for_mappers.each(&method(:load)) end |