Class: Jkr::Plan::PlanLoader

Inherits:
Object
  • Object
show all
Includes:
Jkr::PlanUtils
Defined in:
lib/jkr/plan.rb

Defined Under Namespace

Classes: PlanParams

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Jkr::PlanUtils

#cmd, #procdb, #procdb_get, #procdb_get_command, #procdb_get_status, #procdb_resetpid, #procdb_spawn, #procdb_update_status, #procdb_waitpid, #use_script, #with_process, #with_process2

Constructor Details

#initialize(plan) ⇒ PlanLoader

Returns a new instance of PlanLoader.



71
72
73
74
# File 'lib/jkr/plan.rb', line 71

def initialize(plan)
  @plan = plan
  @params = nil
end

Class Method Details

.load_plan(plan) ⇒ Object



76
77
78
79
80
81
# File 'lib/jkr/plan.rb', line 76

def self.load_plan(plan)
  plan_loader = self.new(plan)
  plan.src = File.open(plan.file_path, "r").read
  plan_loader.instance_eval(plan.src, plan.file_path, 1)
  plan
end

Instance Method Details

#def_analysis(&proc) ⇒ Object



112
113
114
# File 'lib/jkr/plan.rb', line 112

def def_analysis(&proc)
  @plan.analysis = proc
end

#def_cleanup(&proc) ⇒ Object



109
110
111
# File 'lib/jkr/plan.rb', line 109

def def_cleanup(&proc)
  @plan.cleanup = proc
end

#def_parameters(&proc) ⇒ Object



96
97
98
99
100
101
# File 'lib/jkr/plan.rb', line 96

def def_parameters(&proc)
  @params = PlanParams.new
  proc.call()
  @plan.params.merge!(@params.params)
  @plan.vars.merge!(@params.vars)
end

#def_prep(&proc) ⇒ Object



106
107
108
# File 'lib/jkr/plan.rb', line 106

def def_prep(&proc)
  @plan.prep = proc
end

#def_routine(&proc) ⇒ Object



103
104
105
# File 'lib/jkr/plan.rb', line 103

def def_routine(&proc)
  @plan.routine = proc
end

#description(plan_desc) ⇒ Object



92
93
94
# File 'lib/jkr/plan.rb', line 92

def description(plan_desc)
  @plan.desc = plan_desc.to_s
end

#parameter(arg = nil) ⇒ Object



116
117
118
119
120
121
122
123
# File 'lib/jkr/plan.rb', line 116

def parameter(arg = nil)
  if arg.is_a? Hash
    # set param
    @params.params.merge!(arg)
  else
    @params
  end
end

#planObject

Functions for describing plans in ‘.plan’ files below



84
85
86
# File 'lib/jkr/plan.rb', line 84

def plan
  @plan
end

#title(plan_title) ⇒ Object



88
89
90
# File 'lib/jkr/plan.rb', line 88

def title(plan_title)
  @plan.title = plan_title.to_s
end

#variable(arg = nil) ⇒ Object



125
126
127
128
129
130
131
# File 'lib/jkr/plan.rb', line 125

def variable(arg = nil)
  if arg.is_a? Hash
    @params.vars.merge!(arg)
  else
    @params
  end
end