eztz 1.0.0 → 2.0.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
- SHA1:
3
- metadata.gz: 664dcc7aa9f9ccd683c49115e13ad195b6328881
4
- data.tar.gz: 2984feb837d7585f699929a727f9cd1172dd2f4c
2
+ SHA256:
3
+ metadata.gz: aac0186b216b00582be61d8225b7546bc14ae1848eb347a532a04ca4d86142c2
4
+ data.tar.gz: 87d018cd6c18a45bc0ae5b141585ae122f1d7776028c2563a63ff2880adacf12
5
5
  SHA512:
6
- metadata.gz: 0d6b729d39b0f33ddbac8dbbed358065da10c03ccff53a63ba0d9c084d5b3afb4854aed02532f4ad0ad7f33e96c431e853c751dc8f05d77d571cdabb389d27a2
7
- data.tar.gz: 6e5a6e2cea8e2349d690363bfabd941f4575f13dc78d55e13bcf51c6aad8abfa7c033746e4771cafcb198e89c592f49b6d690fbf942e820f049426143bb0fccc
6
+ metadata.gz: f11c757202ea3c80d0a579be9a3eaca66e017e59ecee708373ee25871f13c38ce635841c5872139347e64cf1a3ab7c3f1b906d7d6009e5ea68bff52743e52e54
7
+ data.tar.gz: 2fe7186d7b8d622a3399e1f717485775a0b61a4db4c0fa870513427fd6666aac50f34126b070d8bb05a5112ec5e9d3f0c31d746bd9544d177243e0aa5d2013e8
@@ -0,0 +1,31 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ strategy:
12
+ matrix:
13
+ os: [ubuntu-latest]
14
+ ruby-version: ["2.7", "3.0", "3.1", "3.2"]
15
+
16
+ runs-on: ${{ matrix.os }}
17
+
18
+ steps:
19
+ - uses: actions/checkout@v3
20
+ - name: Set up Ruby ${{ matrix.ruby-version }}
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true
25
+ - name: Run tests for Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
26
+ uses: paambaati/codeclimate-action@v3.0.0
27
+ env:
28
+ CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
29
+ with:
30
+ coverageCommand: bundle exec rake
31
+ coverageLocations: ${{github.workspace}}/coverage/coverage.json:simplecov
data/.gitignore CHANGED
@@ -2,8 +2,10 @@
2
2
  /.yardoc
3
3
  /Gemfile.lock
4
4
  /_yardoc/
5
+ /checksums/
5
6
  /coverage/
6
7
  /doc/
7
8
  /pkg/
8
9
  /spec/reports/
9
10
  /tmp/
11
+ .tool-versions
data/.standard.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby_version: 2.7
2
+
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
- source 'https://rubygems.org'
2
+
3
+ source "https://rubygems.org"
3
4
 
4
5
  # Specify your gem's dependencies in eztz.gemspec
5
6
  gemspec
data/README.md CHANGED
@@ -1,11 +1,17 @@
1
1
  # Eztz
2
2
 
