Class: Reality::Facets::TargetManager

Inherits:
Object
  • Object
show all
Defined in:
lib/reality/facets/target_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(container) ⇒ TargetManager

Returns a new instance of TargetManager.



76
77
78
79
# File 'lib/reality/facets/target_manager.rb', line 76

def initialize(container)
  @container = container
  @locked = false
end

Instance Attribute Details

#containerObject (readonly)

Returns the value of attribute container.



74
75
76
# File 'lib/reality/facets/target_manager.rb', line 74

def container
  @container
end

Instance Method Details

#apply_extension(model) ⇒ Object



110
111
112
113
# File 'lib/reality/facets/target_manager.rb', line 110

def apply_extension(model)
  container.lock!
  self.target_by_model_class(model.class).apply_extension_to(model)
end

#is_target_valid?(key) ⇒ Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/reality/facets/target_manager.rb', line 81

def is_target_valid?(key)
  target_map.keys.include?(key)
end

#lock!Object



123
124
125
# File 'lib/reality/facets/target_manager.rb', line 123

def lock!
  @locked = true
end

#locked?Boolean

Returns:

  • (Boolean)


127
128
129
# File 'lib/reality/facets/target_manager.rb', line 127

def locked?
  !!@locked
end

#reset_targetsObject



131
132
133
134
# File 'lib/reality/facets/target_manager.rb', line 131

def reset_targets
  target_map.clear
  @locked = false
end

#target(model_class, key, container_key = nil, options = {}) ⇒ Object



115
116
117
# File 'lib/reality/facets/target_manager.rb', line 115

def target(model_class, key, container_key = nil, options = {})
  Target.new(self, model_class, key, container_key, options)
end

#target_by_key(key) ⇒ Object



97
98
99
100
101
# File 'lib/reality/facets/target_manager.rb', line 97

def target_by_key(key)
  target = target_map[key.to_sym]
  Reality::Facets.error("Can not find target with key '#{key}'") unless target
  target
end

#target_by_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/reality/facets/target_manager.rb', line 93

def target_by_key?(key)
  !!target_map[key]
end

#target_by_model_class(model_class) ⇒ Object



103
104
105
106
107
108
# File 'lib/reality/facets/target_manager.rb', line 103

def target_by_model_class(model_class)
  target_map.each do |key, target|
    return target if target.model_class == model_class
  end
  Reality::Facets.error("Can not find target with model class '#{model_class.name}'")
end

#target_keysObject



85
86
87
# File 'lib/reality/facets/target_manager.rb', line 85

def target_keys
  target_map.keys
end

#targetsObject



89
90
91
# File 'lib/reality/facets/target_manager.rb', line 89

def targets
  target_map.values
end

#targets_by_container(container_key) ⇒ Object



119
120
121
# File 'lib/reality/facets/target_manager.rb', line 119

def targets_by_container(container_key)
  target_map.values.select { |target| target.container_key == container_key }
end