Class: FriendlyShipping::Timing

Inherits:
Object
  • Object
show all
Defined in:
lib/friendly_shipping/timing.rb

Overview

Base class for a transit timing estimate returned by a carrier API.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(shipping_method:, pickup:, delivery:, guaranteed: false, warnings: [], errors: [], properties: {}, data: {}) ⇒ Timing



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/friendly_shipping/timing.rb', line 38

def initialize(
  shipping_method:,
  pickup:,
  delivery:,
  guaranteed: false,
  warnings: [],
  errors: [],
  properties: {},
  data: {}
)
  @shipping_method = shipping_method
  @pickup = pickup
  @delivery = delivery
  @guaranteed = guaranteed
  @warnings = warnings
  @errors = errors
  @data = @properties = properties.presence || data
  warn "[DEPRECATION] `properties` is deprecated.  Please use `data` instead." if properties.present?
end

Instance Attribute Details

#dataHash (readonly)



28
29
30
# File 'lib/friendly_shipping/timing.rb', line 28

def data
  @data
end

#deliveryTime (readonly)



13
14
15
# File 'lib/friendly_shipping/timing.rb', line 13

def delivery
  @delivery
end

#errorsArray (readonly)



22
23
24
# File 'lib/friendly_shipping/timing.rb', line 22

def errors
  @errors
end

#guaranteedBoolean (readonly)



16
17
18
# File 'lib/friendly_shipping/timing.rb', line 16

def guaranteed
  @guaranteed
end

#pickupTime (readonly)



10
11
12
# File 'lib/friendly_shipping/timing.rb', line 10

def pickup
  @pickup
end

#propertiesHash (readonly)



25
26
27
# File 'lib/friendly_shipping/timing.rb', line 25

def properties
  @properties
end

#shipping_methodShippingMethod (readonly)



7
8
9
# File 'lib/friendly_shipping/timing.rb', line 7

def shipping_method
  @shipping_method
end

#warningsArray (readonly)



19
20
21
# File 'lib/friendly_shipping/timing.rb', line 19

def warnings
  @warnings
end

Instance Method Details

#time_in_transitTime

Calculates and returns the time between pickup and delivery.



60
61
62
# File 'lib/friendly_shipping/timing.rb', line 60

def time_in_transit
  delivery - pickup
end