Class: Jkr::PlanFinder
- Inherits:
-
Object
- Object
- Jkr::PlanFinder
- Defined in:
- lib/jkr/planfinder.rb
Instance Method Summary collapse
- #find_by_name(name, options = {}) ⇒ Object
- #find_by_result_id(ret_id) ⇒ Object
-
#initialize(jkr_env) ⇒ PlanFinder
constructor
A new instance of PlanFinder.
Constructor Details
#initialize(jkr_env) ⇒ PlanFinder
Returns a new instance of PlanFinder.
4 5 6 |
# File 'lib/jkr/planfinder.rb', line 4 def initialize(jkr_env) @jkr_env = jkr_env end |
Instance Method Details
#find_by_name(name, options = {}) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/jkr/planfinder.rb', line 8 def find_by_name(name, = {}) [:plan_search_path] ||= [@jkr_env.jkr_plan_dir] [:plan_search_path].each do |dir| Dir.glob("#{dir}/*.plan").each do |path| if File.basename(path, ".plan") == name return path end end end nil end |
#find_by_result_id(ret_id) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jkr/planfinder.rb', line 22 def find_by_result_id(ret_id) ret_dir = Dir[sprintf("#{@jkr_env.jkr_result_dir}/%05d*", ret_id)].first unless ret_dir raise ArgumentError.new("Result not found: id=#{ret_id}") end plan_files = Dir["#{ret_dir}/*.plan"] if plan_files.size < 1 raise RuntimeError.new("No plan file found: #{File.basename(ret_dir)}") elsif plan_files.size > 1 raise RuntimeError.new("Multiple plan files found: #{File.basename(ret_dir)}") end plan_files.first end |