apis-is 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +14 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +63 -0
  8. data/Rakefile +9 -0
  9. data/apis-is.gemspec +25 -0
  10. data/examples/bus_example.rb +27 -0
  11. data/examples/car_example.rb +27 -0
  12. data/examples/cinema_example.rb +32 -0
  13. data/examples/company_example.rb +23 -0
  14. data/examples/currency_example.rb +25 -0
  15. data/examples/cyclecounter_example.rb +20 -0
  16. data/examples/earthquake_example.rb +23 -0
  17. data/examples/flights_example.rb +25 -0
  18. data/examples/lottery_example.rb +23 -0
  19. data/examples/particulates_example.rb +21 -0
  20. data/examples/tv_example.rb +37 -0
  21. data/examples/weather_example.rb +34 -0
  22. data/lib/apis.rb +109 -0
  23. data/lib/apis/client.rb +30 -0
  24. data/lib/apis/endpoints/bus.rb +15 -0
  25. data/lib/apis/endpoints/cars.rb +14 -0
  26. data/lib/apis/endpoints/cinema.rb +22 -0
  27. data/lib/apis/endpoints/companies.rb +38 -0
  28. data/lib/apis/endpoints/currency.rb +27 -0
  29. data/lib/apis/endpoints/cyclecounter.rb +14 -0
  30. data/lib/apis/endpoints/earthquake.rb +13 -0
  31. data/lib/apis/endpoints/flights.rb +24 -0
  32. data/lib/apis/endpoints/lottery.rb +27 -0
  33. data/lib/apis/endpoints/particulates.rb +13 -0
  34. data/lib/apis/endpoints/tv.rb +69 -0
  35. data/lib/apis/endpoints/weather.rb +37 -0
  36. data/lib/apis/response/feed_parser.rb +16 -0
  37. data/lib/apis/version.rb +6 -0
  38. data/spec/fixtures/bus_all.yml +216 -0
  39. data/spec/fixtures/bus_selective.yml +82 -0
  40. data/spec/fixtures/car.yml +53 -0
  41. data/spec/fixtures/cinema_showtimes.yml +319 -0
  42. data/spec/fixtures/cinema_theaters.yml +192 -0
  43. data/spec/fixtures/companies_by_address.yml +141 -0
  44. data/spec/fixtures/companies_by_name.yml +84 -0
  45. data/spec/fixtures/companies_by_socialnumber.yml +50 -0
  46. data/spec/fixtures/companies_by_vsknr.yml +50 -0
  47. data/spec/fixtures/currency_arion.yml +83 -0
  48. data/spec/fixtures/currency_lb.yml +104 -0
  49. data/spec/fixtures/currency_m5.yml +77 -0
  50. data/spec/fixtures/cyclecounter.yml +50 -0
  51. data/spec/fixtures/earthquake.yml +1311 -0
  52. data/spec/fixtures/flights_arrivals.yml +269 -0
  53. data/spec/fixtures/flights_departure.yml +247 -0
  54. data/spec/fixtures/lottery_eurojackpot.yml +57 -0
  55. data/spec/fixtures/lottery_lotto.yml +57 -0
  56. data/spec/fixtures/lottery_vikingalotto.yml +57 -0
  57. data/spec/fixtures/particulates.yml +49 -0
  58. data/spec/fixtures/tv_ruv.yml +380 -0
  59. data/spec/fixtures/tv_ruvithrottir.yml +47 -0
  60. data/spec/fixtures/tv_skjar1.yml +317 -0
  61. data/spec/fixtures/tv_stod2.yml +491 -0
  62. data/spec/fixtures/tv_stod2bio.yml +217 -0
  63. data/spec/fixtures/tv_stod2gull.yml +284 -0
  64. data/spec/fixtures/tv_stod2sport.yml +105 -0
  65. data/spec/fixtures/tv_stod2sport2.yml +118 -0
  66. data/spec/fixtures/tv_stod3.yml +301 -0
  67. data/spec/fixtures/weather_forecast.yml +215 -0
  68. data/spec/fixtures/weather_observations.yml +215 -0
  69. data/spec/fixtures/weather_texts.yml +79 -0
  70. data/spec/helper.rb +18 -0
  71. data/spec/specs/bus_spec.rb +17 -0
  72. data/spec/specs/car_spec.rb +10 -0
  73. data/spec/specs/cinema_spec.rb +19 -0
  74. data/spec/specs/company_spec.rb +40 -0
  75. data/spec/specs/currency_spec.rb +30 -0
  76. data/spec/specs/cyclecounter_spec.rb +10 -0
  77. data/spec/specs/earthquake_spec.rb +10 -0
  78. data/spec/specs/flights_spec.rb +22 -0
  79. data/spec/specs/lottery_spec.rb +30 -0
  80. data/spec/specs/particulates_spec.rb +10 -0
  81. data/spec/specs/tv_spec.rb +84 -0
  82. data/spec/specs/weather_spec.rb +31 -0
  83. metadata +205 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d65c7211a6102c167ded2302467bfb7935abf0ca
