openaq-client 0.2.0 → 0.3.0

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 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