Module: Remi::Job
- Defined in:
- lib/remi/job.rb
Defined Under Namespace
Modules: JobClassMethods
Instance Attribute Summary collapse
-
#runtime_params ⇒ Object
Returns the value of attribute runtime_params.
Class Method Summary collapse
Instance Method Summary collapse
- #create_work_dir ⇒ Object
- #delete_work_dir ⇒ Object
- #finalize ⇒ Object
- #initialize(runtime_params: {}, delete_work_dir: true, logger: Settings.logger) ⇒ Object
- #load_all_targets ⇒ Object
- #params ⇒ Object
-
#run ⇒ Object
Public: Runs all transforms defined in the job.
- #run_all_transforms ⇒ Object
-
#run_transforms_using(sources: nil, targets: nil) ⇒ Object
Public: Runs any transforms that use the sources and targets selected.
- #sources ⇒ Object
- #targets ⇒ Object
- #transforms ⇒ Object
- #work_dir ⇒ Object
Instance Attribute Details
#runtime_params ⇒ Object
Returns the value of attribute runtime_params.
113 114 115 |
# File 'lib/remi/job.rb', line 113 def runtime_params @runtime_params end |
Class Method Details
.included(receiver) ⇒ Object
83 84 85 |
# File 'lib/remi/job.rb', line 83 def self.included(receiver) receiver.extend(JobClassMethods) end |
Instance Method Details
#create_work_dir ⇒ Object
133 134 135 136 |
# File 'lib/remi/job.rb', line 133 def create_work_dir @logger.info "Creating working directory #{work_dir}" FileUtils.mkdir_p work_dir end |
#delete_work_dir ⇒ Object
123 124 125 126 127 128 129 130 131 |
# File 'lib/remi/job.rb', line 123 def delete_work_dir if @delete_work_dir && (work_dir.match /^#{Dir.tmpdir}/) @logger.info "Deleting temporary directory #{work_dir}" FileUtils.rm_r work_dir else @logger.debug "Not going to delete working directory #{work_dir}" nil end end |
#finalize ⇒ Object
119 120 121 |
# File 'lib/remi/job.rb', line 119 def finalize delete_work_dir end |
#initialize(runtime_params: {}, delete_work_dir: true, logger: Settings.logger) ⇒ Object
106 107 108 109 110 111 |
# File 'lib/remi/job.rb', line 106 def initialize(runtime_params: {}, delete_work_dir: true, logger: Settings.logger) @runtime_params = runtime_params @delete_work_dir = delete_work_dir @logger = logger create_work_dir end |
#load_all_targets ⇒ Object
159 160 161 162 163 164 |
# File 'lib/remi/job.rb', line 159 def load_all_targets targets.each do |target| @logger.info "Loading target #{target}" self.send(target).tap { |t| t.respond_to?(:load) ? t.load : nil } end end |
#params ⇒ Object
88 89 90 |
# File 'lib/remi/job.rb', line 88 def params self.class.params end |
#run ⇒ Object
Public: Runs all transforms defined in the job.
Returns the job instance.
169 170 171 172 173 174 |
# File 'lib/remi/job.rb', line 169 def run # Do all of the stuff here run_all_transforms load_all_targets self end |
#run_all_transforms ⇒ Object
155 156 157 |
# File 'lib/remi/job.rb', line 155 def run_all_transforms transforms.map { |t, st| self.send(t) } end |
#run_transforms_using(sources: nil, targets: nil) ⇒ Object
Public: Runs any transforms that use the sources and targets selected. If source and target is not specified, then all transforms will be run. If only the source is specified, then all transforms that use any of the sources will be run. Same for specified transforms.
sources - Array of source names targets - Array of target names
Returns an array containing the result of each transform.
147 148 149 150 151 152 153 |
# File 'lib/remi/job.rb', line 147 def run_transforms_using(sources: nil, targets: nil) transforms.map do |t, st| selected_sources = (st[:sources] & Array(sources || st[:sources])).size > 0 selected_targets = (st[:targets] & Array(targets || st[:targets])).size > 0 self.send(t) if selected_sources && selected_targets end end |
#sources ⇒ Object
92 93 94 |
# File 'lib/remi/job.rb', line 92 def sources self.class.sources end |
#targets ⇒ Object
96 97 98 |
# File 'lib/remi/job.rb', line 96 def targets self.class.targets end |
#transforms ⇒ Object
100 101 102 |
# File 'lib/remi/job.rb', line 100 def transforms self.class.transforms end |
#work_dir ⇒ Object
115 116 117 |
# File 'lib/remi/job.rb', line 115 def work_dir self.class.work_dir end |