4
+ data.tar.gz: d1a788670490ff8e64ed2af0051b26f472929471
5
+ SHA512:
6
+ metadata.gz: 49886c482f42d6e29cd28d1fb56e74057a2a9c64944c3ddffbf8b332367f939484c1ac8225d993beee38e3a719a95b4313f802f0646ac88125480dbfa406025e
7
+ data.tar.gz: 64626b33878613947ae4fa70d33489127ccf03fbe34d57d643488d1788084b2f05f5b9f139d4760451d4abb11c85e55e29cea9096a553743523ec370d381745e
@@ -0,0 +1,25 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
23
+ rubocop.*
24
+ .rubocop.*
25
+ reek.*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --order random
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.2
4
+ script:
5
+ - bundle exec rspec
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+
5
+
6
+ group :test do
7
+ gem 'rspec', '~> 3.1.0'
8
+ gem 'coveralls', require: false
9
+ gem 'simplecov', require: false
10
+ gem 'vcr', '~> 2.9.2'
11
+ gem 'webmock', '>= 1.9'
12
+ end
13
+
14
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Skuli Oskarsson
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,63 @@
1
+ # # Ruby wrapper for the apis.is API
2
+
3
+ This gem wraps the apis.is API in a simple wrapper that is easy to use within your ruby projects
4
+
5
+ ## Installation
6
+
7
+ To install this gem you can either type:
8
+
9
+ gem install apis-is
10
+
11
+ in the terminal or you can add this to your gemfile
12
+
13
+ gem 'apis-is'
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ ## Making requests
20
+
21
+ Using this wrapper is very simple, and you can use it for the following apis.is endpoints
22
+
23
+ + Icelandic Bus System
24
+ + Cars in Iceland
25
+ + Icelandic cinema
26
+ + Icelandic companies
27
+ + Currency in relation to ISK
28
+ + Bicyclecounter in Reykjavik
29
+ + Earthquakes in Iceland
30
+ + International flights in Iceland
31
+ + Icelandic lottery
32
+ + Particulates in Reykjavik
33
+ + Icelandic Weather
34
+ + Icelandic television schedules
35
+
36
+ ## Ruby Example
37
+ ```ruby
38
+ require 'apis'
39
+
40
+ # Fetch all active busses
41
+ response = Apis.busses
42
+
43
+ # prints out all active busses
44
+ puts response[:results]
45
+
46
+ # Fetch all busses by bus number
47
+ response = Apis.busses([1, 4, 14])
48
+
49
+ # prints out active busses number 1, 4 and 14
50
+ puts response[:results]
51
+ ```
52
+
53
+ ## Rails Example
54
+ ```ruby
55
+ # in your Gemfile add
56
+ gem 'apis-is', require: 'apis'
57
+
58
+ # Then in your controller you can do
59
+ @response = Apis.busses
60
+
61
+ # And in your view file
62
+ <%= @response[:results] %>
63
+ ```
@@ -0,0 +1,9 @@
1
+ require 'bundler'
2
+ require 'rspec/core/rake_task'
3
+
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task test: :spec
9
+ task default: :spec
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'apis/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'apis-is'
8
+ spec.version = Apis::VERSION
9
+ spec.authors = ['Skuli Oskarsson']
10
+ spec.email = ['skuli@codeiak.io']
11
+ spec.summary = 'Ruby toolkit for the apis.is API'
12
+ spec.description = 'A simple API wrapper for the apis.is API'
13
+ spec.homepage = 'https://github.com/SkuliOskarsson/apis-is-gem'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($RS)
17
+ spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(/^spec\//)
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.6'
22
+
23
+ spec.add_dependency 'faraday', '~> 0.9', '>= 0.9.0'
24
+
25
+ end
@@ -0,0 +1,27 @@
1
+ require 'apis'
2
+
3
+ # Possible Busses calls
4
+ #
5
+ # Apis.busses <- Fetches all active busses
6
+ # Apis.busses(Array) <- Fetches all busses by bus number
7
+
8
+ response = Apis.busses([1, 4, 14])
9
+
10
+ # prints out active busses number 1, 4 and 14
11
+ puts response[:results]
12
+
13
+ # Result:
14
+ # [
15
+ # {
16
+ # busNr: String,
17
+ # busses: [
18
+ # {
19
+ # unixTime: Integer,
20
+ # x: Float,
21
+ # y: Float,
22
+ # from: String,
23
+ # to: String
24
+ # }
25
+ # ]
26
+ # }
27
+ # ]
@@ -0,0 +1,27 @@
1
+ require 'apis'
2
+
3
+ # Possible Car calls
4
+ #
5
+ # Apis.car(string) <- Searches for car by number
6
+
7
+ response = Apis.car('SomeCarNumber')
8
+
9
+ # prints out all results
10
+ puts response[:results]
11
+
12
+ # Result:
13
+ # [
14
+ # {
15
+ # registryNumber: String,
16
+ # number: String,
17
+ # factoryNumber: String,
18
+ # type: String,
19
+ # subType: String,
20
+ # color: String,
21
+ # registeredAt: String,
22
+ # status: String,
23
+ # nextCheck: String,
24
+ # pollution: String,
25
+ # weight: String
26
+ # }
27
+ # ]
@@ -0,0 +1,32 @@
1
+ require 'apis'
2
+
3
+ # Possible Cinema calls
4
+ #
5
+ # Apis.cinema.showtimes <- Fetches all showtimes in iceland sorted by movies
6
+ # Apis.cinema.theaters <- Fetches all theaters in iceland
7
+
8
+ response = Apis.cinema.showtimes
9
+
10
+ # prints out all results
11
+ puts response[:results]
12
+
13
+ # Result:
14
+ # [
15
+ # {
16
+ # title: String,
17
+ # released: String,
18
+ # restricted: String,
19
+ # imdb: String,
20
+ # imdbLink: String,
21
+ # image: String,
22
+ # showtimes: [
23
+ # {
24
+ # theater: String,
25
+ # schedule: [
26
+ # String,
27
+ # String
28
+ # ]
29
+ # }
30
+ # ]
31
+ # }
32
+ # ]
@@ -0,0 +1,23 @@
1
+ require 'apis'
2
+
3
+ # Possible Company calls
4
+ #
5
+ # Apis.companies.by_name(String) <- Fetches all active busses
6
+ # Apis.companies.by_address(String) <- Fetches all busses by bus number
7
+ # Apis.companies.by_sn(String) <- Fetches all active busses
8
+ # Apis.companies.by_vsknr(String) <- Fetches all busses by bus number
9
+
10
+ response = Apis.companies.by_name('SomeName')
11
+
12
+ # prints out all results
13
+ puts response[:results]
14
+
15
+ # Result:
16
+ # [
17
+ # {
18
+ # name: String,
19
+ # sn: String,
20
+ # active: Integer,
21
+ # address: String
22
+ # }
23
+ # ]
@@ -0,0 +1,25 @@
1
+ require 'apis'
2
+
3
+ # Possible Currency calls
4
+ #
5
+ # Apis.currency.m5 <- Get currency data from M5
6
+ # Apis.currency.arion <- Get currency data from Arion
7
+ # Apis.currency.lb <- Get currency data from Landsbankinn
8
+
9
+ response = Apis.currency.m5
10
+
11
+ # prints out all results
12
+ puts response[:results]
13
+
14
+ # Result:
15
+ # [
16
+ # {
17
+ # shortName: String,
18
+ # longName: String,
19
+ # value: Float,
20
+ # askValue: Integer,
21
+ # bidValue: Integer,
22
+ # changeCur: Float,
23
+ # changePer: Float
24
+ # }
25
+ # ]
@@ -0,0 +1,20 @@
1
+ require 'apis'
2
+
3
+ # Possible CycleCounter calls
4
+ #
5
+ # Apis.cyclecounter <- Fetches data from the CycleCounter in Reykjavik
6
+
7
+ response = Apis.cyclecounter
8
+
9
+ # prints out all results
10
+ puts response[:results]
11
+
12
+ # Result:
13
+ # [
14
+ # {
15
+ # DayCount: String,
16
+ # YearCount: String,
17
+ # Time: String,
18
+ # Date: String
19
+ # }
20
+ # ]
@@ -0,0 +1,23 @@
1
+ require 'apis'
2
+
3
+ # Possible Earthquake calls
4
+ #
5
+ # Apis.earthquake <- Fetches all earthquake activity from the last 48hours
6
+
7
+ response = Apis.earthquake
8
+
9
+ # prints out all results
10
+ puts response[:results]
11
+
12
+ # Result:
13
+ # [
14
+ # {
15
+ # timestamp: Date,
16
+ # latitude: Float,
17
+ # longitude: Float,
18
+ # depth: Float,
19
+ # size: Float,
20
+ # quality: Float,
21
+ # humanReadableLocation: String
22
+ # }
23
+ # ]
@@ -0,0 +1,25 @@
1
+ require 'apis'
2
+
3
+ # Possible Flights calls
4
+ #
5
+ # Apis.flights.departure(lang = 'is') <- Fetches all departure flights
6
+ # Apis.flights.arrivals(lang = 'is') <- Fetches all arrivals
7
+
8
+ response = Apis.flights.departure
9
+
10
+ # prints out all results
11
+ puts response[:results]
12
+
13
+ # Result:
14
+ # [
15
+ # {
16
+ # date: String,
17
+ # flightNumber: String,
18
+ # airline: String,
19
+ # from: String,
20
+ # plannedArrival: String,
21
+ # realArrival: String,
22
+ # status: String,
23
+ # to: String
24
+ # }
25
+ # ]
@@ -0,0 +1,23 @@
1
+ require 'apis'
2
+
3
+ # Possible Lottery calls
4
+ #
5
+ # Apis.lottery.lotto <- Fetch all lotto results
6
+ # Apis.lottery.vikingalotto <- Fetch all vikingalotto results
7
+ # Apis.lottery.eurojackpot <- Fetch all eurojackpot results
8
+
9
+ response = Apis.lottery.lotto
10
+
11
+ # prints out all results
12
+ puts response[:results]
13
+
14
+ # Result:
15
+ # [
16
+ # {
17
+ # date:String,
18
+ # lotto:String,
19
+ # joker:String,
20
+ # prize:String,
21
+ # link:String
22
+ # }
23
+ # ]
@@ -0,0 +1,21 @@
1
+ require 'apis'
2
+
3
+ # Possible Particulates calls
4
+ #
5
+ # Apis.particulates <- Get Particulates data in Reykjavik
6
+
7
+ response = Apis.particulates
8
+
9
+ # prints out all results
10
+ puts response[:results]
11
+
12
+ # Result:
13
+ # [
14
+ # {
15
+ # PM10nuna: String,
16
+ # PM10medaltal: String,
17
+ # Counter: String,
18
+ # Dags: String,
19
+ # nanariuppl: String
20
+ # }
21
+ # ]