Class: Lazylead::ORM::Task
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Lazylead::ORM::Task
- Includes:
- Lazylead::ORM
- Defined in:
- lib/lazylead/model.rb
Overview
General lazylead task.
Instance Method Summary collapse
- #detect_cc(sys) ⇒ Object
-
#exec ⇒ Object
Execute task.
- #postman ⇒ Object
- #props ⇒ Object
- #second_sys ⇒ Object
-
#type ⇒ Object
Scheduling type.
-
#unit ⇒ Object
Scheduling unit.
Methods included from Lazylead::ORM
#env, #inspect, #to_h?, #to_hash, #to_s
Instance Method Details
#detect_cc(sys) ⇒ Object
130 131 132 133 134 135 |
# File 'lib/lazylead/model.rb', line 130 def detect_cc(sys) opts = props opts["cc"] = CC.new.detect(opts["cc"], sys) return opts.except "cc" if opts["cc"].is_a? EmptyCC opts end |
#exec ⇒ Object
Execute task
103 104 105 106 107 108 109 |
# File 'lib/lazylead/model.rb', line 103 def exec sys = system.connect opts = props opts = detect_cc(sys) if opts.key? "cc" opts["system"] = second_sys if opts.numeric? "system" action.constantize.new.run(sys, postman, opts) end |
#postman ⇒ Object
147 148 149 150 151 152 153 |
# File 'lib/lazylead/model.rb', line 147 def postman if props.key? "postman" props["postman"].constantize.new else Postman.new end end |
#props ⇒ Object
137 138 139 140 141 142 143 144 145 |
# File 'lib/lazylead/model.rb', line 137 def props @props ||= begin if team.nil? Opts.new(env(to_hash)) else Opts.new(env(team.to_hash.merge(to_hash))) end end end |
#second_sys ⇒ Object
155 156 157 158 159 |
# File 'lib/lazylead/model.rb', line 155 def second_sys sys = System.find(props["system"]) raise "ll-014: No ticketing system found for #{self}" if sys.nil? sys.connect end |
#type ⇒ Object
Scheduling type. Current implementation is based on ‘rufus-scheduler’ gem and supports
the following types: 'cron', 'interval', 'in', 'at', 'every'
114 115 116 |
# File 'lib/lazylead/model.rb', line 114 def type trigger.first end |
#unit ⇒ Object
Scheduling unit. Current implementation is based on ‘rufus-scheduler’ gem thus each scheduling type has own arguments:
1. Scheduling type 'cron' has 'unit' = '00 09 * * *'
2. Scheduling type 'interval' has 'unit' = '2h'
3. Scheduling type 'every' has 'unit' = '3h'
4. Scheduling type 'in' has 'unit' = '10d'
5. Scheduling type 'at' has 'unit' = '2014/12/24 2000'
126 127 128 |
# File 'lib/lazylead/model.rb', line 126 def unit trigger.last end |