timezonedb-client 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3691fbe6ff2c623df360127f642aeed3e3000ae1
4
+ data.tar.gz: 4e5bd1dd05afcb09730ec9565f32104b539619ed
5
+ SHA512:
6
+ metadata.gz: a8c45cc575c323ef5dc507f2102589f49e8912f108e8871c94030f798972571bb386ed61bd3d394d836446be46aae876a1415611a7e2a09dfeed3e4ed4859500
7
+ data.tar.gz: 363b38412c21fc2470d25b03f7c163841756d5694a0cf09a861bff05bfad716321b724cd2b5b83df56364287d8c69e8b6ca10dfc3aa624bff774fc0638ef6f06
data/.gitignore ADDED
@@ -0,0 +1,33 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Specific to RubyMotion:
13
+ .dat*
14
+ .repl_history
15
+ build/
16
+
17
+ ## Documentation cache and generated files:
18
+ /.yardoc/
19
+ /_yardoc/
20
+ /doc/
21
+ /rdoc/
22
+
23
+ ## Environment normalisation:
24
+ /.bundle/
25
+ /vendor/bundle
26
+ /lib/bundler/man/
27
+
28
+ Gemfile.lock
29
+ .ruby-version
30
+ .ruby-gemset
31
+
32
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
33
+ .rvmrc
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - "2.0.0"
4
+ - "2.1.7"
5
+ - "2.2.3"
6
+ # uncomment this line if your project needs to run something other than `rake`:
7
+ # script: bundle exec rspec spec
8
+
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,37 @@
1
+ # Contributing to Timezonedb Client
2
+
3
+ We're glad you want to make a contribution!
4
+
5
+ Fork this repository and send in a pull request when you're finished with your
6
+ changes. Link any relevant issues in too.
7
+
8
+ Take note of the build status of your pull request, only builds that pass will
9
+ be accepted. Please also keep to our conventions and style so we can keep this
10
+ repository as clean as possible.
11
+
12
+ ## License
13
+
14
+ By contributing your code, you agree to license your contribution under the
15
+ terms of the APLv2: http://www.apache.org/licenses/LICENSE-2.0
16
+
17
+ All files are released with the Apache 2.0 license.
18
+
19
+ If you are adding a new file it should have a header like this:
20
+
21
+ ```
22
+ # Copyright 2015 Skyscanner Limited.
23
+ #
24
+ # Licensed under the Apache License, Version 2.0 (the "License");
25
+ #
26
+ # you may not use this file except in compliance with the License.
27
+ #
28
+ # You may obtain a copy of the License at
29
+ # http://www.apache.org/licenses/LICENSE-2.0
30
+ #
31
+ # Unless required by applicable law or agreed to in writing, software
32
+ # distributed under the License is distributed on an "AS IS" BASIS,
33
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
34
+ #
35
+ # See the License for the specific language governing permissions and
36
+ # limitations under the License.
37
+ ```
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ source 'https://rubygems.org'
18
+
19
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,14 @@
1
+ # License
2
+
3
+ Copyright 2015 Skyscanner Ltd
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
6
+ this software except in compliance with the License. You may obtain a copy of the
7
+ License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed
12
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
13
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
14
+ specific language governing permissions and limitations under the License.
data/README.md ADDED
@@ -0,0 +1,106 @@
1
+ # Timezonedb Client [![Build Status](https://travis-ci.org/Skyscanner/timezonedb-client-ruby.svg?branch=master)](https://travis-ci.org/Skyscanner/timezonedb-client-ruby)
2
+
3
+ A Ruby client for the [timezonedb.com API](https://timezonedb.com/api)
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```
10
+ gem 'timezonedb-client'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ ```
16
+ $ bundle
17
+ ```
18
+
19
+ Or install it yourself as:
20
+
21
+ ```
22
+ $ gem install timezonedb-client
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ Instantiate a new client object providing a Timezonedb API key.
28
+ [Register](https://timezonedb.com/register) to get your API key
29
+
30
+ ```
31
+ client = Timezonedb::Client.new(api_key)
32
+ ```
33
+
34
+ Search for the timezone providing latitude and longitude
35
+
36
+ ```
37
+ tz = client.search_by_coords("41.3833", "2.1833")
38
+ tz.abbreviation
39
+ => "CET"
40
+ tz.country_code
41
+ => "ES"
42
+ tz.dst
43
+ => "0"
44
+ tz.gmt_offset
45
+ => "3600"
46
+ tz.message
47
+ => ""
48
+ tz.timestamp
49
+ => 1447847197
50
+ tz.zone_name
51
+ => "Europe/Madrid"
52
+ ```
53
+
54
+ ## Contributing
55
+
56
+ We're glad you want to make a contribution!
57
+
58
+ Fork this repository and send in a pull request when you're finished with your
59
+ changes. Link any relevant issues in too.
60
+
61
+ Take note of the build status of your pull request, only builds that pass will
62
+ be accepted. Please also keep to our conventions and style so we can keep this
63
+ repository as clean as possible.
64
+
65
+ By contributing your code, you agree to license your contribution under the
66
+ terms of the APLv2: http://www.apache.org/licenses/LICENSE-2.0
67
+
68
+ All files are released with the Apache 2.0 license.
69
+
70
+ If you are adding a new file it should have a header like this:
71
+
72
+ ```
73
+ # Copyright 2015 Skyscanner Limited.
74
+ #
75
+ # Licensed under the Apache License, Version 2.0 (the "License");
76
+ #
77
+ # you may not use this file except in compliance with the License.
78
+ #
79
+ # You may obtain a copy of the License at
80
+ # http://www.apache.org/licenses/LICENSE-2.0
81
+ #
82
+ # Unless required by applicable law or agreed to in writing, software
83
+ # distributed under the License is distributed on an "AS IS" BASIS,
84
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
85
+ #
86
+ # See the License for the specific language governing permissions and
87
+ # limitations under the License.
88
+ ```
89
+
90
+ ## License
91
+
92
+ Copyright 2015 Skyscanner Limited.
93
+
94
+ Licensed under the Apache License, Version 2.0 (the "License");
95
+
96
+ you may not use this software except in compliance with the License.
97
+
98
+ You may obtain a copy of the License at
99
+ http://www.apache.org/licenses/LICENSE-2.0
100
+
101
+ Unless required by applicable law or agreed to in writing, software
102
+ distributed under the License is distributed on an "AS IS" BASIS,
103
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
104
+
105
+ See the License for the specific language governing permissions and
106
+ limitations under the License.
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ begin
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new(:spec) do |t|
4
+ t.pattern = Dir.glob('spec/**/*_spec.rb')
5
+ end
6
+ task :default => :spec
7
+ rescue LoadError
8
+ end
@@ -0,0 +1,46 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'timezonedb/client/version'
18
+ require 'timezonedb/client/response'
19
+ require 'timezonedb/client/error'
20
+
21
+ require 'rest-client'
22
+
23
+ module Timezonedb
24
+ class Client
25
+ URL = 'http://api.timezonedb.com'
26
+
27
+ def initialize(api_key)
28
+ @api_key = api_key
29
+ end
30
+
31
+ def search_by_coords(latitude, longitude)
32
+ params = { key: @api_key, lat: latitude, lng: longitude, format: 'json' }
33
+
34
+ response = RestClient.get URL, params: params
35
+ response_hash = JSON.parse(response)
36
+
37
+ if response_hash['status'] == 'OK'
38
+ Response.new(response_hash)
39
+ else
40
+ fail Timezonedb::Client::Error.new(response_hash['message'])
41
+ end
42
+ rescue RestClient::Exception => e
43
+ raise Timezonedb::Client::Error.new(e.inspect)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,22 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ module Timezonedb
18
+ class Client
19
+ class Error < StandardError
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,34 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ module Timezonedb
18
+ class Client
19
+ class Response
20
+ attr_reader :status, :message, :country_code, :zone_name,
21
+ :abbreviation, :gmt_offset, :dst, :timestamp
22
+
23
+ def initialize(response_hash)
24
+ @message = response_hash['message']
25
+ @country_code = response_hash['countryCode']
26
+ @zone_name = response_hash['zoneName']
27
+ @abbreviation = response_hash['abbreviation']
28
+ @gmt_offset = response_hash['gmtOffset']
29
+ @dst = response_hash['dst']
30
+ @timestamp = response_hash['timestamp']
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,21 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ module Timezonedb
18
+ class Client
19
+ VERSION = '0.1.0'
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'timezonedb/client'
@@ -0,0 +1,25 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'rack/test'
18
+ require 'rspec'
19
+ require 'webmock/rspec'
20
+
21
+ require_relative '../lib/timezonedb_client.rb'
22
+
23
+ RSpec.configure do |conf|
24
+ conf.include Rack::Test::Methods
25
+ end
@@ -0,0 +1,72 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require_relative '../../spec_helper'
18
+
19
+ describe Timezonedb::Client::Response do
20
+ describe '#initialize' do
21
+ let(:message) { 'a message' }
22
+ let(:country_code) { 'GR' }
23
+ let(:zone_name) { 'Europe\/Athens' }
24
+ let(:abbreviation) { 'EEST' }
25
+ let(:gmt_offset) { '10800' }
26
+ let(:dst) { '1' }
27
+ let(:timestamp) { 1_429_107_488 }
28
+
29
+ let(:response_hash) do
30
+ {
31
+ 'status' => 'OK',
32
+ 'message' => message,
33
+ 'countryCode' => country_code,
34
+ 'zoneName' => zone_name,
35
+ 'abbreviation' => abbreviation,
36
+ 'gmtOffset' => gmt_offset,
37
+ 'dst' => dst,
38
+ 'timestamp' => timestamp
39
+ }
40
+ end
41
+
42
+ subject { Timezonedb::Client::Response.new(response_hash) }
43
+
44
+ it 'sets the correct message' do
45
+ expect(subject.message).to eq message
46
+ end
47
+
48
+ it 'sets the correct country_code' do
49
+ expect(subject.country_code).to eq country_code
50
+ end
51
+
52
+ it 'sets the correct zone_name' do
53
+ expect(subject.zone_name).to eq zone_name
54
+ end
55
+
56
+ it 'sets the correct abbreviation' do
57
+ expect(subject.abbreviation).to eq abbreviation
58
+ end
59
+
60
+ it 'sets the correct gmt_offset' do
61
+ expect(subject.gmt_offset).to eq gmt_offset
62
+ end
63
+
64
+ it 'sets the correct dst' do
65
+ expect(subject.dst).to eq dst
66
+ end
67
+
68
+ it 'sets the correct timestamp' do
69
+ expect(subject.timestamp).to eq timestamp
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,146 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require_relative '../spec_helper'
18
+
19
+ describe Timezonedb::Client do
20
+ describe '#execute' do
21
+ let(:url) { 'http://api.timezonedb.com' }
22
+ let(:api_key) { 'api_key_92834' }
23
+ let(:latitude) { 40.91331 }
24
+ let(:longitude) { 24.61922 }
25
+ let(:query) do
26
+ {
27
+ key: api_key,
28
+ lat: latitude,
29
+ lng: longitude,
30
+ format: 'json'
31
+ }
32
+ end
33
+
34
+ let(:status) { 'OK' }
35
+ let(:message) { 'an OK message' }
36
+ let(:country_code) { 'GR' }
37
+ let(:zone_name) { 'Europe\/Athens' }
38
+ let(:abbreviation) { 'EEST' }
39
+ let(:gmt_offset) { '10800' }
40
+ let(:dst) { '1' }
41
+ let(:timestamp) { 1_429_107_488 }
42
+ let(:correct_response_body) do
43
+ {
44
+ 'status' => status,
45
+ 'message' => message,
46
+ 'countryCode' => country_code,
47
+ 'zoneName' => zone_name,
48
+ 'abbreviation' => abbreviation,
49
+ 'gmtOffset' => gmt_offset,
50
+ 'dst' => dst,
51
+ 'timestamp' => timestamp
52
+ }
53
+ end
54
+
55
+ subject { Timezonedb::Client.new(api_key).search_by_coords(latitude, longitude) }
56
+
57
+ context 'when successful request' do
58
+ let(:response_body) { correct_response_body.to_json }
59
+
60
+ before(:each) do
61
+ stub_request(:get, url)
62
+ .with(query: query)
63
+ .to_return(status: 200,
64
+ body: response_body)
65
+ end
66
+
67
+ it 'should return response with correct message' do
68
+ expect(subject.message).to eq message
69
+ end
70
+
71
+ it 'should return response with correct country_code' do
72
+ expect(subject.country_code).to eq country_code
73
+ end
74
+
75
+ it 'should return response with correct zone_name' do
76
+ expect(subject.zone_name).to eq zone_name
77
+ end
78
+
79
+ it 'should return response with correct abbreviation' do
80
+ expect(subject.abbreviation).to eq abbreviation
81
+ end
82
+
83
+ it 'should return response with correct gmt_offset' do
84
+ expect(subject.gmt_offset).to eq gmt_offset
85
+ end
86
+
87
+ it 'should return response with correct dst' do
88
+ expect(subject.dst).to eq dst
89
+ end
90
+
91
+ it 'should return response with correct timestamp' do
92
+ expect(subject.timestamp).to eq timestamp
93
+ end
94
+ end
95
+
96
+ context 'when unsuccessful requests' do
97
+ shared_examples 'an error raiser' do
98
+ it 'raises an Error' do
99
+ expect { subject }.to raise_error(Timezonedb::Client::Error)
100
+ end
101
+ end
102
+
103
+ context 'when successful response code' do
104
+ let(:response_body) do
105
+ correct_response_body['status'] = 'NOT_OK'
106
+ correct_response_body.to_json
107
+ end
108
+
109
+ before(:each) do
110
+ stub_request(:get, url)
111
+ .with(query: query)
112
+ .to_return(status: 200,
113
+ body: response_body)
114
+ end
115
+
116
+ it_behaves_like 'an error raiser'
117
+ end
118
+
119
+ context 'when failure response code' do
120
+ let(:response_body) { 'unsuccessful request body :(' }
121
+
122
+ context 'when 400 responses' do
123
+ before(:each) do
124
+ stub_request(:get, url)
125
+ .with(query: query)
126
+ .to_return(status: 400,
127
+ body: response_body)
128
+ end
129
+
130
+ it_behaves_like 'an error raiser'
131
+ end
132
+
133
+ context 'when 500 responses' do
134
+ before(:each) do
135
+ stub_request(:get, url)
136
+ .with(query: query)
137
+ .to_return(status: 500,
138
+ body: response_body)
139
+ end
140
+
141
+ it_behaves_like 'an error raiser'
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,46 @@
1
+ # Copyright 2015 Skyscanner Limited.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ #
5
+ # you may not use this file except in compliance with the License.
6
+ #
7
+ # You may obtain a copy of the License at
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ #
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ lib = File.expand_path('../lib', __FILE__)
18
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
19
+ require 'timezonedb/client/version'
20
+
21
+ Gem::Specification.new do |s|
22
+ s.name = 'timezonedb-client'
23
+ s.version = Timezonedb::Client::VERSION
24
+ s.date = '2015-11-18'
25
+ s.summary = 'Timezonedb Client'
26
+ s.description = 'A client for accessing the timezonedb.com API'
27
+ s.authors = ['Kostis Dadamis', 'Emili Parreno']
28
+ s.email = ['kostis.dadamis@skyscanner.net', 'emili.parreno@skysacnenr.net']
29
+ s.homepage = 'https://github.com/Skyscanner/timezonedb-client-ruby'
30
+ s.license = 'Apache License, Version 2.0'
31
+
32
+ s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
33
+ s.test_files = s.files.grep(%r{^spec/})
34
+ s.require_paths = ['lib']
35
+ s.required_ruby_version = '>= 2.0.0'
36
+
37
+ s.add_runtime_dependency 'rest-client', '~> 1.8.0'
38
+ s.add_runtime_dependency 'json', '~> 1.8.0'
39
+
40
+ s.add_development_dependency 'rake'
41
+ s.add_development_dependency 'rspec'
42
+ s.add_development_dependency 'pry-byebug'
43
+ s.add_development_dependency 'rubocop'
44
+ s.add_development_dependency 'rack-test'
45
+ s.add_development_dependency 'webmock'
46
+ end
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: timezonedb-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kostis Dadamis
8
+ - Emili Parreno
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-11-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rest-client
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 1.8.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 1.8.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: json
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 1.8.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 1.8.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: pry-byebug
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rubocop
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rack-test
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: webmock
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ description: A client for accessing the timezonedb.com API
127
+ email:
128
+ - kostis.dadamis@skyscanner.net
129
+ - emili.parreno@skysacnenr.net
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".gitignore"
135
+ - ".rspec"
136
+ - ".travis.yml"
137
+ - CONTRIBUTING.md
138
+ - Gemfile
139
+ - LICENSE.md
140
+ - README.md
141
+ - Rakefile
142
+ - lib/timezonedb/client.rb
143
+ - lib/timezonedb/client/error.rb
144
+ - lib/timezonedb/client/response.rb
145
+ - lib/timezonedb/client/version.rb
146
+ - lib/timezonedb_client.rb
147
+ - spec/spec_helper.rb
148
+ - spec/timezonedb/client/response_spec.rb
149
+ - spec/timezonedb/client_spec.rb
150
+ - timezonedb-client.gemspec
151
+ homepage: https://github.com/Skyscanner/timezonedb-client-ruby
152
+ licenses:
153
+ - Apache License, Version 2.0
154
+ metadata: {}
155
+ post_install_message:
156
+ rdoc_options: []
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: 2.0.0
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ requirements: []
170
+ rubyforge_project:
171
+ rubygems_version: 2.4.5
172
+ signing_key:
173
+ specification_version: 4
174
+ summary: Timezonedb Client
175
+ test_files:
176
+ - spec/spec_helper.rb
177
+ - spec/timezonedb/client/response_spec.rb
178
+ - spec/timezonedb/client_spec.rb