Class: Jkr::Env
- Inherits:
-
Object
- Object
- Jkr::Env
- Defined in:
- lib/jkr/env.rb
Constant Summary collapse
- PLAN_DIR =
"plan"
- RESULT_DIR =
"result"
- SCRIPT_DIR =
"script"
Instance Attribute Summary collapse
-
#env_dir ⇒ Object
readonly
Returns the value of attribute env_dir.
-
#jkr_dir ⇒ Object
readonly
Returns the value of attribute jkr_dir.
-
#jkr_plan_dir ⇒ Object
readonly
Returns the value of attribute jkr_plan_dir.
-
#jkr_result_dir ⇒ Object
readonly
Returns the value of attribute jkr_result_dir.
-
#jkr_script_dir ⇒ Object
readonly
Returns the value of attribute jkr_script_dir.
Class Method Summary collapse
-
.find(dir) ⇒ Object
Find Jkr env dir if ‘dir’ is under an valid Jkr environemnt directory.
-
.find_result(dir) ⇒ Object
Find an executed Jkr result if ‘dir’ is under the result dir, and return result id.
- .valid_env_dir?(dir) ⇒ Boolean
Instance Method Summary collapse
-
#initialize(env_dir = Dir.pwd) ⇒ Env
constructor
A new instance of Env.
Constructor Details
#initialize(env_dir = Dir.pwd) ⇒ Env
Returns a new instance of Env.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/jkr/env.rb', line 17 def initialize(env_dir = Dir.pwd) @env_dir = env_dir @jkr_dir = File.join(@env_dir, "jkr") @jkr_plan_dir = File.join(@jkr_dir, PLAN_DIR) @jkr_result_dir = File.join(@jkr_dir, RESULT_DIR) @jkr_script_dir = File.join(@jkr_dir, SCRIPT_DIR) unless Dir.exists?(@env_dir) raise Errno::ENOENT.new(@jkr_dir) end [@jkr_dir, @jkr_result_dir, @jkr_plan_dir, @jkr_script_dir].each do |dir_path| unless Dir.exists?(dir_path) raise ArgumentError.new("Directory #{dir_path} not found") end end end |
Instance Attribute Details
#env_dir ⇒ Object (readonly)
Returns the value of attribute env_dir.
7 8 9 |
# File 'lib/jkr/env.rb', line 7 def env_dir @env_dir end |
#jkr_dir ⇒ Object (readonly)
Returns the value of attribute jkr_dir.
8 9 10 |
# File 'lib/jkr/env.rb', line 8 def jkr_dir @jkr_dir end |
#jkr_plan_dir ⇒ Object (readonly)
Returns the value of attribute jkr_plan_dir.
10 11 12 |
# File 'lib/jkr/env.rb', line 10 def jkr_plan_dir @jkr_plan_dir end |
#jkr_result_dir ⇒ Object (readonly)
Returns the value of attribute jkr_result_dir.
9 10 11 |
# File 'lib/jkr/env.rb', line 9 def jkr_result_dir @jkr_result_dir end |
#jkr_script_dir ⇒ Object (readonly)
Returns the value of attribute jkr_script_dir.
11 12 13 |
# File 'lib/jkr/env.rb', line 11 def jkr_script_dir @jkr_script_dir end |
Class Method Details
.find(dir) ⇒ Object
Find Jkr env dir if ‘dir’ is under an valid Jkr environemnt directory.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/jkr/env.rb', line 54 def self.find(dir) dir = File.("./", dir) while true if valid_env_dir?(dir) return dir end parent_dir = File.("../", dir) if parent_dir == dir break else dir = parent_dir end end nil end |
.find_result(dir) ⇒ Object
Find an executed Jkr result if ‘dir’ is under the result dir, and return result id. return nil otherwise.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/jkr/env.rb', line 74 def self.find_result(dir) dir = File.("./", dir) while true parent_dir = File.("../", dir) gp_dir = File.("../../", dir) # grand parent ggp_dir = File.("../../../", dir) # grand grand parent if ggp_dir == gp_dir return nil end if valid_env_dir?(ggp_dir) if File.basename(gp_dir) == "jkr" && File.basename(parent_dir) == "result" && File.basename(dir) =~ /^[0-9]+/ return File.basename(dir).to_i end end dir = File.("../", dir) end end |
.valid_env_dir?(dir) ⇒ Boolean
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/jkr/env.rb', line 38 def self.valid_env_dir?(dir) jkr_dir = File.("jkr", dir) plan_dir = File.("plan", jkr_dir) script_dir = File.("script", jkr_dir) result_dir = File.("result", jkr_dir) [jkr_dir, result_dir, plan_dir, script_dir].each do |dir_| unless Dir.exists?(dir_) return false end end true end |