onebusaway-sdk 0.1.0.pre.alpha.206 → 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 +41 -49
- 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 +12 -17
- 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 +40 -46
- 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 +201 -118
- 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 +46 -21
- 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 +41 -8
- 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 +207 -105
- data/rbi/lib/onebusaway-sdk/version.rbi +1 -1
- data/sig/onebusaway-sdk/base_client.rbs +6 -1
- data/sig/onebusaway-sdk/base_model.rbs +8 -6
- data/sig/onebusaway-sdk/base_page.rbs +1 -1
- data/sig/onebusaway-sdk/errors.rbs +4 -4
- 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 +33 -8
- 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,7 +89,7 @@ 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]
|
@@ -102,7 +99,6 @@ module OnebusawaySDK
|
|
102
99
|
# @param message [String, nil]
|
103
100
|
#
|
104
101
|
# @return [OnebusawaySDK::APIStatusError]
|
105
|
-
#
|
106
102
|
def self.for(url:, status:, body:, request:, response:, message: nil)
|
107
103
|
kwargs = {url: url, status: status, body: body, request: request, response: response, message: message}
|
108
104
|
|
@@ -130,9 +126,9 @@ module OnebusawaySDK
|
|
130
126
|
|
131
127
|
# @!parse
|
132
128
|
# # @return [Integer]
|
133
|
-
#
|
129
|
+
# attr_accessor :status
|
134
130
|
|
135
|
-
# @private
|
131
|
+
# @api private
|
136
132
|
#
|
137
133
|
# @param url [URI::Generic]
|
138
134
|
# @param status [Integer]
|
@@ -140,7 +136,6 @@ module OnebusawaySDK
|
|
140
136
|
# @param request [nil]
|
141
137
|
# @param response [nil]
|
142
138
|
# @param message [String, nil]
|
143
|
-
#
|
144
139
|
def initialize(url:, status:, body:, request:, response:, message: nil)
|
145
140
|
message ||= {url: url.to_s, status: status, body: body}
|
146
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,24 +109,26 @@ 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
|
134
117
|
finished = false
|
135
118
|
enum = Enumerator.new do |y|
|
136
|
-
with_pool(url) do |conn|
|
119
|
+
with_pool(url, deadline: deadline) do |conn|
|
137
120
|
next if finished
|
138
121
|
|
122
|
+
req = self.class.build_request(request) do
|
123
|
+
self.class.calibrate_socket_timeout(conn, deadline)
|
124
|
+
end
|
125
|
+
|
139
126
|
self.class.calibrate_socket_timeout(conn, deadline)
|
140
127
|
conn.start unless conn.started?
|
141
128
|
|
142
129
|
self.class.calibrate_socket_timeout(conn, deadline)
|
143
130
|
conn.request(req) do |rsp|
|
144
|
-
y << [conn, rsp]
|
131
|
+
y << [conn, req, rsp]
|
145
132
|
break if finished
|
146
133
|
|
147
134
|
rsp.read_body do |bytes|
|
@@ -153,22 +140,29 @@ module OnebusawaySDK
|
|
153
140
|
eof = true
|
154
141
|
end
|
155
142
|
end
|
143
|
+
rescue Timeout::Error
|
144
|
+
raise OnebusawaySDK::APITimeoutError
|
156
145
|
end
|
157
146
|
|
158
|
-
conn, response = enum.next
|
159
|
-
body = OnebusawaySDK::Util.fused_enum(enum) do
|
147
|
+
conn, _, response = enum.next
|
148
|
+
body = OnebusawaySDK::Util.fused_enum(enum, external: true) do
|
160
149
|
finished = true
|
161
150
|
tap do
|
162
151
|
enum.next
|
163
152
|
rescue StopIteration
|
153
|
+
nil
|
164
154
|
end
|
165
155
|
conn.finish if !eof && conn&.started?
|
166
156
|
end
|
167
|
-
[response, (response.body = body)]
|
157
|
+
[Integer(response.code), response, (response.body = body)]
|
168
158
|
end
|
169
159
|
|
170
|
-
|
160
|
+
# @api private
|
161
|
+
#
|
162
|
+
# @param size [Integer]
|
163
|
+
def initialize(size: Etc.nprocessors)
|
171
164
|
@mutex = Mutex.new
|
165
|
+
@size = size
|
172
166
|
@pools = {}
|
173
167
|
end
|
174
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
|
@@ -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::ResponseWrapper]
|
25
|
-
#
|
26
25
|
def retrieve(stop_id, params = {})
|
27
26
|
parsed, options = OnebusawaySDK::Models::ReportProblemWithStopRetrieveParams.dump_request(params)
|
28
27
|
@client.request(
|
@@ -35,7 +34,6 @@ module OnebusawaySDK
|
|
35
34
|
end
|
36
35
|
|
37
36
|
# @param client [OnebusawaySDK::Client]
|
38
|
-
#
|
39
37
|
def initialize(client:)
|
40
38
|
@client = client
|
41
39
|
end
|