Module: IActionable::Objects::Awardable::InstanceMethods
- Defined in:
- lib/riaction/iactionable/objects/awardable.rb
Instance Method Summary collapse
- #awarded_on ⇒ Object
- #complete? ⇒ Boolean
- #initialize_awardable(key_values = {}) ⇒ Object
- #percent_complete ⇒ Object
Instance Method Details
#awarded_on ⇒ Object
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
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.(@award_date) unless @award_date.blank? end |
#percent_complete ⇒ Object
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 |