Class: Schedule::Calendar
- Inherits:
-
Object
- Object
- Schedule::Calendar
- Defined in:
- lib/schedule/calendar.rb
Constant Summary collapse
- CLIENT_ID =
'913320886860-hml2g9fmellq668ljv4od42jntkmuefd.apps.googleusercontent.com'
- TOKENS_PATH =
Config.file('tokens.yml')
- SCOPE =
Google::Apis::CalendarV3::AUTH_CALENDAR_READONLY
- OOB_URI =
'urn:ietf:wg:oauth:2.0:oob'
Instance Method Summary collapse
- #free_slots ⇒ Object
-
#initialize(options) ⇒ Calendar
constructor
A new instance of Calendar.
Constructor Details
#initialize(options) ⇒ Calendar
23 24 25 26 27 28 |
# File 'lib/schedule/calendar.rb', line 23 def initialize() @service = Google::Apis::CalendarV3::CalendarService.new.tap do |service| service. = end @options = end |
Instance Method Details
#free_slots ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/schedule/calendar.rb', line 30 def free_slots center = Date.today + @options[:day][:offset].days (start, end_), events = get_events_in_range(center, @options[:day][:buffer]) range = AvailabilityRange.new( start.beginning_of_day, end_.end_of_day, min_delay: @options[:min_delay], day_start: @options[:day][:start], day_end: @options[:day][:end], ) events.each do |event| range.mark!( parse_event_datetime(event.start, date_transformer: :beginning_of_day), parse_event_datetime(event.end, date_transformer: :end_of_day), ) end range.free_ranges(**@options.slice(:duration, :align_to)) end |