rhino_project_core 0.20.0.beta.86 → 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 +4 -4
- data/lib/rhino/engine.rb +1 -0
- data/lib/rhino/resource.rb +2 -1
- data/lib/rhino/sieve/geospatial.rb +45 -0
- data/lib/rhino/sieve.rb +1 -0
- data/lib/rhino/version.rb +1 -1
- data/lib/rhino_project_core.rb +2 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a40a1d4b37eb0bd406af8e4e641de00463d5f686d6de7792196f2c8872a4902
|
4
|
+
data.tar.gz: e574ae64748cbda07d20063ec672ff804ffede8061a744f45a173fa2249d303e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4e120075eb107061f58764312f22c3d1fe907fc834921f66c68889e4044ca677e4596d406f9bc99a20ce1cdb25eff8d3963627a505422856326706752463058
|
7
|
+
data.tar.gz: 8baa41117e9a7f71c861de59fc7b49e0bff7bbd43e6c23a7b6aa691e1c9f50cbe5b2b9fc02a64e3499901002ccbc2839951d3c58ef1505984a8107996e2e2aef
|
data/lib/rhino/engine.rb
CHANGED
data/lib/rhino/resource.rb
CHANGED
@@ -45,7 +45,8 @@ module Rhino
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def rhino_policy(policy)
|
48
|
-
|
48
|
+
# Look for local policy first, then look in the rhino namespace
|
49
|
+
self._policy_class = "#{policy}_policy".classify.safe_constantize || "rhino/#{policy}_policy".classify.safe_constantize
|
49
50
|
|
50
51
|
raise "Policy #{policy} not found for #{name}" unless _policy_class
|
51
52
|
end
|
@@ -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
data/lib/rhino/version.rb
CHANGED
data/lib/rhino_project_core.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.
|
4
|
+
version: 0.20.0.beta.88
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Rosevear
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -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
|