Module: IceT::Conversions::Schedule

Included in:
Schedule
Defined in:
lib/ice_t/conversions.rb

Instance Method Summary collapse

Instance Method Details

#from_json(json_string) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ice_t/conversions.rb', line 4

def from_json(json_string)
  data = ActiveSupport::JSON.decode(json_string).symbolize_keys
  
  options = {
    start_time: data[:start_time].to_time,
    end_time: data[:end_time].to_time
  }
  schedule = self.new(options)

  data[:rules]["rules"].each{ |rule|
    rule_class = rule['export_class_name']
    interval = rule['interval'].to_i
    at = rule['at']  
    init = if at.nil?
             rule_class + ".new(#{interval})"
           else
             rule_class + ".new(#{interval}, '#{at}')"
           end 
    obj_rule = eval(init)
    schedule.add_rule(obj_rule)
  }
  
  schedule
end

#from_yaml(yaml_string) ⇒ Object



30
31
32
33
# File 'lib/ice_t/conversions.rb', line 30

def from_yaml(yaml_string)
  schedule = YAML::load(yaml_string)
  return schedule if schedule.is_a?(IceT::Schedule)
end