google_timezone 0.0.1 → 0.0.3
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 +7 -0
- data/README.md +11 -1
- data/lib/google_timezone.rb +7 -7
- data/lib/google_timezone/base.rb +5 -2
- data/lib/google_timezone/version.rb +1 -1
- data/spec/google_timezone_spec.rb +20 -4
- metadata +12 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6a7922f88d3b6882b797df4a60ed586c5b84b3bb
|
4
|
+
data.tar.gz: e629e85380e69c9d6e1a6fbeb19be2f9b974cc3e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bba8f7376e924527ae559ff0f9b28b8569be50ec271229e13225e87885a9085e4d8d3981ab169ceb46a5e1be2ea0f2ad46a84de8da33d4ef2d481dc84e9eee49
|
7
|
+
data.tar.gz: d46c902fade66c349023ea5df5993c93846b46292c9d79e6ec901168267355128098b408f0c157223b422cd4eade19e48fe3f8ece594f0e82e58ed72528bcc25
|
data/README.md
CHANGED
@@ -18,9 +18,19 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
You can pass latitude and longitude to gem in several ways: with array or separated values.
|
22
|
+
|
23
|
+
GoogleTimezone.fetch([latitude, longitude])
|
24
|
+
GoogleTimezone.fetch(latitude, longitude)
|
25
|
+
|
26
|
+
Any other options which are described in google's documentation you can pass via options hash
|
27
|
+
|
28
|
+
GoogleTimezone.fetch(latitude, longitude, language: 'en', signature: 'key')
|
29
|
+
|
21
30
|
It uses latitude and longitude to retrieve timezone info.
|
22
31
|
|
23
|
-
GoogleTimezone.fetch(50.1196004, 8.679918299999999)
|
32
|
+
result = GoogleTimezone.fetch(50.1196004, 8.679918299999999)
|
33
|
+
result.time_zone_name => 'Europe/Berlin'
|
24
34
|
|
25
35
|
It will get `GoogleTimezone::Result` object which maps major google api responce items named in snake case.
|
26
36
|
More information [here](https://developers.google.com/maps/documentation/timezone/)
|
data/lib/google_timezone.rb
CHANGED
@@ -3,13 +3,13 @@ require 'google_timezone/base'
|
|
3
3
|
require 'google_timezone/result'
|
4
4
|
|
5
5
|
module GoogleTimezone
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
class << self
|
7
|
+
def fetch(*args)
|
8
|
+
Base.new(args).fetch
|
9
|
+
end
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
def fetch!(*args)
|
12
|
+
Base.new(args).fetch!
|
13
|
+
end
|
12
14
|
end
|
13
|
-
|
14
|
-
module_function :fetch, :fetch!
|
15
15
|
end
|
data/lib/google_timezone/base.rb
CHANGED
@@ -2,8 +2,11 @@ require 'json'
|
|
2
2
|
require 'open-uri'
|
3
3
|
|
4
4
|
module GoogleTimezone
|
5
|
+
|
6
|
+
class Error < StandardError; end
|
7
|
+
|
5
8
|
class Base
|
6
|
-
@allowed_params = [:language, :sensor, :timestamp, :client, :signature]
|
9
|
+
@allowed_params = [:language, :sensor, :timestamp, :client, :signature, :key]
|
7
10
|
|
8
11
|
def initialize(*args)
|
9
12
|
@lat, @lon = if args.first.is_a? Array
|
@@ -24,7 +27,7 @@ module GoogleTimezone
|
|
24
27
|
|
25
28
|
def fetch!
|
26
29
|
result = fetch
|
27
|
-
|
30
|
+
raise(GoogleTimezone::Error.new(result.result)) unless result.success?
|
28
31
|
result
|
29
32
|
end
|
30
33
|
|
@@ -2,14 +2,30 @@ require 'google_timezone'
|
|
2
2
|
|
3
3
|
describe GoogleTimezone do
|
4
4
|
describe 'initialize' do
|
5
|
+
before { GoogleTimezone::Base.any_instance.should_receive(:fetch).with(no_args).and_return(GoogleTimezone::Result.new(0)) }
|
6
|
+
|
5
7
|
it 'correct with separate lat and lon' do
|
6
|
-
g = GoogleTimezone
|
7
|
-
g.should be_an_instance_of(GoogleTimezone::
|
8
|
+
g = GoogleTimezone.fetch(0,0)
|
9
|
+
g.should be_an_instance_of(GoogleTimezone::Result)
|
8
10
|
end
|
9
11
|
|
10
12
|
it 'correct with array lat and lon' do
|
11
|
-
g = GoogleTimezone
|
12
|
-
g.should be_an_instance_of(GoogleTimezone::
|
13
|
+
g = GoogleTimezone.fetch([0,0])
|
14
|
+
g.should be_an_instance_of(GoogleTimezone::Result)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#fetch!' do
|
19
|
+
describe 'if result is not success' do
|
20
|
+
let(:result) { GoogleTimezone::Result.new({}) }
|
21
|
+
|
22
|
+
before { result.stub!(:success?) { false } }
|
23
|
+
before { result.stub!(:result) { 'error message' } }
|
24
|
+
before { GoogleTimezone::Base.any_instance.stub(:fetch) { result } }
|
25
|
+
|
26
|
+
it 'should raise error' do
|
27
|
+
expect { GoogleTimezone.fetch!(0,0) }.to raise_error(GoogleTimezone::Error)
|
28
|
+
end
|
13
29
|
end
|
14
30
|
end
|
15
31
|
end
|
metadata
CHANGED
@@ -1,46 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_timezone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- sck-v
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-04-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec-mocks
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
description: Get timezone info by known coordinates
|
@@ -65,29 +60,29 @@ files:
|
|
65
60
|
- spec/google_timezone_spec.rb
|
66
61
|
homepage: ''
|
67
62
|
licenses: []
|
63
|
+
metadata: {}
|
68
64
|
post_install_message:
|
69
65
|
rdoc_options: []
|
70
66
|
require_paths:
|
71
67
|
- lib
|
72
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
69
|
requirements:
|
75
|
-
- -
|
70
|
+
- - '>='
|
76
71
|
- !ruby/object:Gem::Version
|
77
72
|
version: '0'
|
78
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
74
|
requirements:
|
81
|
-
- -
|
75
|
+
- - '>='
|
82
76
|
- !ruby/object:Gem::Version
|
83
77
|
version: '0'
|
84
78
|
requirements: []
|
85
79
|
rubyforge_project:
|
86
|
-
rubygems_version: 1.
|
80
|
+
rubygems_version: 2.1.10
|
87
81
|
signing_key:
|
88
|
-
specification_version:
|
82
|
+
specification_version: 4
|
89
83
|
summary: Small gem to get timezone info by known coordinates using google timezone
|
90
84
|
api. https://developers.google.com/maps/documentation/timezone/
|
91
85
|
test_files:
|
92
86
|
- spec/google_timezone_result_spec.rb
|
93
87
|
- spec/google_timezone_spec.rb
|
88
|
+
has_rdoc:
|