rhino_project_core 0.20.0.beta.87 → 0.20.0.beta.88

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: 2086a5bc5fa1a3845b613f84d271c859e62e42980768ef046f69054a270e6e15
4
- data.tar.gz: 0b66c2cecfb4590c858fc8f87789c7c73e78b4966171befba075d07991843633
3
+ metadata.gz: 1a40a1d4b37eb0bd406af8e4e641de00463d5f686d6de7792196f2c8872a4902
4
+ data.tar.gz: e574ae64748cbda07d20063ec672ff804ffede8061a744f45a173fa2249d303e
5
5
  SHA512:
6
- metadata.gz: 4b1718c518d2cef5ec8278c1ba6b7d8c91386ea75c1bed88d81d75491c8ceba273f88485f0ea39b19cb6fd243159eebdaea6730acd644c0d88541b07dd43d3dd
7
- data.tar.gz: 4ebb8055e81f059a48c974f99e8188b775c54db919cbd4d64ee666f8a1178233a634a9e5b64a2a93d9bd5dfcca68d1c5eafa408923a99ac37af3e6e9b93f93b7
6
+ metadata.gz: f4e120075eb107061f58764312f22c3d1fe907fc834921f66c68889e4044ca677e4596d406f9bc99a20ce1cdb25eff8d3963627a505422856326706752463058
7
+ data.tar.gz: 8baa41117e9a7f71c861de59fc7b49e0bff7bbd43e6c23a7b6aa691e1c9f50cbe5b2b9fc02a64e3499901002ccbc2839951d3c58ef1505984a8107996e2e2aef
data/lib/rhino/engine.rb CHANGED
@@ -12,6 +12,7 @@ require "devise"
12
12
  require "devise_invitable"
13
13
  require "devise_token_auth"
14
14
  require "friendly_id"
15
+ require "geocoder"
15
16
  require "omniauth"
16
17
  require "omniauth-azure-activedirectory-v2"
17
18
  require "omniauth-auth0"
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rhino
4
+ module Sieve
5
+ class Geospatial
6
+ def initialize(app)
7
+ @app = app
8
+ end
9
+
10
+ # geospatial={near: {location: { latitude: 41.2565, longitude: -95.9345 }, max_distance: 10, units: 'km'}}
11
+ # geospatial={near: {location: 'Omaha, NE, US', max_distance: 10, units: 'km'}}
12
+ def resolve(scope, params)
13
+ return @app.resolve(scope, params) unless valid?(params)
14
+
15
+ @app.resolve(
16
+ scope.near(
17
+ @location_params,
18
+ @near_params[:max_distance],
19
+ units: @near_params[:units]
20
+ ), params
21
+ )
22
+ end
23
+
24
+ private
25
+ def valid?(params) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
26
+ @geospatial_params = params[:geospatial]
27
+ return false unless @geospatial_params.is_a?(ActionController::Parameters)
28
+
29
+ @near_params = @geospatial_params[:near]
30
+ return false unless @near_params.is_a?(ActionController::Parameters)
31
+
32
+ @location_params = @near_params[:location]
33
+ if @location_params.is_a?(String)
34
+ @location_params = @near_params[:location]
35
+ elsif @location_params.is_a?(ActionController::Parameters) && @location_params[:latitude].present? && @location_params[:longitude].present?
36
+ @location_params = [@location_params[:latitude], @location_params[:longitude]]
37
+ else
38
+ return false
39
+ end
40
+
41
+ @near_params[:max_distance].present?
42
+ end
43
+ end
44
+ end
45
+ end
data/lib/rhino/sieve.rb CHANGED
@@ -5,6 +5,7 @@ module Rhino
5
5
  extend ActiveSupport::Autoload
6
6
 
7
7
  autoload :Filter
8
+ autoload :Geospatial
8
9
  autoload :Limit
9
10
  autoload :Offset
10
11
  autoload :Order
data/lib/rhino/version.rb CHANGED
@@ -10,7 +10,7 @@ module Rhino
10
10
  MAJOR = 0
11
11
  MINOR = 20
12
12
  TINY = 0
13
- PRE = "beta.87"
13
+ PRE = "beta.88"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -65,6 +65,8 @@ module Rhino
65
65
  self.sieves = Rhino::SieveStack.new do |sieve|
66
66
  sieve.use Rhino::Sieve::Filter
67
67
 
68
+ sieve.use Rhino::Sieve::Geospatial
69
+
68
70
  sieve.use Rhino::Sieve::Search
69
71
 
70
72
  sieve.use Rhino::Sieve::Order
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhino_project_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0.beta.87
4
+ version: 0.20.0.beta.88
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Rosevear
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - '='
157
157
  - !ruby/object:Gem::Version
158
158
  version: 5.3.0
159
+ - !ruby/object:Gem::Dependency
160
+ name: geocoder
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - '='
164
+ - !ruby/object:Gem::Version
165
+ version: 1.8.2
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '='
171
+ - !ruby/object:Gem::Version
172
+ version: 1.8.2
159
173
  - !ruby/object:Gem::Dependency
160
174
  name: js_regex
161
175
  requirement: !ruby/object:Gem::Requirement
@@ -471,6 +485,7 @@ files:
471
485
  - lib/rhino/resource/sieves.rb
472
486
  - lib/rhino/sieve.rb
473
487
  - lib/rhino/sieve/filter.rb
488
+ - lib/rhino/sieve/geospatial.rb
474
489
  - lib/rhino/sieve/helpers.rb
475
490
  - lib/rhino/sieve/limit.rb
476
491
  - lib/rhino/sieve/offset.rb