openaq-client 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec3e7d818623feb605f38ba22af1b82494a5d1f5e9297f9ea6f3f173805cd0e2
4
- data.tar.gz: 91dc07c5d332c7f51e5ac548f19502507754e401d4123250ae8f188c151cd15c
3
+ metadata.gz: 422aae4f6327654c36b74182e29e7753a64998c44bdcbec5718ebbf6e9ba82e3
4
+ data.tar.gz: ff91978d5b94036ce1544c8f06465bbaff5c0ecb00e5c2f102141eecb24b5694
5
5
  SHA512:
6
- metadata.gz: 76c35714120362bfd846e900037ac384e023c4d3c592bfe6614673fac2584719c4e9ccb64353a37080f0fc2ef08e698c078826171de2a5cce84a634d35e27692
7
- data.tar.gz: 0ea92b91687f3ba1faf2fe327006263199a66bb4f2451187d6438a331a68c2f2521a19e9a0accdf58ef38b6e2f35d35c2c7c984f0603bd5d1325fcc1e4fe4078
6
+ metadata.gz: 34a1c54ef588e67402741379c7684cd921dec39b5f970f97ca3e4a694bad9e93f17493344afefbeb12be2492ec99ccab9f98cfa07d94454d26d7006911752882
7
+ data.tar.gz: 010d1f588d28bd448c6e1eddb2c3effc571c7fda10907ca4a0808321b55779362fc5d19d7b3bd7cadb5f8433fe8098df40098f6c2b5009926226c16c83001be3
@@ -1,5 +1,4 @@
1
- require 'json'
2
- require 'net/http'
1
+ # frozen_string_literal: true
3
2
 
4
3
  require "openaq/client"
5
4
  require "openaq/version"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "openaq/networking"
2
4
 
3
5
  module Openaq
@@ -101,7 +103,7 @@ module Openaq
101
103
  # Provides data about individual measurements
102
104
  #
103
105
  # @param params please read the {https://docs.openaq.org Api Documentation}
104
- # @return [<Hash>]
106
+ # @return [Array<Hash>]
105
107
 
106
108
  # @!method parameters(params = {})
107
109
  # Provides a simple listing of parameters within the platform.
@@ -125,7 +127,5 @@ module Openaq
125
127
  paginated_get("/#{name}", params)
126
128
  end
127
129
  end
128
-
129
-
130
130
  end
131
131
  end
@@ -1,29 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require 'net/http'
5
+
1
6
  module Openaq
2
7
  module Networking
8
+ PARAMS = {}.freeze
3
9
 
4
10
  # @raise [Openaq::Error] if the request is not successful
5
-
6
- def get(path, params={})
7
- uri = URI(Openaq.url + path)
8
- uri.query = URI.encode_www_form(params)
9
-
10
- begin
11
- response = Net::HTTP.get_response(uri)
12
- rescue Timeout::Error, Errno::ECONNREFUSED => e
13
- raise Openaq::Error, e.message
14
- end
15
-
16
- parsed_response = JSON.parse(response.body) rescue { "results" => [] }
17
- if !response.is_a?(Net::HTTPSuccess)
18
- raise Openaq::Error, parsed_response["error"] || "Openaq responded with #{response.code}."
11
+ def get(path, params = PARAMS)
12
+ uri = build_uri(path, params)
13
+ response = Net::HTTP.get_response(uri)
14
+ parsed_response = JSON.parse(response.body)
15
+
16
+ if not response.is_a?(Net::HTTPSuccess)
17
+ err_msg = "#{parsed_response['error']}, #{parsed_response['message']}"
18
+ raise Openaq::Error, err_msg
19
19
  end
20
20
 
21
- parsed_response["results"]
21
+ parsed_response['results']
22
22
  end
23
23
 
24
24
  # @raise [StopIteration] when there are no more results
25
-
26
- def paginated_get(path, params={})
25
+ # @raise [Openaq::Error] if the request is not successful
26
+ def paginated_get(path, params = PARAMS)
27
27
  Enumerator.new do |yielder|
