Class: Availability::BusyPeriod

Inherits:
Data
  • Object
show all
Defined in:
lib/availability/busy_period.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(starts_at:, ends_at:) ⇒ BusyPeriod

Returns a new instance of BusyPeriod.

Raises:

  • (ArgumentError)


7
8
9
10
11
# File 'lib/availability/busy_period.rb', line 7

def initialize(starts_at:, ends_at:)
  raise ArgumentError, 'busy period end must be after start' unless ends_at > starts_at

  initialize_data(starts_at: starts_at.getutc.freeze, ends_at: ends_at.getutc.freeze)
end

Instance Attribute Details

#ends_atObject (readonly)

Returns the value of attribute ends_at

Returns:

  • (Object)

    the current value of ends_at



4
5
6
# File 'lib/availability/busy_period.rb', line 4

def ends_at
  @ends_at
end

#starts_atObject (readonly)

Returns the value of attribute starts_at

Returns:

  • (Object)

    the current value of starts_at



4
5
6
# File 'lib/availability/busy_period.rb', line 4

def starts_at
  @starts_at
end

Instance Method Details

#intersects?(starts_at, ends_at) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/availability/busy_period.rb', line 13

def intersects?(starts_at, ends_at)
  self.starts_at < ends_at && self.ends_at > starts_at
end