Class: Nike::Mash
- Inherits:
-
Hashie::Mash
- Object
- Hashie::Mash
- Nike::Mash
show all
- Defined in:
- lib/nike/mash.rb
Constant Summary
collapse
- KM_TO_MILE =
0.621371192
- CONVERTER_AVAILABILITY =
{
distance: [:distance_in_kilometers, :distance_in_miles, :speed_in_mph, :speed_in_kph],
duration: [:duration_in_seconds, :duration_in_minutes, :duration_in_hours, :duration_in_hms],
pace: [:pace_in_mpk, :pace_in_mpm]
}
- CONVERTER_LOOKUP =
{
distance_in_kilometers: :distance_to_kilometers,
distance_in_miles: :distance_to_miles,
duration_in_seconds: :duration_to_seconds,
duration_in_minutes: :duration_to_minutes,
duration_in_hours: :duration_to_hours,
duration_in_hms: :duration_to_hms,
speed_in_mph: :speed_to_mph,
speed_in_kph: :speed_to_kph,
pace_in_mpk: :pace_to_mpk,
pace_in_mpm: :pace_to_mpm,
}
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
25
26
27
28
29
30
31
32
33
|
# File 'lib/nike/mash.rb', line 25
def method_missing(method, *args, &block)
case method.to_s
when /_time$|_time_utc$/
Time.parse(super)
else
converter = CONVERTER_LOOKUP[method]
converter ? self.send(converter) : super
end
end
|
Instance Method Details
#conversion_helpers ⇒ Object
39
40
41
42
43
|
# File 'lib/nike/mash.rb', line 39
def conversion_helpers
CONVERTER_AVAILABILITY.inject([]) do |a, (m, converters)|
self.include?(m.to_s) ? a += converters : a
end
end
|
#respond_to_missing?(method, include_private = false) ⇒ Boolean
35
36
37
|
# File 'lib/nike/mash.rb', line 35
def respond_to_missing?(method, include_private = false)
conversion_helpers.include?(method)
end
|