Class: SpreeCmCommissioner::Integrations::BookMeBusV1::Resources::Stop

Inherits:
Base
  • Object
show all
Defined in:
app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

from_json_api, from_json_api_item, from_json_api_single

Constructor Details

#initialize(attributes = {}) ⇒ Stop

Returns a new instance of Stop.



20
21
22
23
24
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 20

def initialize(attributes = {})
  super(attributes)

  @location = Location.new(attributes['location']) if attributes['location'].is_a?(Hash)
end

Instance Attribute Details

#addressObject

Returns the value of attribute address.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def address
  @address
end

#codeObject

Returns the value of attribute code.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def code
  @code
end

#descriptionObject

Returns the value of attribute description.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def description
  @description
end

#idObject

Returns the value of attribute id.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def id
  @id
end

#latObject

Returns the value of attribute lat.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def lat
  @lat
end

#locationObject

Returns the value of attribute location.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def location
  @location
end

#location_idObject

Returns the value of attribute location_id.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def location_id
  @location_id
end

#lonObject

Returns the value of attribute lon.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def lon
  @lon
end

#nameObject

Returns the value of attribute name.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def name
  @name
end

#operator_branch_idObject

Returns the value of attribute operator_branch_id.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def operator_branch_id
  @operator_branch_id
end

#operator_idObject

Returns the value of attribute operator_id.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def operator_id
  @operator_id
end

#place_typeObject

Returns the value of attribute place_type.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def place_type
  @place_type
end

#sharedObject

Returns the value of attribute shared.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def shared
  @shared
end

#timezoneObject

Returns the value of attribute timezone.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def timezone
  @timezone
end

#typeObject

Returns the value of attribute type.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def type
  @type
end

#urlObject

Returns the value of attribute url.



3
4
5
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 3

def url
  @url
end

Instance Method Details

#branch?Boolean

A branch is an operator’s physical terminal (operator_branch_id != 0) A stop is a general pickup/drop-off point (operator_branch_id == 0)

Returns:

  • (Boolean)


40
41
42
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 40

def branch?
  operator_branch_id.to_i != 0
end

#latitudeObject



26
27
28
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 26

def latitude
  lat.to_f
end

#location_nameObject



34
35
36
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 34

def location_name
  location&.name
end

#longitudeObject



30
31
32
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 30

def longitude
  lon.to_f
end

#stop?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 44

def stop?
  !branch?
end

#to_hObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 63

def to_h
  {
    id: id,
    type: type,
    code: code,
    name: name,
    lat: lat,
    lon: lon,
    description: description,
    timezone: timezone,
    url: url,
    place_type: place_type,
    shared: shared,
    operator_id: operator_id,
    operator_branch_id: operator_branch_id,
    location_id: location_id,
    address: address,
    location: location&.to_h
  }.compact
end

#unique_external_idObject

Returns the unique identifier for this stop/branch For branches, use operator_branch_id to avoid duplicates For stops, use the stop id



55
56
57
58
59
60
61
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 55

def unique_external_id
  if branch?
    "branch-#{operator_branch_id}"
  else
    "stop-#{id}"
  end
end

#vendor_place_typeObject



48
49
50
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb', line 48

def vendor_place_type
  branch? ? :branch : :stop
end