Module: IActionable::Objects::Awardable::InstanceMethods

Defined in:
lib/riaction/iactionable/objects/awardable.rb

Instance Method Summary collapse

Instance Method Details

#awarded_onObject



37
38
39
40
# File 'lib/riaction/iactionable/objects/awardable.rb', line 37

def awarded_on
  # bug in ruby 1.9.2 where Time.strptime does not support seconds-since-epoch format, but Date.strptime does, so we'll use that for now
  Date.strptime(@award_date, "%s%z").to_time unless @award_date.blank?
end

#complete?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/riaction/iactionable/objects/awardable.rb', line 27

def complete?
  @progress.any? && @progress.all?
end

#initialize_awardable(key_values = {}) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/riaction/iactionable/objects/awardable.rb', line 19

def initialize_awardable(key_values={})
  @progress = extract_many_as(key_values, "Progress", IActionable::Objects::Progress)
  # convert the miliseconds within the date string to seconds (per ruby)
  # "/Date(1275706032317-0600)/" => "1275706032-0600"
  @award_date = key_values.delete("AwardDate")
  @award_date = IActionableObject.timestamp_to_seconds(@award_date) unless @award_date.blank?
end

#percent_completeObject



31
32
33
34
35
# File 'lib/riaction/iactionable/objects/awardable.rb', line 31

def percent_complete
  Integer(Float(@progress.select{|p| p.complete?}.size) / @progress.size * 100)
rescue TypeError => e
  0
end