tfl_api_client 0.2.1 → 0.3.1

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/LICENSE +1 -1
  4. data/README.md +1 -1
  5. data/lib/tfl_api_client.rb +2 -0
  6. data/{spec/support/coverage.rb → lib/tfl_api_client/accident_stats.rb} +27 -8
  7. data/{spec/support/vcr.rb → lib/tfl_api_client/air_quality.rb} +25 -14
  8. data/lib/tfl_api_client/bike_point.rb +0 -1
  9. data/lib/tfl_api_client/client.rb +16 -0
  10. data/lib/tfl_api_client/version.rb +1 -1
  11. metadata +4 -55
  12. data/.gitignore +0 -37
  13. data/.travis.yml +0 -31
  14. data/.yardopts +0 -4
  15. data/GETTING_STARTED.md +0 -231
  16. data/Gemfile +0 -4
  17. data/Rakefile +0 -36
  18. data/spec/cassettes/bike_point/authorised_client_location.yml +0 -83
  19. data/spec/cassettes/bike_point/authorised_client_locations.yml +0 -8179
  20. data/spec/cassettes/bike_point/authorised_client_locations_within_bounding_box.yml +0 -402
  21. data/spec/cassettes/bike_point/authorised_client_locations_within_locus.yml +0 -106
  22. data/spec/cassettes/bike_point/authorised_client_search.yml +0 -80
  23. data/spec/cassettes/bike_point/unauthorised_client_location.yml +0 -50
  24. data/spec/cassettes/bike_point/unauthorised_client_locations.yml +0 -50
  25. data/spec/cassettes/bike_point/unauthorised_client_locations_within_bounding_box.yml +0 -50
  26. data/spec/cassettes/bike_point/unauthorised_client_locations_within_locus.yml +0 -50
  27. data/spec/cassettes/bike_point/unauthorised_client_search.yml +0 -50
  28. data/spec/cassettes/cycle/authorised_client_superhighway.yml +0 -75
  29. data/spec/cassettes/cycle/authorised_client_superhighways.yml +0 -99
  30. data/spec/cassettes/cycle/unauthorised_client_superhighway.yml +0 -50
  31. data/spec/cassettes/cycle/unauthorised_client_superhighways.yml +0 -50
  32. data/spec/integration/bike_point_spec.rb +0 -158
  33. data/spec/integration/cycle_spec.rb +0 -79
  34. data/spec/spec_helper.rb +0 -114
  35. data/spec/support/helpers.rb +0 -81
  36. data/spec/unit/bike_point_spec.rb +0 -87
  37. data/spec/unit/client_spec.rb +0 -199
  38. data/spec/unit/cycle_spec.rb +0 -66
  39. data/tfl_api_client.gemspec +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15b64d19d6071515d9a3044f037a9c92963944fa
4
- data.tar.gz: 1e050f6d8279ad8820e46c7cbbd2786604f5b51f
3
+ metadata.gz: bc6e7d11384505488f3b2ade8fd0ac36ac7a84e2
4
+ data.tar.gz: 9bcb540bebb5f2cbe0854092f159bbc2b571c76e
5
5
  SHA512:
6
- metadata.gz: 75a83c4d8b8329b5a78c26bf5aaec5c528e2d80e3482d1a1b6a27fa4cc30a15117035bf4edbde9c56864d1f9779d8c79db9d55e4e467319ef2d7f18fd1af6a9e
7
- data.tar.gz: 71a74fe9d41007ad72b87373599ef9dad6b6fb85dec345ba124f256b26188d307fe76bc2867657a238a99fd07e414f5a8ab858724daee9e5c4128ed22cf39ef1
6
+ metadata.gz: e414ce9d93ea823e441aa41d8df35111cbf6d150318b570c29affe677d60c44c2906e286932a4fc06c6e8fb1ab48ac6c881402a75876138ddf119691f406bedd
7
+ data.tar.gz: ac1fa21410376796d7f3ec91a90f0f21179fcbbb36fde1973c476606a240dffb882b0fa898ff9f1238159c12b1e79e10ce6abad6f5dbaee44d94d39b415ea84c
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.3.0 [16-FEB-2017]
4
+ * Added support for the /AccidentStats resource.
5
+ * Added support for the /AirQuality resource.
6
+
7
+
3
8
  ## v0.2.1 [14-FEB-2017]