3
+ [![Tests](https://github.com/cmason/eztz/actions/workflows/test.yml/badge.svg)](https://github.com/cmason/eztz/actions/workflows/test.yml)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/0ffbd44773bb2ee6f9ed/maintainability)](https://codeclimate.com/github/cmason/eztz/maintainability)
5
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/0ffbd44773bb2ee6f9ed/test_coverage)](https://codeclimate.com/github/cmason/eztz/test_coverage)
6
+ [![Gem Version](https://badge.fury.io/rb/eztz.png)](http://badge.fury.io/rb/eztz)
7
+
3
8
  Ruby wrapper for the [Google Time Zone API](https://developers.google.com/maps/documentation/timezone)
4
9
 
5
- [![Code Climate](https://codeclimate.com/github/cmason/eztz.png)](https://codeclimate.com/github/cmason/eztz)
6
- [![Build Status](https://travis-ci.org/cmason/eztz.png?branch=master)](https://travis-ci.org/cmason/eztz)
7
- [![Gem Version](https://badge.fury.io/rb/eztz.png)](http://badge.fury.io/rb/eztz)
10
+ ## Requirements
8
11
 
12
+ - Ruby >= 2.7
13
+
14
+ Other versions of Ruby may work, but the gem is tested against the above versions.
9
15
  ## Installation
10
16
 
11
17
  Add this line to your application's Gemfile:
@@ -24,12 +30,20 @@ Or install it yourself as:
24
30
 
25
31
  ## Usage
26
32
 
33
+ An API key is required to access the Google Time Zone API. You can create a new
34
+ API key from the [Google Cloud Console](https://developers.google.com/maps/documentation/timezone/get-api-key).
35
+
36
+ # Set your API key
37
+ Eztz.api_key = 'YOUR_API_KEY'
38
+
39
+ # Pass location coordinates as a string
27
40
  $ Eztz.timezone(location: '29.65,-95.28')
28
41
 
29
42
  => #<Eztz::TimeZoneResponse:0x007fe71ba2df78 @timestamp=1488834591, @dst_offset=0, @error_message=nil, @raw_offset=-21600, @status="OK", @id="America/Chicago", @name="Central Standard Time">
30
43
 
31
44
  or
32
45
 
46
+ # Pass location coordinates as an array
33
47
  $ Eztz.timezone(location: [29.65, -95.28])
34
48
 
35
49
  => #<Eztz::TimeZoneResponse:0x007fe71ba2df78 @timestamp=1488834591, @dst_offset=0, @error_message=nil, @raw_offset=-21600, @status="OK", @id="America/Chicago", @name="Central Standard Time">
data/Rakefile CHANGED
@@ -1,11 +1,13 @@
1
1
  # frozen_string_literal: true
2
- require 'bundler/gem_tasks'
3
- require 'rake/testtask'
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+ require "standard/rake"
4
6
 
5
7
  Rake::TestTask.new(:test) do |t|
6
- t.libs << 'test'
7
- t.libs << 'lib'
8
- t.test_files = FileList['test/**/*_test.rb']
8
+ t.libs << "test"
9
+ t.libs << "lib"
10
+ t.test_files = FileList["test/**/*_test.rb"]
9
11
  end
10
12
 
11
13
  task default: :test
data/eztz.gemspec CHANGED
@@ -1,33 +1,33 @@
1
1
  # frozen_string_literal: true
2
- lib = File.expand_path('../lib', __FILE__)
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'eztz/version'
5
+ require "eztz/version"
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = 'eztz'
8
- spec.version = Eztz::VERSION
9
- spec.authors = ['Chris Mason']
10
- spec.email = ['chris@chaione.com']
8
+ spec.name = "eztz"
9
+ spec.version = Eztz::VERSION
10
+ spec.authors = ["Chris Mason"]
11
+ spec.email = ["chris@chaione.com"]
11
12
 
12
- spec.summary = 'Ruby wrapper for the Google Time Zone API'
13
- spec.description = spec.summary
14
- spec.homepage = 'https://github.com/cmason/eztz'
15
- spec.license = 'MIT'
13
+ spec.summary = "Ruby wrapper for the Google Time Zone API"
14
+ spec.description = spec.summary
15
+ spec.homepage = "https://github.com/cmason/eztz"
16
+ spec.license = "MIT"
16
17
 
17
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
19
  f.match(%r{^(test|spec|features)/})
19
20
  end
20
- spec.bindir = 'exe'
21
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ['lib']
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ["lib"]
23
24
 
24
- spec.required_ruby_version = '>= 2.1'
25
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7")
25
26
 
26
- spec.add_development_dependency 'bundler', '~> 1.14'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'minitest', '~> 5.0'
29
- spec.add_development_dependency 'coveralls'
30
- spec.add_development_dependency 'codeclimate-test-reporter'
31
- spec.add_development_dependency 'rubocop', '~> 0.47'
32
- spec.add_development_dependency 'webmock', '~> 2.3'
27
+ spec.add_development_dependency "bundler", ">= 2.2.33"
28
+ spec.add_development_dependency "minitest"
29
+ spec.add_development_dependency "rake", ">= 12.3.3"
30
+ spec.add_development_dependency "simplecov", ">= 0.22.0"
31
+ spec.add_development_dependency "standard"
32
+ spec.add_development_dependency "webmock"
33
33
  end
data/lib/eztz/client.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'net/http'
3
- require 'json'
2
+
3
+ require "net/http"
4
+ require "json"
4
5
 
5
6
  module Eztz
6
7
  # The Google Time Zone API client.
@@ -12,7 +13,7 @@ module Eztz
12
13
 
13
14
  def initialize(api_key: Eztz.api_key)
14
15
  @api_key = api_key
15
- @uri = URI('https://maps.googleapis.com/maps/api/timezone/json')
16
+ @uri = URI("https://maps.googleapis.com/maps/api/timezone/json")
16
17
  end
17
18
 
18
19
  # Gets timezone information for a location on earth,
@@ -32,7 +33,7 @@ module Eztz
32
33
  # @raise [ArgumentError] if location is not provided
33
34
  # @raise [ApiError] if the API returns an error response.
34
35
  # @return [Eztz::TimeZoneResponse] the resulting timezone data.
35
- def timezone(location:, timestamp: Time.now.utc.to_i, language: 'en')
36
+ def timezone(location:, timestamp: Time.now.utc.to_i, language: "en")
36
37
  uri.query = query_params(location, timestamp, language)
37
38
  res = Net::HTTP.get_response(uri)
38
39
  raise ApiError, res.body unless res.is_a?(Net::HTTPSuccess)
@@ -45,7 +46,7 @@ module Eztz
45
46
 
46
47
  def query_params(location, timestamp, language)
47
48
  URI.encode_www_form(
48
- location: (location.respond_to?(:join) ? location.join(',') : location),
49
+ location: (location.respond_to?(:join) ? location.join(",") : location),
49
50
  timestamp: timestamp,
50
51
  language: language,
51
52
  key: api_key
data/lib/eztz/errors.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require 'json'
2
+
3
+ require "json"
3
4
 
4
5
  module Eztz
5
6
  # Thrown when the API returns an error response.
data/lib/eztz/response.rb CHANGED
@@ -36,7 +36,7 @@ module Eztz
36
36
  # @!attribute timestamp [r]
37
37
  # @return [Integer] The timestamp used in the request.
38
38
  attr_reader :dst_offset, :error_message, :id, :name,
39
- :raw_offset, :status, :timestamp
39
+ :raw_offset, :status, :timestamp
40
40
 
41
41
  # @param timestamp [Integer] The timestamp used in the request
42
42
  # @param response [Hash] The parsed JSON response from the api call
@@ -44,13 +44,13 @@ module Eztz
44
44
  @timestamp = timestamp
45
45
  @dst_offset, @error_message, @raw_offset, @status, @id, @name =
46
46
  response.values_at(
47
- 'dstOffset', 'error_message', 'rawOffset', 'status', 'timeZoneId',
48
- 'timeZoneName'
47
+ "dstOffset", "error_message", "rawOffset", "status", "timeZoneId",
48
+ "timeZoneName"
49
49
  )
50
50
  end
51
51
 
52
52
  def success?
53
- status == 'OK'
53
+ status == "OK"
54
54
  end
55
55
 
56
56
  # The local time of the location is the sum of the :timestamp,
@@ -64,13 +64,13 @@ module Eztz
64
64
  # @return [Hash]
65
65
  def to_h
66
66
  {
67
- dst_offset: dst_offset,
67
+ dst_offset: dst_offset,
68
68
  error_message: error_message,
69
- id: id,
70
- name: name,
71
- raw_offset: raw_offset,
72
- status: status,
73
- timestamp: timestamp
69
+ id: id,
70
+ name: name,
71
+ raw_offset: raw_offset,
72
+ status: status,
73
+ timestamp: timestamp
74
74
  }
75
75
  end
76
76
  end
data/lib/eztz/version.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Eztz
3
- VERSION = '1.0.0'.freeze
4
+ VERSION = "2.0.0"
4
5
  end
data/lib/eztz.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
- require 'eztz/client'
3
- require 'eztz/errors'
4
- require 'eztz/response'
5
- require 'eztz/version'
2
+
3
+ require "eztz/client"
4
+ require "eztz/errors"
5
+ require "eztz/response"
6
+ require "eztz/version"
6
7
 
7
8
  # Ruby wrapper for the Google Time Zone API.
8
9
  # @example Sample usage
@@ -58,10 +59,10 @@ module Eztz
58
59
  # @dst_offset=3600, @error_message=nil, @raw_offset=36000,
59
60
  # @status="OK", @id="Australia/Sydney",
60
61
  # @name="Australian Eastern Daylight Time">
61
- def timezone(location:, timestamp: Time.now.utc.to_i, language: 'en')
62
+ def timezone(location:, timestamp: Time.now.utc.to_i, language: "en")
62
63
  client.timezone(location: location,
63
- timestamp: timestamp,
64
- language: language)
64
+ timestamp: timestamp,
65
+ language: language)
65
66
  end
66
67
  end
67
68
  end
metadata CHANGED
@@ -1,73 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eztz
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Mason
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-07 00:00:00.000000000 Z
11
+ date: 2023-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.14'
19
+ version: 2.2.33
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.14'
26
+ version: 2.2.33
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
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: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: minitest
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '5.0'
47
+ version: 12.3.3
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: '5.0'
54
+ version: 12.3.3
55
55
  - !ruby/object:Gem::Dependency
56
- name: coveralls
56
+ name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.22.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: '0'
68
+ version: 0.22.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: codeclimate-test-reporter
70
+ name: standard
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -80,34 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.47'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.47'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: webmock
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - "~>"
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: '2.3'
89
+ version: '0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - "~>"
94
+ - - ">="
109
95
  - !ruby/object:Gem::Version
110
- version: '2.3'
96
+ version: '0'
111
97
  description: Ruby wrapper for the Google Time Zone API
112
98
  email:
113
99
  - chris@chaione.com
@@ -115,16 +101,12 @@ executables: []
115
101
  extensions: []
116
102
  extra_rdoc_files: []
117
103
  files:
118
- - ".coveralls.yml"
119
104
  - ".editorconfig"
105
+ - ".github/workflows/test.yml"
120
106
  - ".gitignore"
121
- - ".rspec"
122
- - ".rubocop.yml"
123
- - ".ruby-version"
124
- - ".travis.yml"
107
+ - ".standard.yml"
125
108
  - CODE_OF_CONDUCT.md
126
109
  - Gemfile
127
- - LICENSE
128
110
  - LICENSE.txt
129
111
  - README.md
130
112
  - Rakefile
@@ -140,7 +122,7 @@ homepage: https://github.com/cmason/eztz
140
122
  licenses:
141
123
  - MIT
142
124
  metadata: {}
143
- post_install_message:
125
+ post_install_message:
144
126
  rdoc_options: []
145
127
  require_paths:
146
128
  - lib
@@ -148,16 +130,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
130
  requirements:
149
131
  - - ">="
150
132
  - !ruby/object:Gem::Version
151
- version: '2.1'
133
+ version: '2.7'
152
134
  required_rubygems_version: !ruby/object:Gem::Requirement
153
135
  requirements:
154
136
  - - ">="
155
137
  - !ruby/object:Gem::Version
156
138
  version: '0'
157
139
  requirements: []
158
- rubyforge_project:
159
- rubygems_version: 2.6.8
160
- signing_key:
140
+ rubygems_version: 3.4.6
141
+ signing_key:
161
142
  specification_version: 4
162
143
  summary: Ruby wrapper for the Google Time Zone API
163
144
  test_files: []
data/.coveralls.yml DELETED
@@ -1,2 +0,0 @@
1
- service_name: travis-ci
2
-
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --format nested --colour
data/.rubocop.yml DELETED
@@ -1,14 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - 'vendor/**/*'
4
- - 'test/fixtures/**/*'
5
- - 'test/**/*'
6
- - 'tmp/**/*'
7
- TargetRubyVersion: 2.1
8
-
9
- Style/Encoding:
10
- EnforcedStyle: when_needed
11
- Enabled: true
12
-
13
- Style/FrozenStringLiteralComment:
14
- EnforcedStyle: always
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.4.0
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.0
5
- - 2.3.3
6
- - 2.2
7
- - 2.1
8
- before_install: gem install bundler -v 1.14.5
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2013 Chris Mason
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.