Class: HhAddOn::Cells::OpeningHours
- Inherits:
-
Object
- Object
- HhAddOn::Cells::OpeningHours
- Defined in:
- app/my_lib/hh_add_on/cells/opening_hours.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ OpeningHours
constructor
A new instance of OpeningHours.
-
#search_availability_of_next_days(restaurant_add_on) ⇒ Object
Get next X availability of given date argument.
Constructor Details
#initialize ⇒ OpeningHours
Returns a new instance of OpeningHours.
6 7 8 |
# File 'app/my_lib/hh_add_on/cells/opening_hours.rb', line 6 def initialize @cache = Rails.cache end |
Class Method Details
.minutes_to_human(minutes) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/my_lib/hh_add_on/cells/opening_hours.rb', line 35 def minutes_to_human(minutes) return '' if minutes.blank? # return unlimited if minutes is 1_000_000 return 'Unlimited' if minutes.to_i == AddOns::Pricing::UNLIMITED result = {} hours = minutes / 60 result[:hours] = hours result[:minutes] = minutes % 60 if minutes % 60 != 0 && minutes > 60 return I18n.t('views.d.minutes_to_human.hours_minutes', hour: result[:hours], minute: result[:minutes]) end return I18n.t('views.d.minutes_to_human.hours', count: result[:hours]) if (minutes % 60).zero? return I18n.t('views.d.minutes_to_human.minutes', count: minutes) if minutes < 60 '' end |
.minutes_to_label(minutes) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'app/my_lib/hh_add_on/cells/opening_hours.rb', line 57 def minutes_to_label(minutes) return '' if minutes.blank? # return unlimited if minutes is 1_000_000 return 'Unlimited' if minutes.to_i == AddOns::Pricing::UNLIMITED result = {} hours = minutes / 60 result[:hours] = hours result[:minutes] = minutes % 60 if minutes % 60 != 0 && minutes > 60 return I18n.t('views.d.minutes_to_label.hours_minutes', hour: result[:hours], minute: result[:minutes]) end return I18n.t('views.d.minutes_to_label.hours', count: result[:hours]) if (minutes % 60).zero? return I18n.t('views.d.minutes_to_label.minutes', count: minutes) if minutes < 60 '' end |
Instance Method Details
#search_availability_of_next_days(restaurant_add_on) ⇒ Object
Get next X availability of given date argument
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/my_lib/hh_add_on/cells/opening_hours.rb', line 20 def search_availability_of_next_days(restaurant_add_on) cache_key = restaurant_add_on.opening_hours.cache_key Rails.cache.fetch("restaurant_add_on:oh:#{cache_key}:#{I18n.locale}") do dummy_date_to_find_date = Date.parse('10 Oct 2021') # Sunday restaurant_add_on.opening_hours.map do |oh| { day_name: I18n.t((dummy_date_to_find_date + oh.cwday.days).strftime('%A')), schedule: oh.attributes.slice('open', 'close'), } end end end |