4
9
  * Updated project dependencies to latest versions.
5
10
  * Added Ruby 2.4.0 to travis build.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015 - 2016 Luke Hackett
1
+ Copyright (c) 2015 - 2017 Luke Hackett
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -116,7 +116,7 @@ and [Factory Girl][factory_girl].
116
116
 
117
117
  ## License
118
118
 
119
- Copyright (c) 2015 - 2016 Luke Hackett. MIT Licensed, see [LICENSE][license] for details.
119
+ Copyright (c) 2015 - 2017 Luke Hackett. MIT Licensed, see [LICENSE][license] for details.
120
120
 
121
121
  [license]: LICENSE
122
122
 
@@ -25,6 +25,8 @@
25
25
 
26
26
  require 'tfl_api_client/version'
27
27
  require 'tfl_api_client/client'
28
+ require 'tfl_api_client/accident_stats'
29
+ require 'tfl_api_client/air_quality'
28
30
  require 'tfl_api_client/bike_point'
29
31
  require 'tfl_api_client/cycle'
30
32
  require 'tfl_api_client/exceptions'
@@ -23,14 +23,33 @@
23
23
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
24
  #
25
25
 
26
- require 'simplecov'
27
- require 'coveralls'
26
+ module TflApi
27
+ class Client
28
+ # This class communicates with the TFL "/AccidentStats" API to obtain
29
+ # details about Accident Statistics based upon the year the accident
30
+ # occurred.
31
+ #
32
+ class AccidentStats
28
33
 
29
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
30
- SimpleCov::Formatter::HTMLFormatter,
31
- Coveralls::SimpleCov::Formatter
32
- ])
34
+ # Initialize the AccidentStats object and store the reference to Client
35
+ # object.
36
+ #
37
+ # @param client [Client] the client object
38
+ #
39
+ # @return [AccidentStats] the AccidentStats object
40
+ #
41
+ def initialize(client)
42
+ @client = client
43
+ end
33
44
 
34
- SimpleCov.start do
35
- add_filter 'spec'
45
+ # Returns all accident details for accidents occurring in the specified
46
+ # year.
47
+ #
48
+ # @return [Array] An array of hashes containing all Accident Statistics
49
+ #
50
+ def details(year)
51
+ @client.get("/AccidentStats/#{year}")
52
+ end
53
+ end
54
+ end
36
55
  end
@@ -23,21 +23,32 @@
23
23
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
24
  #
25
25
 
26
- require 'vcr'
26
+ module TflApi
27
+ class Client
28
+ # This class communicates with the TFL "/AirQuality" API to obtain
29
+ # details about London's Air Quality.
30
+ #
31
+ class AirQuality
27
32
 
28
- VCR.configure do |config|
29
- config.cassette_library_dir = File.expand_path('../../cassettes', __FILE__)
30
- config.hook_into :webmock
31
- config.configure_rspec_metadata!
33
+ # Initialize the AirQuality object and store the reference to Client
34
+ # object.
35
+ #
36
+ # @param client [Client] the client object
37
+ #
38
+ # @return [AirQuality] the AirQuality object
39
+ #
40
+ def initialize(client)
41
+ @client = client
42
+ end
32
43
 
33
- # Replace the real Application ID and Application Key with some fake data
34
- config.before_record do |interaction|
35
- interaction.request.uri.gsub!(/app_id=([^&]+)/, 'app_id=TFL_APP_ID')
36
- interaction.request.uri.gsub!(/app_key=([^&]+)/, 'app_key=TFL_APP_KEY')
44
+ # Returns all Air Quality details for the current time period (currently
45
+ # every hour).
46
+ #
47
+ # @return [Hash] A hash containing details upon London's Air Quality
48
+ #
49
+ def details
50
+ @client.get('/AirQuality')
51
+ end
52
+ end
37
53
  end
