twofishes 2.0.0 → 2.1.0.pre.rc.1

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
  SHA1:
3
- metadata.gz: 2cff3a037a0c3102d1d484202cb413c80940f93c
4
- data.tar.gz: be8c7567efa843fd0b2e5ccd6d1e6eadc516ec32
3
+ metadata.gz: 60346193a88118337642826f79fb68b87373fda3
4
+ data.tar.gz: 1ca46ac922435ce41af3d5e46725689acf20ddc2
5
5
  SHA512:
6
- metadata.gz: 54ec9f93b83e93b7649d57c54a4861080440da51307f423cf2b77f4c3ab4bb1ef9438878454c35e133046b29719b5adb0e04901fcf9e12d7c5db71791eff0baa
7
- data.tar.gz: 0fd3d7a83db9dafab05e0e658f861e48ce6aa3350848745f64a51aed6b0d1a11d4db602d9bef350572e940cefecc16967f16bd95893b277858b61b65cdbc052e
6
+ metadata.gz: 74f76b892901bfb33ec5aa15cb913a74c28216a70d922647bc0793bd922d00864a8f07d6fe1d470ba6cc2a99316b14e1aed3af482929fdad79e541e09e62638e
7
+ data.tar.gz: 1ffe49e7909c92ee1bb6a7a2735973b86363444598d6075c61fae209d582179a8817825f130cdad180f9abe23a41540e77e6374cb506cbff2028359baf730e9e
@@ -6,4 +6,5 @@ require 'thrift/geocoder'
6
6
  require 'twofishes/errors'
7
7
  require 'twofishes/result'
8
8
  require 'twofishes/underscored'
9
+ require 'twofishes/geocode_request'
9
10
  require 'twofishes/client'
@@ -11,9 +11,11 @@ module Twofishes
11
11
  # @example
12
12
  # Twofishes::Client.geocode('Zurich, Switzerland')
13
13
  #
14
- def self.geocode(location, includes: [])
14
+
15
+ def self.geocode(location, options = {})
15
16
  handle_response do
16
- request = GeocodeRequest.new(query: location, responseIncludes: includes)
17
+ options[:query] = location
18
+ request = Twofishes::GeocodeRequest.new(options)
17
19
  thrift_client.geocode(request)
18
20
  end
19
21
  end
@@ -25,10 +27,10 @@ module Twofishes
25
27
  # @example
26
28
  # Twofishes::Client.reverse_geocode([47.3787733, 8.5273363])
27
29
  #
28
- def self.reverse_geocode(coordinates, includes: [])
30
+ def self.reverse_geocode(coordinates, options = {})
29
31
  handle_response do
30
- point = GeocodePoint.new(lat: coordinates[0], lng: coordinates[1])
31
- request = GeocodeRequest.new(ll: point, responseIncludes: includes)
32
+ options[:ll] = coordinates
33
+ request = Twofishes::GeocodeRequest.new(options)
32
34
  thrift_client.reverseGeocode(request)
33
35
  end
34
36
  end
@@ -38,7 +40,8 @@ module Twofishes
38
40
  Geocoder::Client,
39
41
  Twofishes.configuration.address,
40
42
  retries: Twofishes.configuration.retries,
41
- timeout: Twofishes.configuration.timeout
43
+ timeout: Twofishes.configuration.timeout,
44
+ connect_timeout: Twofishes.configuration.connect_timeout
42
45
  )
43
46
  end
44
47
 
@@ -2,13 +2,14 @@ module Twofishes
2
2
  class Configuration
3
3
  # @see https://github.com/thoughtbot/clearance/blob/master/lib/clearance/configuration.rb
4
4
 
5
- attr_accessor :host, :port, :timeout, :retries
5
+ attr_accessor :host, :port, :timeout, :retries, :connect_timeout
6
6
 
7
7
  def initialize
8
8
  @host = '127.0.0.1'
9
9
  @port = 8080
10
10
  @timeout = 3
11
11
  @retries = 2
12
+ @connect_timeout = 0.5
12
13
  end
13
14
 
14
15
  def address