28
28
  page = 1
29
29
  params = { page: page }.merge(params)
@@ -40,5 +40,12 @@ module Openaq
40
40
  end.lazy
41
41
  end
42
42
 
43
+ private
44
+
45
+ def build_uri(path, params)
46
+ uri = URI(Openaq.url + path)
47
+ uri.query = URI.encode_www_form(params)
48
+ uri
49
+ end
43
50
  end
44
51
  end
@@ -1,3 +1,3 @@
1
1
  module Openaq
2
- VERSION = "0.2.0".freeze
2
+ VERSION = "0.3.0".freeze
3
3
  end
@@ -1,8 +1,7 @@
1
1
  RSpec.describe Openaq do
2
-
3
2
  it "has a version number" do
4
3
  expect(Openaq::VERSION).not_to be nil
5
- expect(Openaq::VERSION).to eql "0.2.0"
4
+ expect(Openaq::VERSION).to eql "0.3.0"
6
5
  end
7
6
 
8
7
  describe ".client" do
@@ -10,5 +9,4 @@ RSpec.describe Openaq do
10
9
  expect(Openaq.client).to be_a(Openaq::Client)
11
10
  end
12
11
  end
13
-
14
12
  end
@@ -1,17 +1,11 @@
1
- require "bundler/setup"
1
+ require 'bundler/setup'
2
2
  require 'webmock/rspec'
3
- require "vcr"
4
3
 
5
4
  require File.expand_path('../../lib/openaq', __FILE__)
6
5
 
7
- VCR.configure do |config|
8
- config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
9
- config.hook_into :webmock
10
- end
11
-
12
6
  RSpec.configure do |config|
13
7
  # Enable flags like --only-failures and --next-failure
14
- config.example_status_persistence_file_path = ".rspec_status"
8
+ config.example_status_persistence_file_path = '.rspec_status'
15
9
 
16
10
  # Disable RSpec exposing methods globally on `Module` and `main`
17
11
  config.disable_monkey_patching!
@@ -0,0 +1,6 @@
1
+ require 'vcr'
2
+
3
+ VCR.configure do |config|
4
+ config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
5
+ config.hook_into :webmock
6
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openaq-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yiorgos Michokostas
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-30 00:00:00.000000000 Z
11
+ date: 2020-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,73 +16,73 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: 2.1.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: 2.1.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 13.0.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 13.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: 3.9.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: 3.9.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: vcr
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '4.0'
61
+ version: 6.0.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '4.0'
68
+ version: 6.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.3'
75
+ version: 3.8.3
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.3'
82
+ version: 3.8.3
83
83
  description: 'openaq-client is a Gem for the openaq.org JSON API
84
84
 
85
- '
85
+ '
86
86
  email:
87
87
  - michokostas@gmail.com
88
88
  executables: []
@@ -95,11 +95,12 @@ files:
95
95
  - lib/openaq/version.rb
96
96
  - spec/openaq_spec.rb
97
97
  - spec/spec_helper.rb
98
+ - spec/vcr_helper.rb
98
99
  homepage: https://github.com/gmichokostas/openaq-client
99
100
  licenses:
100
101
  - MIT
101
102
  metadata: {}
102
- post_install_message:
103
+ post_install_message:
103
104
  rdoc_options: []
104
105
  require_paths:
105
106
  - lib
@@ -114,11 +115,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
116
117
  requirements: []
117
- rubyforge_project:
118
- rubygems_version: 2.7.7
119
- signing_key:
118
+ rubygems_version: 3.1.2
119
+ signing_key:
120
120
  specification_version: 4
121
121
  summary: Ruby client for the OpenAQ API
122
122
  test_files:
123
- - spec/openaq_spec.rb
124
123
  - spec/spec_helper.rb
124
+ - spec/openaq_spec.rb
125
+ - spec/vcr_helper.rb