Class: Wallaby::Map

Inherits:
Object
  • Object
show all
Defined in:
lib/services/wallaby/map.rb,
lib/services/wallaby/map/mode_mapper.rb,
lib/services/wallaby/map/model_class_mapper.rb,
lib/services/wallaby/map/model_class_collector.rb

Overview

Global storage of all the maps for model classes

Defined Under Namespace

Classes: ModeMapper, ModelClassCollector, ModelClassMapper

Class Method Summary collapse

Class Method Details

.clearObject

Clear all the class variables to nil



83
84
85
86
87
88
# File 'lib/services/wallaby/map.rb', line 83

def self.clear
  @mode_map, @model_classes, @controller_map, @model_decorator_map,
  @resource_decorator_map, @servicer_map, @service_provider_map,
  @paginator_map, @pagination_provider_map, @model_class_map,
  @resources_name_map = []
end

.controller_map(model_class) ⇒ Object

{ model => controller }



16
17
18
19
# File 'lib/services/wallaby/map.rb', line 16

def self.controller_map(model_class)
  @controller_map ||= ModelClassMapper.new(ResourcesController).map
  @controller_map[model_class] ||= ResourcesController
end

.mode_mapObject

{ model => mode }



5
6
7
# File 'lib/services/wallaby/map.rb', line 5

def self.mode_map
  @mode_map ||= ModeMapper.new(Mode.subclasses).map.freeze
end

.model_class_map(resources_name) ⇒ Object

{ resources name => model }



77
78
79
80
# File 'lib/services/wallaby/map.rb', line 77

def self.model_class_map(resources_name)
  @model_class_map ||= {}
  @model_class_map[resources_name] ||= Utils.to_model_class resources_name
end

.model_classesObject

model classes


10
11
12
13
# File 'lib/services/wallaby/map.rb', line 10

def self.model_classes
  @model_classes ||=
    ModelClassCollector.new(::Wallaby.configuration).collect.freeze
end

.model_decorator_map(model_class) ⇒ Object

{ model => model decorator }



22
23
24
25
26
27
28
# File 'lib/services/wallaby/map.rb', line 22

def self.model_decorator_map(model_class)
  @model_decorator_map ||= {}
  @model_decorator_map[model_class] ||= begin
    mode = mode_map[model_class]
    mode.model_decorator.new model_class if mode
  end
end

.pagination_provider_map(model_class) ⇒ Object

{ model => pagination_provider }



64
65
66
67
68
# File 'lib/services/wallaby/map.rb', line 64

def self.pagination_provider_map(model_class)
  @pagination_provider_map ||= {}
  @pagination_provider_map[model_class] ||=
    mode_map[model_class].try(:model_pagination_provider)
end

.paginator_map(model_class) ⇒ Object

{ model => paginator }



56
57
58
59
60
61
# File 'lib/services/wallaby/map.rb', line 56

def self.paginator_map(model_class)
  @paginator_map ||= ModelClassMapper.new(ResourcePaginator).map
  @paginator_map[model_class] ||= begin
    ResourcePaginator if mode_map[model_class]
  end
end

.resource_decorator_map(model_class) ⇒ Object

{ model => resource decorator }



31
32
33
34
35
36
# File 'lib/services/wallaby/map.rb', line 31

def self.resource_decorator_map(model_class)
  @resource_decorator_map ||= ModelClassMapper.new(ResourceDecorator).map
  @resource_decorator_map[model_class] ||= begin
    ResourceDecorator if mode_map[model_class]
  end
end

.resources_name_map(model_class) ⇒ Object

{ model => resources name }



71
72
73
74
# File 'lib/services/wallaby/map.rb', line 71

def self.resources_name_map(model_class)
  @resources_name_map ||= {}
  @resources_name_map[model_class] ||= Utils.to_resources_name model_class
end

.service_provider_map(model_class) ⇒ Object

{ model => service_provider }



47
48
49
50
51
52
53
# File 'lib/services/wallaby/map.rb', line 47

def self.service_provider_map(model_class)
  @service_provider_map ||= {}
  @service_provider_map[model_class] ||= begin
    mode = mode_map[model_class]
    mode.model_service_provider.new model_class if mode
  end
end

.servicer_map(model_class) ⇒ Object

{ model => servicer }



39
40
41
42
43
44
# File 'lib/services/wallaby/map.rb', line 39

def self.servicer_map(model_class)
  @servicer_map ||= ModelClassMapper.new(ModelServicer).map
  @servicer_map[model_class] ||= begin
    ModelServicer if mode_map[model_class]
  end
end