class Pretentious::LazyTrigger
Attributes
options[RW]
target_class[RW]
targets[RW]
Public Class Methods
clear()
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 102 def clear @instances = [] end
collect_artifacts()
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 92 def collect_artifacts artifacts = [] @instances.each do |instance| instance.targets.values.each do |target| artifacts << target.stand_in_klass end end artifacts end
collect_targets()
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 82 def collect_targets artifacts = [] @instances.each do |instance| instance.targets.values.each do |target| artifacts << target end end artifacts end
generate_for_class(generator_class)
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 53 def generate_for_class(generator_class) all_results = {} Pretentious::LazyTrigger.collect_targets.each do |target| standin_klass = target.stand_in_klass klass = target.original_klass puts "generate for #{klass}" generator = generator_class.new generator.begin_spec(klass) generator.body(standin_klass._instances) unless standin_klass._instances.nil? generator.end_spec result = all_results[klass] all_results[klass] = [] if result.nil? result_output = generator.output.is_a?(String) ? generator.output.chomp : generator.output all_results[klass] = { output: result_output, generator: generator.class } end all_results end
lookup(class_name)
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 74 def lookup(class_name) @instances ||= [] @instances.each do |instance| return instance if instance.match(class_name) end nil end
new(target_class, options = {})
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 20 def initialize(target_class, options = {}) @target_class = target_class @options = options @targets = {} Pretentious::LazyTrigger.register_instance(self) end
register_instance(instance)
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 106 def register_instance(instance) @instances ||= [] @instances << instance unless @instances.include? instance end
unregister_instance(instance)
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 111 def unregister_instance(instance) @instances.delete(instance) end
Public Instance Methods
disable!()
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 27 def disable! Pretentious::LazyTrigger.unregister_instance(self) end
match(value)
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 42 def match(value) if @target_class.is_a? Regexp @target_class.match(value) elsif @target_class.is_a? String @target_class == value else @target_class.to_s == value end end
register_class(module_space, klass, last_part, stand_in_class)
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 37 def register_class(module_space, klass, last_part, stand_in_class) target = Pretentious::LazyTrigger::Target.new(module_space, klass, last_part, stand_in_class) @targets[target.stand_in_klass] = target unless @targets.include? target.stand_in_klass end
restore()
click to toggle source
# File lib/pretentious/lazy_trigger.rb, line 31 def restore @targets.each do |_stand_in_klass, target| Pretentious::Generator.restore_class target.module_space, target.original_klass, target.name end end