38
-
39
- # Prevent VCR from matching on Application ID and Application Key
40
- config.default_cassette_options = {
41
- match_requests_on: [:method, VCR.request_matchers.uri_without_param(:app_id, :app_key)]
42
- }
43
54
  end
@@ -23,7 +23,6 @@
23
23
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
24
  #
25
25
 
26
-
27
26
  module TflApi
28
27
  class Client
29
28
  # This class communicates with the TFL "/BikePoint" API to obtain details
@@ -96,6 +96,22 @@ module TflApi
96
96
  end
97
97
  end
98
98
 
99
+ # Creates an instance to the AccidentStats class by passing a reference to self
100
+ #
101
+ # @return [TflApi::Client::AccidentStats] An object to AccidentStats subclass
102
+ #
103
+ def accident_stats
104
+ TflApi::Client::AccidentStats.new(self)
105
+ end
106
+
107
+ # Creates an instance to the AirQuality class by passing a reference to self
108
+ #
109
+ # @return [TflApi::Client::AirQuality] An object to AirQuality subclass
110
+ #
111
+ def air_quality
112
+ TflApi::Client::AirQuality.new(self)
113
+ end
114
+
99
115
  # Creates an instance to the BikePoint class by passing a reference to self
100
116
  #
101
117
  # @return [TflApi::Client::BikePoint] An object to BikePoint subclass
@@ -24,5 +24,5 @@
24
24
  #
25
25
 
26
26
  module TflApi
27
- VERSION = '0.2.1'
27
+ VERSION = '0.3.1'
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tfl_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Hackett
@@ -145,45 +145,17 @@ executables: []
145
145
  extensions: []
146
146
  extra_rdoc_files: []
147
147
  files:
148
- - ".gitignore"
149
- - ".travis.yml"
150
- - ".yardopts"
151
148
  - CHANGELOG.md
152
- - GETTING_STARTED.md
153
- - Gemfile
154
149
  - LICENSE
155
150
  - README.md
156
- - Rakefile
157
151
  - lib/tfl_api_client.rb
152
+ - lib/tfl_api_client/accident_stats.rb
153
+ - lib/tfl_api_client/air_quality.rb
158
154
  - lib/tfl_api_client/bike_point.rb
159
155
  - lib/tfl_api_client/client.rb
160
156
  - lib/tfl_api_client/cycle.rb
161
157
  - lib/tfl_api_client/exceptions.rb
162
158
  - lib/tfl_api_client/version.rb
163
- - spec/cassettes/bike_point/authorised_client_location.yml
164
- - spec/cassettes/bike_point/authorised_client_locations.yml
165
- - spec/cassettes/bike_point/authorised_client_locations_within_bounding_box.yml
166
- - spec/cassettes/bike_point/authorised_client_locations_within_locus.yml
167
- - spec/cassettes/bike_point/authorised_client_search.yml
168
- - spec/cassettes/bike_point/unauthorised_client_location.yml
169
- - spec/cassettes/bike_point/unauthorised_client_locations.yml
170
- - spec/cassettes/bike_point/unauthorised_client_locations_within_bounding_box.yml
171
- - spec/cassettes/bike_point/unauthorised_client_locations_within_locus.yml
172
- - spec/cassettes/bike_point/unauthorised_client_search.yml
173
- - spec/cassettes/cycle/authorised_client_superhighway.yml
174
- - spec/cassettes/cycle/authorised_client_superhighways.yml
175
- - spec/cassettes/cycle/unauthorised_client_superhighway.yml
176
- - spec/cassettes/cycle/unauthorised_client_superhighways.yml
177
- - spec/integration/bike_point_spec.rb
178
- - spec/integration/cycle_spec.rb
179
- - spec/spec_helper.rb
180
- - spec/support/coverage.rb
181
- - spec/support/helpers.rb
182
- - spec/support/vcr.rb
183
- - spec/unit/bike_point_spec.rb
184
- - spec/unit/client_spec.rb
185
- - spec/unit/cycle_spec.rb
186
- - tfl_api_client.gemspec
187
159
  homepage: https://github.com/LukeHackett/tfl_api_client