@@ -0,0 +1,68 @@
1
+ module Twofishes
2
+ class GeocodeRequest < ::GeocodeRequest
3
+ def initialize(options = {})
4
+ options = substitute_aliases(options)
5
+
6
+ options[:ll] = prepare_ll(options[:ll])
7
+ options[:bounds] = prepare_bounds(options[:bounds])
8
+
9
+ super(options)
10
+ end
11
+
12
+ def prepare_ll(ll)
13
+ case ll
14
+ when String
15
+ lat, lng = ll.split(/\s*,\s*/)
16
+ GeocodePoint.new(lat: lat.to_f, lng: lng.to_f)
17
+ when Array
18
+ GeocodePoint.new(lat: ll[0].to_f, lng: ll[1].to_f)
19
+ when Hash
20
+ GeocodePoint.new(lat: ll[:lat].to_f, lng: ll[:lng].to_f)
21
+ else
22
+ ll
23
+ end
24
+ end
25
+
26
+ def prepare_bounds(bounds)
27
+ case bounds
28
+ when String
29
+ ne_lat, ne_lng, sw_lat, sw_lng = bounds.split(/\s*,\s*/)
30
+ ne = GeocodePoint.new(lat: ne_lat.to_f, lng: ne_lng.to_f)
31
+ sw = GeocodePoint.new(lat: sw_lat.to_f, lng: sw_lng.to_f)
32
+ GeocodeBoundingBox.new(ne: ne, sw: sw)
33
+ when Array
34
+ ne = GeocodePoint.new(lat: bounds[0].to_f, lng: bounds[1].to_f)
35
+ sw = GeocodePoint.new(lat: bounds[2].to_f, lng: bounds[3].to_f)
36
+ GeocodeBoundingBox.new(ne: ne, sw: sw)
37
+ when Hash
38
+ ne = GeocodePoint.new(lat: bounds[:ne_lat].to_f, lng: bounds[:ne_lng].to_f)
39
+ sw = GeocodePoint.new(lat: bounds[:sw_lat].to_f, lng: bounds[:sw_lng].to_f)
40
+ GeocodeBoundingBox.new(ne: ne, sw: sw)
41
+ else
42
+ bounds
43
+ end
44
+ end
45
+
46
+ def substitute_aliases(options)
47
+ options = options.dup
48
+
49
+ options[:maxInterpretations] ||= options.delete(:max_interpretations) || options.delete(:max)
50
+ options[:allowedSources] ||= options.delete(:allowed_sources) || options.delete(:sources)
51
+ options[:responseIncludes] ||= options.delete(:response_includes) || options.delete(:includes)
52
+ options[:woeHint] ||= options.delete(:woe_hint)
53
+ options[:woeRestrict] ||= options.delete(:woe_restrict)
54
+ options[:autocompleteBias] ||= options.delete(:autocomplete_bias) || options.delete(:bias)
55
+
56
+ if options[:ll].kind_of? Hash
57
+ options[:ll][:lng] = options[:ll][:lon] if options[:ll][:lon]
58
+ end
59
+
60
+ if options[:bounds].kind_of? Hash
61
+ options[:bounds][:ne_lng] = options[:bounds][:ne_lon] if options[:bounds] and options[:bounds][:ne_lon]
62
+ options[:bounds][:sw_lng] = options[:bounds][:sw_lon] if options[:bounds] and options[:bounds][:sw_lon]
63
+ end
64
+
65
+ options
66
+ end
67
+ end
68
+ end
@@ -1,3 +1,3 @@
1
1
  module Twofishes
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0.pre.rc.1"
3
3
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twofishes
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0.pre.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Felder
8
8
  - Miha Rekar
9
9
  - Bartek Bułat
10
+ - Sebastian Delmont
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2015-04-02 00:00:00.000000000 Z
14
+ date: 2015-07-19 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: activesupport
@@ -151,6 +152,7 @@ files:
151
152
  - lib/twofishes/client.rb
152
153
  - lib/twofishes/configuration.rb
153
154
  - lib/twofishes/errors.rb
155
+ - lib/twofishes/geocode_request.rb
154
156
  - lib/twofishes/result.rb
155
157
  - lib/twofishes/underscored.rb
156
158
  - lib/twofishes/version.rb
@@ -169,9 +171,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
171
  version: '2.0'
170
172
  required_rubygems_version: !ruby/object:Gem::Requirement
171
173
  requirements:
172
- - - '>='
174
+ - - '>'
173
175
  - !ruby/object:Gem::Version
174
- version: '0'
176
+ version: 1.3.1
175
177
  requirements: []
176
178
  rubyforge_project:
177
179
  rubygems_version: 2.4.5