onebusaway-sdk 0.1.0.pre.alpha.205 → 0.1.0.pre.alpha.207
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +32 -20
- data/lib/onebusaway-sdk/base_client.rb +63 -91
- data/lib/onebusaway-sdk/base_model.rb +489 -514
- data/lib/onebusaway-sdk/base_page.rb +35 -15
- data/lib/onebusaway-sdk/client.rb +1 -3
- data/lib/onebusaway-sdk/errors.rb +15 -19
- data/lib/onebusaway-sdk/extern.rb +1 -4
- data/lib/onebusaway-sdk/models/references.rb +0 -21
- data/lib/onebusaway-sdk/models/report_problem_with_stop_retrieve_params.rb +0 -21
- data/lib/onebusaway-sdk/models/report_problem_with_trip_retrieve_params.rb +0 -23
- data/lib/onebusaway-sdk/pooled_net_requester.rb +53 -54
- data/lib/onebusaway-sdk/request_options.rb +4 -11
- data/lib/onebusaway-sdk/resources/agencies_with_coverage.rb +0 -2
- data/lib/onebusaway-sdk/resources/agency.rb +0 -2
- data/lib/onebusaway-sdk/resources/arrival_and_departure.rb +0 -3
- data/lib/onebusaway-sdk/resources/block.rb +0 -2
- data/lib/onebusaway-sdk/resources/config.rb +0 -2
- data/lib/onebusaway-sdk/resources/current_time.rb +0 -2
- data/lib/onebusaway-sdk/resources/report_problem_with_stop.rb +0 -2
- data/lib/onebusaway-sdk/resources/report_problem_with_trip.rb +0 -2
- data/lib/onebusaway-sdk/resources/route.rb +0 -2
- data/lib/onebusaway-sdk/resources/route_ids_for_agency.rb +0 -2
- data/lib/onebusaway-sdk/resources/routes_for_agency.rb +0 -2
- data/lib/onebusaway-sdk/resources/routes_for_location.rb +0 -2
- data/lib/onebusaway-sdk/resources/schedule_for_route.rb +0 -2
- data/lib/onebusaway-sdk/resources/schedule_for_stop.rb +0 -2
- data/lib/onebusaway-sdk/resources/search_for_route.rb +0 -2
- data/lib/onebusaway-sdk/resources/search_for_stop.rb +0 -2
- data/lib/onebusaway-sdk/resources/shape.rb +0 -2
- data/lib/onebusaway-sdk/resources/stop.rb +0 -2
- data/lib/onebusaway-sdk/resources/stop_ids_for_agency.rb +0 -2
- data/lib/onebusaway-sdk/resources/stops_for_agency.rb +0 -2
- data/lib/onebusaway-sdk/resources/stops_for_location.rb +0 -2
- data/lib/onebusaway-sdk/resources/stops_for_route.rb +0 -2
- data/lib/onebusaway-sdk/resources/trip.rb +0 -2
- data/lib/onebusaway-sdk/resources/trip_details.rb +0 -2
- data/lib/onebusaway-sdk/resources/trip_for_vehicle.rb +0 -2
- data/lib/onebusaway-sdk/resources/trips_for_location.rb +0 -2
- data/lib/onebusaway-sdk/resources/trips_for_route.rb +0 -2
- data/lib/onebusaway-sdk/resources/vehicles_for_agency.rb +0 -2
- data/lib/onebusaway-sdk/util.rb +297 -96
- data/lib/onebusaway-sdk/version.rb +1 -1
- data/lib/onebusaway-sdk.rb +1 -0
- data/manifest.yaml +1 -0
- data/rbi/lib/onebusaway-sdk/base_client.rbi +52 -35
- data/rbi/lib/onebusaway-sdk/base_model.rbi +400 -256
- data/rbi/lib/onebusaway-sdk/base_page.rbi +3 -4
- data/rbi/lib/onebusaway-sdk/client.rbi +7 -2
- data/rbi/lib/onebusaway-sdk/errors.rbi +44 -10
- data/rbi/lib/onebusaway-sdk/extern.rbi +1 -1
- data/rbi/lib/onebusaway-sdk/models/agencies_with_coverage_list_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/agencies_with_coverage_list_response.rbi +9 -6
- data/rbi/lib/onebusaway-sdk/models/agency_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/agency_retrieve_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_list_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_list_response.rbi +95 -14
- data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_retrieve_params.rbi +2 -9
- data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_retrieve_response.rbi +93 -12
- data/rbi/lib/onebusaway-sdk/models/block_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/block_retrieve_response.rbi +14 -20
- data/rbi/lib/onebusaway-sdk/models/config_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/config_retrieve_response.rbi +8 -14
- data/rbi/lib/onebusaway-sdk/models/current_time_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/current_time_retrieve_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/references.rbi +60 -43
- data/rbi/lib/onebusaway-sdk/models/report_problem_with_stop_retrieve_params.rbi +10 -6
- data/rbi/lib/onebusaway-sdk/models/report_problem_with_trip_retrieve_params.rbi +15 -6
- data/rbi/lib/onebusaway-sdk/models/response_wrapper.rbi +4 -2
- data/rbi/lib/onebusaway-sdk/models/route_ids_for_agency_list_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/route_ids_for_agency_list_response.rbi +4 -4
- data/rbi/lib/onebusaway-sdk/models/route_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/route_retrieve_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/routes_for_agency_list_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/routes_for_agency_list_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/routes_for_location_list_params.rbi +2 -2
- data/rbi/lib/onebusaway-sdk/models/routes_for_location_list_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/schedule_for_route_retrieve_params.rbi +5 -8
- data/rbi/lib/onebusaway-sdk/models/schedule_for_route_retrieve_response.rbi +19 -16
- data/rbi/lib/onebusaway-sdk/models/schedule_for_stop_retrieve_params.rbi +5 -8
- data/rbi/lib/onebusaway-sdk/models/schedule_for_stop_retrieve_response.rbi +14 -14
- data/rbi/lib/onebusaway-sdk/models/search_for_route_list_params.rbi +4 -2
- data/rbi/lib/onebusaway-sdk/models/search_for_route_list_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/search_for_stop_list_params.rbi +4 -2
- data/rbi/lib/onebusaway-sdk/models/search_for_stop_list_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/shape_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/shape_retrieve_response.rbi +7 -6
- data/rbi/lib/onebusaway-sdk/models/stop_ids_for_agency_list_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/stop_ids_for_agency_list_response.rbi +4 -4
- data/rbi/lib/onebusaway-sdk/models/stop_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/stop_retrieve_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/stops_for_agency_list_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/stops_for_agency_list_response.rbi +4 -4
- data/rbi/lib/onebusaway-sdk/models/stops_for_location_list_params.rbi +6 -2
- data/rbi/lib/onebusaway-sdk/models/stops_for_location_list_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/stops_for_route_list_params.rbi +4 -2
- data/rbi/lib/onebusaway-sdk/models/stops_for_route_list_response.rbi +14 -14
- data/rbi/lib/onebusaway-sdk/models/trip_detail_retrieve_params.rbi +10 -2
- data/rbi/lib/onebusaway-sdk/models/trip_detail_retrieve_response.rbi +54 -23
- data/rbi/lib/onebusaway-sdk/models/trip_for_vehicle_retrieve_params.rbi +9 -8
- data/rbi/lib/onebusaway-sdk/models/trip_for_vehicle_retrieve_response.rbi +54 -23
- data/rbi/lib/onebusaway-sdk/models/trip_retrieve_params.rbi +5 -2
- data/rbi/lib/onebusaway-sdk/models/trip_retrieve_response.rbi +6 -6
- data/rbi/lib/onebusaway-sdk/models/trips_for_location_list_params.rbi +12 -12
- data/rbi/lib/onebusaway-sdk/models/trips_for_location_list_response.rbi +56 -16
- data/rbi/lib/onebusaway-sdk/models/trips_for_route_list_params.rbi +6 -2
- data/rbi/lib/onebusaway-sdk/models/trips_for_route_list_response.rbi +54 -16
- data/rbi/lib/onebusaway-sdk/models/vehicles_for_agency_list_params.rbi +3 -2
- data/rbi/lib/onebusaway-sdk/models/vehicles_for_agency_list_response.rbi +52 -14
- data/rbi/lib/onebusaway-sdk/pooled_net_requester.rbi +28 -13
- data/rbi/lib/onebusaway-sdk/request_options.rbi +25 -2
- data/rbi/lib/onebusaway-sdk/resources/agencies_with_coverage.rbi +4 -2
- data/rbi/lib/onebusaway-sdk/resources/agency.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/arrival_and_departure.rbi +14 -3
- data/rbi/lib/onebusaway-sdk/resources/block.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/config.rbi +3 -2
- data/rbi/lib/onebusaway-sdk/resources/current_time.rbi +3 -2
- data/rbi/lib/onebusaway-sdk/resources/report_problem_with_stop.rbi +9 -2
- data/rbi/lib/onebusaway-sdk/resources/report_problem_with_trip.rbi +14 -2
- data/rbi/lib/onebusaway-sdk/resources/route.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/route_ids_for_agency.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/routes_for_agency.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/routes_for_location.rbi +3 -2
- data/rbi/lib/onebusaway-sdk/resources/schedule_for_route.rbi +11 -3
- data/rbi/lib/onebusaway-sdk/resources/schedule_for_stop.rbi +11 -3
- data/rbi/lib/onebusaway-sdk/resources/search_for_route.rbi +10 -3
- data/rbi/lib/onebusaway-sdk/resources/search_for_stop.rbi +10 -3
- data/rbi/lib/onebusaway-sdk/resources/shape.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/stop.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/stop_ids_for_agency.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/stops_for_agency.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/stops_for_location.rbi +16 -3
- data/rbi/lib/onebusaway-sdk/resources/stops_for_route.rbi +12 -3
- data/rbi/lib/onebusaway-sdk/resources/trip.rbi +8 -3
- data/rbi/lib/onebusaway-sdk/resources/trip_details.rbi +12 -2
- data/rbi/lib/onebusaway-sdk/resources/trip_for_vehicle.rbi +11 -2
- data/rbi/lib/onebusaway-sdk/resources/trips_for_location.rbi +12 -2
- data/rbi/lib/onebusaway-sdk/resources/trips_for_route.rbi +15 -3
- data/rbi/lib/onebusaway-sdk/resources/vehicles_for_agency.rbi +10 -3
- data/rbi/lib/onebusaway-sdk/util.rbi +214 -83
- data/rbi/lib/onebusaway-sdk/version.rbi +1 -1
- data/sig/onebusaway-sdk/base_client.rbs +9 -8
- data/sig/onebusaway-sdk/base_model.rbs +8 -6
- data/sig/onebusaway-sdk/base_page.rbs +1 -1
- data/sig/onebusaway-sdk/errors.rbs +6 -5
- data/sig/onebusaway-sdk/pooled_net_requester.rbs +11 -4
- data/sig/onebusaway-sdk/request_options.rbs +4 -0
- data/sig/onebusaway-sdk/util.rbs +46 -2
- data/sig/onebusaway-sdk/version.rbs +1 -1
- metadata +4 -4
@@ -1,40 +1,60 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module OnebusawaySDK
|
4
|
-
# @
|
4
|
+
# @example
|
5
|
+
# ```ruby
|
6
|
+
# if page.has_next?
|
7
|
+
# page = page.next_page
|
8
|
+
# end
|
9
|
+
# ```
|
5
10
|
#
|
6
|
-
# @
|
11
|
+
# @example
|
12
|
+
# ```ruby
|
13
|
+
# page.auto_paging_each do |agencies_with_coverage|
|
14
|
+
# puts(agencies_with_coverage)
|
15
|
+
# end
|
16
|
+
# ```
|
7
17
|
#
|
18
|
+
# @example
|
19
|
+
# ```ruby
|
20
|
+
# agencies_with_coverages = page
|
21
|
+
# .to_enum
|
22
|
+
# .lazy
|
23
|
+
# .select { _1.object_id.even? }
|
24
|
+
# .map(&:itself)
|
25
|
+
# .take(2)
|
26
|
+
# .to_a
|
27
|
+
#
|
28
|
+
# agencies_with_coverages => Array
|
29
|
+
# ```
|
8
30
|
module BasePage
|
9
31
|
# @return [Boolean]
|
10
|
-
#
|
11
32
|
def next_page? = (raise NotImplementedError)
|
12
33
|
|
13
34
|
# @raise [OnebusawaySDK::APIError]
|
14
35
|
# @return [OnebusawaySDK::BasePage]
|
15
|
-
#
|
16
36
|
def next_page = (raise NotImplementedError)
|
17
37
|
|
18
38
|
# @param blk [Proc]
|
19
39
|
#
|
20
40
|
# @return [void]
|
21
|
-
#
|
22
41
|
def auto_paging_each(&) = (raise NotImplementedError)
|
23
42
|
|
24
43
|
# @return [Enumerable]
|
25
|
-
#
|
26
44
|
def to_enum = super(:auto_paging_each)
|
27
45
|
|
28
46
|
alias_method :enum_for, :to_enum
|
29
47
|
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
|
37
|
-
|
38
|
-
|
48
|
+
# @api private
|
49
|
+
#
|
50
|
+
# @param client [OnebusawaySDK::BaseClient]
|
51
|
+
# @param req [Hash{Symbol=>Object}]
|
52
|
+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
|
53
|
+
# @param page_data [Object]
|
54
|
+
def initialize(client:, req:, headers:, page_data:)
|
55
|
+
@client = client
|
56
|
+
@req = req
|
57
|
+
super()
|
58
|
+
end
|
39
59
|
end
|
40
60
|
end
|
@@ -102,10 +102,9 @@ module OnebusawaySDK
|
|
102
102
|
# @return [OnebusawaySDK::Resources::Shape]
|
103
103
|
attr_reader :shape
|
104
104
|
|
105
|
-
# @private
|
105
|
+
# @api private
|
106
106
|
#
|
107
107
|
# @return [Hash{String=>String}]
|
108
|
-
#
|
109
108
|
private def auth_query
|
110
109
|
{"key" => @api_key}
|
111
110
|
end
|
@@ -123,7 +122,6 @@ module OnebusawaySDK
|
|
123
122
|
# @param initial_retry_delay [Float]
|
124
123
|
#
|
125
124
|
# @param max_retry_delay [Float]
|
126
|
-
#
|
127
125
|
def initialize(
|
128
126
|
base_url: nil,
|
129
127
|
api_key: ENV["ONEBUSAWAY_API_KEY"],
|
@@ -4,7 +4,7 @@ module OnebusawaySDK
|
|
4
4
|
class Error < StandardError
|
5
5
|
# @!parse
|
6
6
|
# # @return [StandardError, nil]
|
7
|
-
#
|
7
|
+
# attr_accessor :cause
|
8
8
|
end
|
9
9
|
|
10
10
|
class ConversionError < OnebusawaySDK::Error
|
@@ -12,15 +12,15 @@ module OnebusawaySDK
|
|
12
12
|
|
13
13
|
class APIError < OnebusawaySDK::Error
|
14
14
|
# @return [URI::Generic]
|
15
|
-
|
15
|
+
attr_accessor :url
|
16
16
|
|
17
17
|
# @return [Integer, nil]
|
18
|
-
|
18
|
+
attr_accessor :status
|
19
19
|
|
20
20
|
# @return [Object, nil]
|
21
|
-
|
21
|
+
attr_accessor :body
|
22
22
|
|
23
|
-
# @private
|
23
|
+
# @api private
|
24
24
|
#
|
25
25
|
# @param url [URI::Generic]
|
26
26
|
# @param status [Integer, nil]
|
@@ -28,7 +28,6 @@ module OnebusawaySDK
|
|
28
28
|
# @param request [nil]
|
29
29
|
# @param response [nil]
|
30
30
|
# @param message [String, nil]
|
31
|
-
#
|
32
31
|
def initialize(url:, status: nil, body: nil, request: nil, response: nil, message: nil)
|
33
32
|
@url = url
|
34
33
|
@status = status
|
@@ -42,13 +41,13 @@ module OnebusawaySDK
|
|
42
41
|
class APIConnectionError < OnebusawaySDK::APIError
|
43
42
|
# @!parse
|
44
43
|
# # @return [nil]
|
45
|
-
#
|
44
|
+
# attr_accessor :status
|
46
45
|
|
47
46
|
# @!parse
|
48
47
|
# # @return [nil]
|
49
|
-
#
|
48
|
+
# attr_accessor :body
|
50
49
|
|
51
|
-
# @private
|
50
|
+
# @api private
|
52
51
|
#
|
53
52
|
# @param url [URI::Generic]
|
54
53
|
# @param status [nil]
|
@@ -56,7 +55,6 @@ module OnebusawaySDK
|
|
56
55
|
# @param request [nil]
|
57
56
|
# @param response [nil]
|
58
57
|
# @param message [String, nil]
|
59
|
-
#
|
60
58
|
def initialize(
|
61
59
|
url:,
|
62
60
|
status: nil,
|
@@ -70,7 +68,7 @@ module OnebusawaySDK
|
|
70
68
|
end
|
71
69
|
|
72
70
|
class APITimeoutError < OnebusawaySDK::APIConnectionError
|
73
|
-
# @private
|
71
|
+
# @api private
|
74
72
|
#
|
75
73
|
# @param url [URI::Generic]
|
76
74
|
# @param status [nil]
|
@@ -78,7 +76,6 @@ module OnebusawaySDK
|
|
78
76
|
# @param request [nil]
|
79
77
|
# @param response [nil]
|
80
78
|
# @param message [String, nil]
|
81
|
-
#
|
82
79
|
def initialize(
|
83
80
|
url:,
|
84
81
|
status: nil,
|
@@ -92,18 +89,18 @@ module OnebusawaySDK
|
|
92
89
|
end
|
93
90
|
|
94
91
|
class APIStatusError < OnebusawaySDK::APIError
|
95
|
-
# @private
|
92
|
+
# @api private
|
96
93
|
#
|
97
94
|
# @param url [URI::Generic]
|
98
95
|
# @param status [Integer]
|
99
96
|
# @param body [Object, nil]
|
100
97
|
# @param request [nil]
|
101
98
|
# @param response [nil]
|
99
|
+
# @param message [String, nil]
|
102
100
|
#
|
103
101
|
# @return [OnebusawaySDK::APIStatusError]
|
104
|
-
|
105
|
-
|
106
|
-
kwargs = {url: url, status: status, body: body, request: request, response: response}
|
102
|
+
def self.for(url:, status:, body:, request:, response:, message: nil)
|
103
|
+
kwargs = {url: url, status: status, body: body, request: request, response: response, message: message}
|
107
104
|
|
108
105
|
case status
|
109
106
|
in 400
|
@@ -129,9 +126,9 @@ module OnebusawaySDK
|
|
129
126
|
|
130
127
|
# @!parse
|
131
128
|
# # @return [Integer]
|
132
|
-
#
|
129
|
+
# attr_accessor :status
|
133
130
|
|
134
|
-
# @private
|
131
|
+
# @api private
|
135
132
|
#
|
136
133
|
# @param url [URI::Generic]
|
137
134
|
# @param status [Integer]
|
@@ -139,7 +136,6 @@ module OnebusawaySDK
|
|
139
136
|
# @param request [nil]
|
140
137
|
# @param response [nil]
|
141
138
|
# @param message [String, nil]
|
142
|
-
#
|
143
139
|
def initialize(url:, status:, body:, request:, response:, message: nil)
|
144
140
|
message ||= {url: url.to_s, status: status, body: body}
|
145
141
|
super(
|
@@ -671,22 +671,6 @@ module OnebusawaySDK
|
|
671
671
|
# @abstract
|
672
672
|
#
|
673
673
|
# Reason for the service alert, taken from TPEG codes.
|
674
|
-
#
|
675
|
-
# @example
|
676
|
-
# ```ruby
|
677
|
-
# case reason
|
678
|
-
# in :equipmentReason
|
679
|
-
# # ...
|
680
|
-
# in :environmentReason
|
681
|
-
# # ...
|
682
|
-
# in :personnelReason
|
683
|
-
# # ...
|
684
|
-
# in :miscellaneousReason
|
685
|
-
# # ...
|
686
|
-
# in :securityAlert
|
687
|
-
# # ...
|
688
|
-
# end
|
689
|
-
# ```
|
690
674
|
class Reason < OnebusawaySDK::Enum
|
691
675
|
EQUIPMENT_REASON = :equipmentReason
|
692
676
|
ENVIRONMENT_REASON = :environmentReason
|
@@ -695,11 +679,6 @@ module OnebusawaySDK
|
|
695
679
|
SECURITY_ALERT = :securityAlert
|
696
680
|
|
697
681
|
finalize!
|
698
|
-
|
699
|
-
# @!parse
|
700
|
-
# # @return [Array<Symbol>]
|
701
|
-
# #
|
702
|
-
# def self.values; end
|
703
682
|
end
|
704
683
|
|
705
684
|
class Summary < OnebusawaySDK::BaseModel
|
@@ -82,22 +82,6 @@ module OnebusawaySDK
|
|
82
82
|
# @abstract
|
83
83
|
#
|
84
84
|
# A string code identifying the nature of the problem
|
85
|
-
#
|
86
|
-
# @example
|
87
|
-
# ```ruby
|
88
|
-
# case code
|
89
|
-
# in :stop_name_wrong
|
90
|
-
# # ...
|
91
|
-
# in :stop_number_wrong
|
92
|
-
# # ...
|
93
|
-
# in :stop_location_wrong
|
94
|
-
# # ...
|
95
|
-
# in :route_or_trip_missing
|
96
|
-
# # ...
|
97
|
-
# in :other
|
98
|
-
# # ...
|
99
|
-
# end
|
100
|
-
# ```
|
101
85
|
class Code < OnebusawaySDK::Enum
|
102
86
|
STOP_NAME_WRONG = :stop_name_wrong
|
103
87
|
STOP_NUMBER_WRONG = :stop_number_wrong
|
@@ -106,11 +90,6 @@ module OnebusawaySDK
|
|
106
90
|
OTHER = :other
|
107
91
|
|
108
92
|
finalize!
|
109
|
-
|
110
|
-
# @!parse
|
111
|
-
# # @return [Array<Symbol>]
|
112
|
-
# #
|
113
|
-
# def self.values; end
|
114
93
|
end
|
115
94
|
end
|
116
95
|
end
|
@@ -142,24 +142,6 @@ module OnebusawaySDK
|
|
142
142
|
# @abstract
|
143
143
|
#
|
144
144
|
# A string code identifying the nature of the problem
|
145
|
-
#
|
146
|
-
# @example
|
147
|
-
# ```ruby
|
148
|
-
# case code
|
149
|
-
# in :vehicle_never_came
|
150
|
-
# # ...
|
151
|
-
# in :vehicle_came_early
|
152
|
-
# # ...
|
153
|
-
# in :vehicle_came_late
|
154
|
-
# # ...
|
155
|
-
# in :wrong_headsign
|
156
|
-
# # ...
|
157
|
-
# in :vehicle_does_not_stop_here
|
158
|
-
# # ...
|
159
|
-
# in ...
|
160
|
-
# #...
|
161
|
-
# end
|
162
|
-
# ```
|
163
145
|
class Code < OnebusawaySDK::Enum
|
164
146
|
VEHICLE_NEVER_CAME = :vehicle_never_came
|
165
147
|
VEHICLE_CAME_EARLY = :vehicle_came_early
|
@@ -169,11 +151,6 @@ module OnebusawaySDK
|
|
169
151
|
OTHER = :other
|
170
152
|
|
171
153
|
finalize!
|
172
|
-
|
173
|
-
# @!parse
|
174
|
-
# # @return [Array<Symbol>]
|
175
|
-
# #
|
176
|
-
# def self.values; end
|
177
154
|
end
|
178
155
|
end
|
179
156
|
end
|
@@ -1,16 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module OnebusawaySDK
|
4
|
-
# @private
|
5
|
-
#
|
4
|
+
# @api private
|
6
5
|
class PooledNetRequester
|
7
6
|
class << self
|
8
|
-
# @private
|
7
|
+
# @api private
|
9
8
|
#
|
10
9
|
# @param url [URI::Generic]
|
11
10
|
#
|
12
11
|
# @return [Net::HTTP]
|
13
|
-
#
|
14
12
|
def connect(url)
|
15
13
|
port =
|
16
14
|
case [url.port, url.scheme]
|
@@ -28,17 +26,16 @@ module OnebusawaySDK
|
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
31
|
-
# @private
|
29
|
+
# @api private
|
32
30
|
#
|
33
31
|
# @param conn [Net::HTTP]
|
34
32
|
# @param deadline [Float]
|
35
|
-
#
|
36
33
|
def calibrate_socket_timeout(conn, deadline)
|
37
34
|
timeout = deadline - OnebusawaySDK::Util.monotonic_secs
|
38
35
|
conn.open_timeout = conn.read_timeout = conn.write_timeout = conn.continue_timeout = timeout
|
39
36
|
end
|
40
37
|
|
41
|
-
# @private
|
38
|
+
# @api private
|
42
39
|
#
|
43
40
|
# @param request [Hash{Symbol=>Object}] .
|
44
41
|
#
|
@@ -48,9 +45,10 @@ module OnebusawaySDK
|
|
48
45
|
#
|
49
46
|
# @option request [Hash{String=>String}] :headers
|
50
47
|
#
|
51
|
-
# @
|
48
|
+
# @param blk [Proc]
|
52
49
|
#
|
53
|
-
|
50
|
+
# @return [Net::HTTPGenericRequest]
|
51
|
+
def build_request(request, &)
|
54
52
|
method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
|
55
53
|
req = Net::HTTPGenericRequest.new(
|
56
54
|
method.to_s.upcase,
|
@@ -63,54 +61,41 @@ module OnebusawaySDK
|
|
63
61
|
|
64
62
|
case body
|
65
63
|
in nil
|
64
|
+
nil
|
66
65
|
in String
|
67
|
-
req.
|
66
|
+
req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
|
67
|
+
req.body_stream = OnebusawaySDK::Util::ReadIOAdapter.new(body, &)
|
68
68
|
in StringIO
|
69
|
-
req
|
70
|
-
|
71
|
-
|
72
|
-
req
|
69
|
+
req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
|
70
|
+
req.body_stream = OnebusawaySDK::Util::ReadIOAdapter.new(body, &)
|
71
|
+
in IO | Enumerator
|
72
|
+
req["transfer-encoding"] ||= "chunked" unless req["content-length"]
|
73
|
+
req.body_stream = OnebusawaySDK::Util::ReadIOAdapter.new(body, &)
|
73
74
|
end
|
74
75
|
|
75
76
|
req
|
76
77
|
end
|
77
78
|
end
|
78
79
|
|
79
|
-
# @private
|
80
|
+
# @api private
|
80
81
|
#
|
81
82
|
# @param url [URI::Generic]
|
83
|
+
# @param deadline [Float]
|
82
84
|
# @param blk [Proc]
|
83
|
-
|
84
|
-
private def with_pool(url, &blk)
|
85
|
+
private def with_pool(url, deadline:, &blk)
|
85
86
|
origin = OnebusawaySDK::Util.uri_origin(url)
|
86
|
-
|
87
|
-
key = :"#{object_id}-#{self.class.name}-connection_in_use_for_#{origin}"
|
88
|
-
|
89
|
-
if th[key]
|
90
|
-
tap do
|
91
|
-
conn = self.class.connect(url)
|
92
|
-
return blk.call(conn)
|
93
|
-
ensure
|
94
|
-
conn.finish if conn&.started?
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
87
|
+
timeout = deadline - OnebusawaySDK::Util.monotonic_secs
|
98
88
|
pool =
|
99
89
|
@mutex.synchronize do
|
100
|
-
@pools[origin] ||= ConnectionPool.new(size:
|
90
|
+
@pools[origin] ||= ConnectionPool.new(size: @size) do
|
101
91
|
self.class.connect(url)
|
102
92
|
end
|
103
93
|
end
|
104
94
|
|
105
|
-
pool.with
|
106
|
-
th[key] = true
|
107
|
-
blk.call(conn)
|
108
|
-
ensure
|
109
|
-
th[key] = nil
|
110
|
-
end
|
95
|
+
pool.with(timeout: timeout, &blk)
|
111
96
|
end
|
112
97
|
|
113
|
-
# @private
|
98
|
+
# @api private
|
114
99
|
#
|
115
100
|
# @param request [Hash{Symbol=>Object}] .
|
116
101
|
#
|
@@ -124,46 +109,60 @@ module OnebusawaySDK
|
|
124
109
|
#
|
125
110
|
# @option request [Float] :deadline
|
126
111
|
#
|
127
|
-
# @return [Array(Net::HTTPResponse, Enumerable)]
|
128
|
-
#
|
112
|
+
# @return [Array(Integer, Net::HTTPResponse, Enumerable)]
|
129
113
|
def execute(request)
|
130
114
|
url, deadline = request.fetch_values(:url, :deadline)
|
131
|
-
req = self.class.build_request(request)
|
132
115
|
|
133
116
|
eof = false
|
117
|
+
finished = false
|
134
118
|
enum = Enumerator.new do |y|
|
135
|
-
with_pool(url) do |conn|
|
119
|
+
with_pool(url, deadline: deadline) do |conn|
|
120
|
+
next if finished
|
121
|
+
|
122
|
+
req = self.class.build_request(request) do
|
123
|
+
self.class.calibrate_socket_timeout(conn, deadline)
|
124
|
+
end
|
125
|
+
|
136
126
|
self.class.calibrate_socket_timeout(conn, deadline)
|
137
127
|
conn.start unless conn.started?
|
138
128
|
|
139
129
|
self.class.calibrate_socket_timeout(conn, deadline)
|
140
130
|
conn.request(req) do |rsp|
|
141
|
-
y << [conn, rsp]
|
131
|
+
y << [conn, req, rsp]
|
132
|
+
break if finished
|
133
|
+
|
142
134
|
rsp.read_body do |bytes|
|
143
135
|
y << bytes
|
136
|
+
break if finished
|
137
|
+
|
144
138
|
self.class.calibrate_socket_timeout(conn, deadline)
|
145
139
|
end
|
146
140
|
eof = true
|
147
141
|
end
|
148
142
|
end
|
143
|
+
rescue Timeout::Error
|
144
|
+
raise OnebusawaySDK::APITimeoutError
|
149
145
|
end
|
150
146
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
conn.finish if !eof && conn.started?
|
147
|
+
conn, _, response = enum.next
|
148
|
+
body = OnebusawaySDK::Util.fused_enum(enum, external: true) do
|
149
|
+
finished = true
|
150
|
+
tap do
|
151
|
+
enum.next
|
152
|
+
rescue StopIteration
|
153
|
+
nil
|
154
|
+
end
|
155
|
+
conn.finish if !eof && conn&.started?
|
161
156
|
end
|
162
|
-
[response, (response.body = body)]
|
157
|
+
[Integer(response.code), response, (response.body = body)]
|
163
158
|
end
|
164
159
|
|
165
|
-
|
160
|
+
# @api private
|
161
|
+
#
|
162
|
+
# @param size [Integer]
|
163
|
+
def initialize(size: Etc.nprocessors)
|
166
164
|
@mutex = Mutex.new
|
165
|
+
@size = size
|
167
166
|
@pools = {}
|
168
167
|
end
|
169
168
|
end
|
@@ -1,10 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module OnebusawaySDK
|
4
|
-
# @private
|
5
|
-
#
|
6
|
-
# @abstract
|
7
|
-
#
|
4
|
+
# @api private
|
8
5
|
module RequestParameters
|
9
6
|
# @!parse
|
10
7
|
# # Options to specify HTTP behaviour for this request.
|
@@ -12,7 +9,6 @@ module OnebusawaySDK
|
|
12
9
|
# attr_accessor :request_options
|
13
10
|
|
14
11
|
# @param mod [Module]
|
15
|
-
#
|
16
12
|
def self.included(mod)
|
17
13
|
return unless mod <= OnebusawaySDK::BaseModel
|
18
14
|
|
@@ -20,15 +16,13 @@ module OnebusawaySDK
|
|
20
16
|
mod.optional(:request_options, OnebusawaySDK::RequestOptions)
|
21
17
|
end
|
22
18
|
|
23
|
-
# @private
|
24
|
-
#
|
19
|
+
# @api private
|
25
20
|
module Converter
|
26
|
-
# @private
|
21
|
+
# @api private
|
27
22
|
#
|
28
23
|
# @param params [Object]
|
29
24
|
#
|
30
25
|
# @return [Array(Object, Hash{Symbol=>Object})]
|
31
|
-
#
|
32
26
|
def dump_request(params)
|
33
27
|
case (dumped = dump(params))
|
34
28
|
in Hash
|
@@ -46,12 +40,11 @@ module OnebusawaySDK
|
|
46
40
|
# When making a request, you can pass an actual {RequestOptions} instance, or
|
47
41
|
# simply pass a Hash with symbol keys matching the attributes on this class.
|
48
42
|
class RequestOptions < OnebusawaySDK::BaseModel
|
49
|
-
# @private
|
43
|
+
# @api private
|
50
44
|
#
|
51
45
|
# @param opts [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}]
|
52
46
|
#
|
53
47
|
# @raise [ArgumentError]
|
54
|
-
#
|
55
48
|
def self.validate!(opts)
|
56
49
|
case opts
|
57
50
|
in OnebusawaySDK::RequestOptions | Hash
|
@@ -11,7 +11,6 @@ module OnebusawaySDK
|
|
11
11
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
12
12
|
#
|
13
13
|
# @return [OnebusawaySDK::Models::AgenciesWithCoverageListResponse]
|
14
|
-
#
|
15
14
|
def list(params = {})
|
16
15
|
@client.request(
|
17
16
|
method: :get,
|
@@ -22,7 +21,6 @@ module OnebusawaySDK
|
|
22
21
|
end
|
23
22
|
|
24
23
|
# @param client [OnebusawaySDK::Client]
|
25
|
-
#
|
26
24
|
def initialize(client:)
|
27
25
|
@client = client
|
28
26
|
end
|
@@ -12,7 +12,6 @@ module OnebusawaySDK
|
|
12
12
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
13
13
|
#
|
14
14
|
# @return [OnebusawaySDK::Models::AgencyRetrieveResponse]
|
15
|
-
#
|
16
15
|
def retrieve(agency_id, params = {})
|
17
16
|
@client.request(
|
18
17
|
method: :get,
|
@@ -23,7 +22,6 @@ module OnebusawaySDK
|
|
23
22
|
end
|
24
23
|
|
25
24
|
# @param client [OnebusawaySDK::Client]
|
26
|
-
#
|
27
25
|
def initialize(client:)
|
28
26
|
@client = client
|
29
27
|
end
|
@@ -22,7 +22,6 @@ module OnebusawaySDK
|
|
22
22
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
23
23
|
#
|
24
24
|
# @return [OnebusawaySDK::Models::ArrivalAndDepartureRetrieveResponse]
|
25
|
-
#
|
26
25
|
def retrieve(stop_id, params)
|
27
26
|
parsed, options = OnebusawaySDK::Models::ArrivalAndDepartureRetrieveParams.dump_request(params)
|
28
27
|
@client.request(
|
@@ -49,7 +48,6 @@ module OnebusawaySDK
|
|
49
48
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
50
49
|
#
|
51
50
|
# @return [OnebusawaySDK::Models::ArrivalAndDepartureListResponse]
|
52
|
-
#
|
53
51
|
def list(stop_id, params = {})
|
54
52
|
parsed, options = OnebusawaySDK::Models::ArrivalAndDepartureListParams.dump_request(params)
|
55
53
|
@client.request(
|
@@ -62,7 +60,6 @@ module OnebusawaySDK
|
|
62
60
|
end
|
63
61
|
|
64
62
|
# @param client [OnebusawaySDK::Client]
|
65
|
-
#
|
66
63
|
def initialize(client:)
|
67
64
|
@client = client
|
68
65
|
end
|
@@ -12,7 +12,6 @@ module OnebusawaySDK
|
|
12
12
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
13
13
|
#
|
14
14
|
# @return [OnebusawaySDK::Models::BlockRetrieveResponse]
|
15
|
-
#
|
16
15
|
def retrieve(block_id, params = {})
|
17
16
|
@client.request(
|
18
17
|
method: :get,
|
@@ -23,7 +22,6 @@ module OnebusawaySDK
|
|
23
22
|
end
|
24
23
|
|
25
24
|
# @param client [OnebusawaySDK::Client]
|
26
|
-
#
|
27
25
|
def initialize(client:)
|
28
26
|
@client = client
|
29
27
|
end
|
@@ -10,7 +10,6 @@ module OnebusawaySDK
|
|
10
10
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
11
11
|
#
|
12
12
|
# @return [OnebusawaySDK::Models::ConfigRetrieveResponse]
|
13
|
-
#
|
14
13
|
def retrieve(params = {})
|
15
14
|
@client.request(
|
16
15
|
method: :get,
|
@@ -21,7 +20,6 @@ module OnebusawaySDK
|
|
21
20
|
end
|
22
21
|
|
23
22
|
# @param client [OnebusawaySDK::Client]
|
24
|
-
#
|
25
23
|
def initialize(client:)
|
26
24
|
@client = client
|
27
25
|
end
|
@@ -10,7 +10,6 @@ module OnebusawaySDK
|
|
10
10
|
# @option params [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
11
11
|
#
|
12
12
|
# @return [OnebusawaySDK::Models::CurrentTimeRetrieveResponse]
|
13
|
-
#
|
14
13
|
def retrieve(params = {})
|
15
14
|
@client.request(
|
16
15
|
method: :get,
|
@@ -21,7 +20,6 @@ module OnebusawaySDK
|
|
21
20
|
end
|
22
21
|
|
23
22
|
# @param client [OnebusawaySDK::Client]
|
24
|
-
#
|
25
23
|
def initialize(client:)
|
26
24
|
@client = client
|
27
25
|
end
|