class ChargeBee::TimeMachine
Attributes
destination_time[RW]
error_json[RW]
failure_code[RW]
failure_reason[RW]
genesis_time[RW]
name[RW]
time_travel_status[RW]
Public Class Methods
retrieve(id, env=nil, headers={})
click to toggle source
OPERATIONS
# File lib/chargebee/models/time_machine.rb, line 34 def self.retrieve(id, env=nil, headers={}) Request.send('get', uri_path("time_machines",id.to_s), {}, env, headers) end
start_afresh(id, params={}, env=nil, headers={})
click to toggle source
# File lib/chargebee/models/time_machine.rb, line 38 def self.start_afresh(id, params={}, env=nil, headers={}) Request.send('post', uri_path("time_machines",id.to_s,"start_afresh"), params, env, headers) end
travel_forward(id, params={}, env=nil, headers={})
click to toggle source
# File lib/chargebee/models/time_machine.rb, line 42 def self.travel_forward(id, params={}, env=nil, headers={}) Request.send('post', uri_path("time_machines",id.to_s,"travel_forward"), params, env, headers) end
Public Instance Methods
wait_for_time_travel_completion(env = nil)
click to toggle source
# File lib/chargebee/models/time_machine.rb, line 6 def wait_for_time_travel_completion(env = nil) env = env || ChargeBee.default_env sleeptime = env.time_machine_sleeptime tm = (1..30).inject(self) do |time_machine| break time_machine if time_machine.time_travel_status != "in_progress" sleep(sleeptime) self.class.retrieve(self.name, env).time_machine end # sync last fetched one with the current instance new_values = tm.instance_variable_get("@values") self.instance_variable_set("@values", new_values) self.load(new_values) case tm.time_travel_status when "in_progress" raise Error.new('The time travel is taking too much time') when "failed" json_obj = Util.symbolize_keys(JSON.parse(self.error_json)) raise OperationFailedError.new(json_obj[:http_code], json_obj) when "not_enabled", "_unknown" raise Error.new("Time travel status is in wrong state #{self.time_travel_status}") end end