class Omnitest::Psychic::ScriptFactory

Constants

TASK_PRIORITY

Attributes

priority[R]
psychic[R]
run_patterns[R]

Public Class Methods

new(psychic, opts) click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 32
def initialize(psychic, opts)
  @psychic = psychic
  @opts = opts
  @logger = psychic.logger
end
priority_for_script(script) click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 23
def priority_for_script(script)
  script_path = Pathname(script)
  run_patterns.each do | pattern, priority |
    return priority if script_path.fnmatch(pattern, File::FNM_CASEFOLD)
  end
  nil
end
register_script_factory() click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 11
def register_script_factory
  Omnitest::Psychic::ScriptFactoryManager.register_factory(self)
end
run_patterns() click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 15
def run_patterns
  @run_patterns ||= {}
end
runs(ext, priority = 5) click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 19
def runs(ext, priority = 5)
  run_patterns[ext] = priority
end

Public Instance Methods

active?() click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 38
def active?
  true
end
cwd() click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 42
def cwd
  psychic.cwd
end
known_script?(script) click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 53
def known_script?(script)
  known_scripts.include? Pathname(script)
end
known_scripts() click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 46
def known_scripts
  cwd_path = Pathname(cwd)
  self.class.run_patterns.flat_map do | pattern, _priority |
    Dir[cwd_path.join(pattern)]
  end
end
priority_for_script(script) click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 57
def priority_for_script(script)
  self.class.priority_for_script(script)
end
script(_script) click to toggle source
# File lib/omnitest/psychic/script_factory.rb, line 61
def script(_script)
  fail NotImplementedError, 'This should be implemented by subclasses'
end