class Omnitest::Psychic::MagicTaskFactory
Constants
- TASK_PRIORITY
Attributes
hints[R]
known_tasks[R]
priority[R]
psychic[R]
tasks[R]
Public Class Methods
known_tasks()
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 33 def known_tasks @known_tasks ||= [] end
magic_env_var(var)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 29 def magic_env_var(var) magic_env_vars << var end
magic_env_vars()
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 25 def magic_env_vars @magic_env_vars ||= [] end
magic_file(pattern)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 21 def magic_file(pattern) # rubocop:disable Style/TrivialAccessors magic_file_patterns << pattern end
magic_file_patterns()
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 17 def magic_file_patterns @magic_file_patterns ||= [] end
new(psychic, opts = {})
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 48 def initialize(psychic, opts = {}) @psychic = psychic @opts = opts @priority = self.class::TASK_PRIORITY init_attr(:known_tasks) { self.class.known_tasks } init_attr(:tasks) { self.class.tasks } end
register_task_factory()
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 13 def register_task_factory Omnitest::Psychic::TaskFactoryManager.register_factory(self) end
task(name, &block)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 41 def task(name, &block) name = name.to_s tasks[name] = block known_tasks << name end
tasks()
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 37 def tasks @tasks ||= {} end
Public Instance Methods
active?()
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 64 def active? self.class.magic_file_patterns.each do | pattern | return true unless Dir.glob("#{cwd}/#{pattern}", File::FNM_CASEFOLD).empty? end self.class.magic_env_vars.each do | var | return true if ENV[var] end false end
known_task?(task_alias)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 74 def known_task?(task_alias) known_tasks.include?(task_alias.to_s) end
priority_for_task(task_alias)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 78 def priority_for_task(task_alias) priority if known_task? task_alias end
task(task_alias, *_args)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 56 def task(task_alias, *_args) task_alias = task_alias.to_s task = tasks[task_alias] if tasks.include? task_alias task = instance_eval(&task) if task.respond_to? :call fail Omnitest::Psychic::TaskNotImplementedError, task_alias if task.nil? task end
Private Instance Methods
init_attr(var) { || ... }
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 84 def init_attr(var) var_name = "@#{var}" var_value = @opts[var] var_value = yield if var_value.nil? && block_given? instance_variable_set(var_name, var_value) end
init_attrs(*vars)
click to toggle source
# File lib/omnitest/psychic/magic_task_factory.rb, line 91 def init_attrs(*vars) vars.each do | var | init_attr var end end