188
160
  licenses:
189
161
  - MIT
@@ -208,28 +180,5 @@ rubygems_version: 2.6.8
208
180
  signing_key:
209
181
  specification_version: 4
210
182
  summary: Transport for London API Client
211
- test_files:
212
- - spec/cassettes/bike_point/authorised_client_location.yml
213
- - spec/cassettes/bike_point/authorised_client_locations.yml
214
- - spec/cassettes/bike_point/authorised_client_locations_within_bounding_box.yml
215
- - spec/cassettes/bike_point/authorised_client_locations_within_locus.yml
216
- - spec/cassettes/bike_point/authorised_client_search.yml
217
- - spec/cassettes/bike_point/unauthorised_client_location.yml
218
- - spec/cassettes/bike_point/unauthorised_client_locations.yml
219
- - spec/cassettes/bike_point/unauthorised_client_locations_within_bounding_box.yml
220
- - spec/cassettes/bike_point/unauthorised_client_locations_within_locus.yml
221
- - spec/cassettes/bike_point/unauthorised_client_search.yml
222
- - spec/cassettes/cycle/authorised_client_superhighway.yml
223
- - spec/cassettes/cycle/authorised_client_superhighways.yml
224
- - spec/cassettes/cycle/unauthorised_client_superhighway.yml
225
- - spec/cassettes/cycle/unauthorised_client_superhighways.yml
226
- - spec/integration/bike_point_spec.rb
227
- - spec/integration/cycle_spec.rb
228
- - spec/spec_helper.rb
229
- - spec/support/coverage.rb
230
- - spec/support/helpers.rb
231
- - spec/support/vcr.rb
232
- - spec/unit/bike_point_spec.rb
233
- - spec/unit/client_spec.rb
234
- - spec/unit/cycle_spec.rb
183
+ test_files: []
235
184
  has_rdoc:
data/.gitignore DELETED
@@ -1,37 +0,0 @@
1
- # Ruby files
2
- *.gem
3
- *.rbc
4
- /.config
5
- /coverage/
6
- /InstalledFiles
7
- /pkg/
8
- /spec/reports/
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Specific to RubyMotion:
14
- .dat*
15
- .repl_history
16
- build/
17
-
18
- # Documentation cache and generated files:
19
- /.yardoc/
20
- /_yardoc/
21
- /doc/
22
- /rdoc/
23
-
24
- # Environment normalisation:
25
- /.bundle/
26
- /vendor/bundle
27
- /lib/bundler/man/
28
- /.idea/
29
-
30
- # for a library or gem, you might want to ignore these files since the code is
31
- # intended to run in multiple environments; otherwise, check them in:
32
- Gemfile.lock
33
- .ruby-version
34
- .ruby-gemset
35
-
36
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
37
- .rvmrc
@@ -1,31 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
-
5
- rvm:
6
- - 2.4.0
7
- - 2.3.0
8
- - 2.2.0
9
- - 2.1.0
10
- - 2.0.0
11
-
12
- before_install:
13
- - gem uninstall bundler
14
- - gem install bundler --version '~> 1.14'
15
-
16
- script:
17
- - bundle exec rake
18
-
19
- env:
20
- global:
21
- # Application ID
22
- - secure: mNYN26/OaEx535SefPMYfR3hYpYbm7GBJcWuSQ+emO22LDF90dFVHzIakmNAvwPG+sMkjKmKdxbQHOW7IVvfQ7wSc7uQ1lKpUVQcbimc+VXdQ/KIhlKVmIu/ZNV3KJW+d+/4PXMIY88tUynfd9CcuG3SyIrpmjQbSyQM0N/EbK0S4dMMfxSr6ryUnRh3X5Jcyl/hnGzeFqQ8ZVSFBVOPgW1Tkn69MemYNCQtkIyHHAUgCgRc96VJMVaKo0Fujs1WHtsjy9fHmhbduDZ/th3Enl7H2YuayYrYxzJwWIFpKNT0eTx8DoQIhtgRDiCyRaAH+lqfmgr/a3UIEG0q7PABDg97n/I9Ie0dtwTGJ1arrRKvQ7l8S4rv0pRSIaSOdUPce5BIqoMmmexIfiCnuQCPzxIjbHVLBXf85XuNhNzlTJDsXGqyekuQxWcV7iTy305jVokgEQETE5s0lX2x2HpFPCBYm/Ig8zF/wII2QRgN4t7eeUxYuGWkJKw6h7ssuB3Zv0KNKZsNeLvCo9l3Z+8TZ6u1uS3ab61eUYY165HBAGUq5PQ7xBuWD25ERcbU+mtPClLwrKdJmR0m5BmUC33ZXXqgje3qfzBhJdwLULPj/j7Hy+SUx4RgFDfIxB0eXa8XUHoMX8V1R4MlUt08LtQej3NCNHUogYf9Jo01lPtte08=
23
- # Application Key
24
- - secure: epXs5gDgdb/krwvS0gCYVlB2IusKfYHE3pbc90Pd+XqqEHsdqYQ5vpNYFiDjHpazh7xVtW8gL/5UIjSU4AFSjgNphhb83YBmdvWO5z/Zugs/F7llseYCt8QtLkpw8a7ERzsXjnq91zbxiJO4+Vz0DSZRw8nUNiN4wRGmKVIHWPHe/yi3J7GfJ4xZXe2N+yXbXR36DWaGWvjdJDh3S1wSHGe3+HAmZq6e1Xw2a27hwkpUUA4eviCnuV6CfzJl/KVjLEdneBPQ3lhHsLOgZ4ZpoC1uFICyJfRwbWdaaG+J9VQMbmpjaZfpJlV3ObZsIjis6rpVvDaqRnVGOvnlFy6gdCh3Onqm6N9I7s4lVaGKFldciIJwwC/WoMiXZJBMKO3IlmcRHQJVzc1B+lS8ehCUSvtCl6AZ9R2EOYMfiDXp5c4jjZRcVfeqpuGg56twBzFNNu2AN3JLtgwEhGgvWg6176ws2hpYjJxSDtjFZoErfsRP8vl/vzXtnNNx8p1R4Z/eOTO/IKGdW4YI3e1JwszPEegohNpeVWgAGW3SrNeuDmfXJ8j0+SuuTlHcqmBc0fzjz+pEG8/irG2dfCvpVoDKUQhk8NJtvxsXHsVllk5SifwplAWZhFmXom4ID5HDpMpl0sQ7ynIO+5f9/KJAFnhqGlvoXRgQIBmO8/yyOlVeLnY=
25
- # Coveralls Repository Token
26
- - secure: djKSoF3fahZ0s0SfwZHCGdBA/OU66aNdj0XBhjCz4LkDFn5f9I2TdymY5kMQWnFeyiyQ298cwb0o1FfTZ/jIziI/bU1evLuQk4PTjwiW1P8nKcxK8FBNEhn1CFNyCZHfD4O7DqXsDZwbCgcDg3gQPO1+RL3Te1Ez5ZOsSpXtT4MOXZJ83lBRcN+YSQlaJ/kL/O6R7ipO5iRH92hu6+iZJTL6KaL67maU/06e+Sup/LcdxEfL9l4uPx+KSR4uHgZrnWNS0NIouS9nhaml5wXmdeNQeAzRRthIni1CgKB7z1o/+65aLa+FPwnOk7pBz/xOrWQZMDq2KvCpXg1cdzMQw2ptxSM2YRwDGIoMCMUIoowSacvtNILjwjIZFR3OjYeWBcgw8cTdTqAxDOnUCgjrGGHhKL9Fz/48jbnAs0Lbrdf15YKS8Ro/qi9bOeKEJ51lXmKVd2dy2XmnYzqFModdRza7IpmhjmX2qeNh7u8EEUZJbArxPZZNAuNmWb/j3hHaCwqOxXmeFEtDZNkA/DVQYDbz0yXihq7GcStcUBB23H9PDDyTec05ISC0c6yb17JcHP751t9BIvWlG1F1k7MZAqHmjbhReuCocW6Usk5J6CW8WN/dz/xDgwEhEZn5ElzwUae3G0N1APVFRcxrCJRzSBF2DMpSvc7jotFVE3sg7Kg=
27
-
28
- notifications:
29
- email:
30
- on_success: change
31
- on_failure: always
data/.yardopts DELETED
@@ -1,4 +0,0 @@
1
- -
2
- CHANGELOG.md
3
- GETTING_STARTED.md
4
- LICENSE
@@ -1,231 +0,0 @@
1
- # Getting Started
2
-
3
- TFL API Client has been designed to be as simple as possible to work with.
4
-
5
- This Getting Started guide will cover basic usage of the gem, however for a
6
- more in depth guide, checkout the [docs][docs].
7
-
8
- [docs]: http://www.rubydoc.info/github/LukeHackett/tfl_api_client
9
-
10
-
11
- ## BikePoint
12
-
13
- The bike point interface interacts with the /BikePoint end point upon the
14
- TFL API. This end point will return information regarding the [Santander
15
- Cycle hire][cycle_hire] docking stations, including 5 minute real-time bike
16
- and docking station status information.
17
-
18
- [cycle_hire]: https://tfl.gov.uk/modes/cycling/santander-cycles
19
-
20
-
21
- ### Obtain an individual BikePoint
22
-
23
- Information upon an individual BikePoint can be obtained using the `location`
24
- method, whilst also passing the ID of the BikePoint.
25
-
26
- ```ruby
27
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
28
- client.bike_point.location
29
-
30
- => {
31
- "id":"BikePoints_10",
32
- "url": "https://api-prod5.tfl.gov.uk/Place/BikePoints_10",
33
- "commonName": "Park Street, Bankside",
34
- "placeType": "BikePoint",
35
- "additionalProperties": [],
36
- "children":[],
37
- "childrenUrls": [],
38
- "lat":51.505974,
39
- "lon":-0.092754
40
- }
41
- ```
42
-
43
- ### Obtain all BikePoint locations
44
-
45
- In order to obtain all BikePoint locations and their details the `locations`
46
- method can be used.
47
-
48
- ```ruby
49
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
50
- client.bike_point.locations
51
-
52
- => [
53
- {
54
- "id":"BikePoints_10",
55
- "url": "https://api-prod5.tfl.gov.uk/Place/BikePoints_10",
56
- "commonName": "Park Street, Bankside",
57
- "placeType": "BikePoint",
58
- "additionalProperties": [],
59
- "children":[],
60
- "childrenUrls": [],
61
- "lat":51.505974,
62
- "lon":-0.092754
63
- },
64
- ...
65
- // Additional Locations
66
- ...
67
- ]
68
- ```
69
-
70
-
71
- ### Obtain all BikePoint locations within a locus
72
-
73
- In order to obtain all BikePoint locations within a given locus the
74
- `locations_within_locus` method should be used. In this context, a locus is a
75
- particular position given by the longitude and latitude values with an area
76
- that is calculated in accordance to the given radius in metres.
77
-
78
- ```ruby
79
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
80
- client.bike_point.locations_within_locus(51.5007292, -0.1246254, 500)
81
-
82
- => {
83
- "centrePoint": [
84
- 51.5, -0.124
85
- ],
86
- "places": [
87
- {
88
- "additionalProperties": [],
89
- "children": [],
90
- "commonName": "Abingdon Green, Westminster",
91
- "distance": 298.0259124357908,
92
- "id": "BikePoints_583",
93
- "lat": 51.497622,
94
- "lon": -0.125978,
95
- "placeType": "BikePoint",
96
- "url": "https://api-prod6.tfl.gov.uk/Place/BikePoints_583",
97
- }
98
- ...
99
- // Additional Locations
100
- ...
101
- ]
102
- }
103
- ```
104
-
105
-
106
- ### Obtain all BikePoint locations within a bounding box
107
-
108
- In order to obtain all BikePoint locations within a given square the
109
- `locations_within_bounding_box` method should be used. Each of the coordinate
110
- pairs are used to draw a bounding box, to which all BikePoint locations within
111
- the box are returned.
112
-
113
- ```ruby
114
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
115
- client.bike_point.locations_within_bounding_box(51.5138453, -0.0983506, 51.5007292, -0.1246254)
116
-
117
- => [
118
- {
119
- "additionalProperties": [],
120
- "children": [],
121
- "commonName": "Godliman Street, St. Paul's",
122
- "id": "BikePoints_48",
123
- "lat": 51.512484,
124
- "lon": -0.099141,
125
- "placeType": "BikePoint",
126
- "url": "https://api-prod6.tfl.gov.uk/Place/BikePoints_48"
127
- }
128
- ...
129
- // Additional Locations
130
- ...
131
- ]
132
- ```
133
-
134
-
135
- ### Search for a given BikePoint location
136
-
137
- The TFL API supports searching for BikePoint locations and will search within
138
- the "commonName" field. To search for a given location the `search` method
139
- accepts a query String.
140
-
141
- ```ruby
142
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
143
- client.bike_point.search("St. James's")
144
-
145
- => [
146
- {
147
- "id": "BikePoints_160",
148
- "url": "https: //api-prod6.tfl.gov.uk/Place/BikePoints_160",
149
- "commonName": "Waterloo Place, St. James's",
150
- "placeType": "BikePoint",
151
- "additionalProperties": [],
152
- "children": [],
153
- "childrenUrls": [],
154
- "lat": 51.506633,
155
- "lon": -0.131773
156
- }
157
- ...
158
- // Additional Locations
159
- ...
160
- ]
161
- ```
162
-
163
-
164
- ## Cycle Superhighway
165
-
166
- The cycle superhighway interface interacts with the /CycleSuperhighway
167
- end point upon the TFL API. This end point will return information
168
- regarding the [Cycle Superhighways][cycle_superhighways] locations,
169
- including coordinates of the route.
170
-
171
- [cycle_superhighways]: https://tfl.gov.uk/modes/cycling/routes-and-maps/cycle-superhighways
172
-
173
- ### Obtain all Cycle Superhighways routes
174
-
175
- In order to obtain all Cycle Superhighway routes and their details the
176
- `superhighways` method can be used.
177
-
178
- ```ruby
179
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
180
- client.cycle.superhighways
181
-
182
- => [
183
- {
184
- 'id': 'CS-1',
185
- 'label': 'CS Route 1',
186
- 'labelShort': 'CS-1',
187
- 'segmented': true,
188
- 'geography': {
189
- 'type': 'LineString',
190
- 'coordinates': [],
191
- 'crs': {
192
- 'type': 'name',
193
- 'properties': {
194
- 'name': 'ABC:1234'
195
- }
196
- }
197
- }
198
- }
199
- ...
200
- // Additional Cycle Superhighways
201
- ...
202
- ]
203
- ```
204
-
205
- ### Obtain an individual Cycle Superhighway routes
206
-
207
- Information upon an individual Cycle Superhighway can be obtained using
208
- the `superhighway` method, whilst passing the ID of the Cycle
209
- Superhighway route.
210
-
211
- ```ruby
212
- client = TflApi::Client.new(app_id: YOUR_TFL_APP_ID, app_key: YOUR_TFL_APP_KEY)
213
- client.cycle.superhighway('CS-1')
214
-
215
- => {
216
- 'id': 'CS-1',
217
- 'label': 'CS Route 1',
218
- 'labelShort': 'CS-1',
219
- 'segmented': true,
220
- 'geography': {
221
- 'type': 'LineString',
222
- 'coordinates': [],
223
- 'crs': {
224
- 'type': 'name',
225
- 'properties': {
226
- 'name': 'ABC:1234'
227
- }
228
- }
229
- }
230
- }
231
- ```