rhino_project_core 0.22.0.alpha.2 → 0.22.0.alpha.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 +4 -4
- data/app/controllers/concerns/rhino/error_handling.rb +1 -1
- data/app/overrides/active_record/nested_error_override.rb +21 -0
- data/app/policies/rhino/crud_policy.rb +1 -2
- data/app/policies/rhino/user_policy.rb +1 -1
- data/app/resources/rhino/open_api_info.rb +2 -2
- data/lib/commands/rhino/module/coverage_command.rb +1 -1
- data/lib/commands/rhino/module/dummy_command.rb +1 -1
- data/lib/commands/rhino/module/rails_command.rb +1 -1
- data/lib/commands/rhino/module/test_command.rb +1 -1
- data/lib/generators/rhino/dev/setup/setup_generator.rb +0 -1
- data/lib/generators/rhino/module/module_generator.rb +1 -1
- data/lib/rhino/resource/active_model_extension/backing_store/google_sheet.rb +1 -1
- data/lib/rhino/resource/active_model_extension/describe.rb +1 -1
- data/lib/rhino/resource/active_model_extension/params.rb +1 -1
- data/lib/rhino/resource/active_model_extension/properties.rb +5 -7
- data/lib/rhino/resource/active_record_extension/describe.rb +1 -1
- data/lib/rhino/resource/active_record_extension/params.rb +7 -8
- data/lib/rhino/resource/active_record_extension/properties.rb +1 -3
- data/lib/rhino/resource/active_record_extension/properties_describe.rb +6 -7
- data/lib/rhino/resource/owner.rb +1 -2
- data/lib/rhino/resource/properties.rb +2 -4
- data/lib/rhino/resource/reference.rb +1 -1
- data/lib/rhino/resource/routing.rb +2 -4
- data/lib/rhino/resource/sieves.rb +0 -2
- data/lib/rhino/sieve/filter.rb +2 -2
- data/lib/rhino/sieve/geospatial.rb +1 -1
- data/lib/rhino/test_case/controller.rb +1 -2
- data/lib/rhino/test_case/model.rb +3 -3
- data/lib/rhino/version.rb +1 -1
- data/lib/rhino_project_core.rb +2 -2
- metadata +14 -15
- data/app/overrides/active_record/autosave_association_override.rb +0 -18
- data/app/overrides/active_record/delegated_type_override.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf37bf5ee31347fb2b245178fb38d4def3068dce29d6dbf22b4c70cc2ff75d55
|
4
|
+
data.tar.gz: b4acadca2f17693cb43675d467dc7e0af0197d407a10499e2813c641941259e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e7e9d1b573c598327c3e8bc00d178ffed27cf620784645ee9e7ac6f0f077534923c1883ca1ab1a6b17026c9b9287253f1f7b54406eb529bb47f2dc0a799d7e7
|
7
|
+
data.tar.gz: e0d237bc399bf3cbbb13af6f223d92876a4f59c66309bb8559cc72c7bc875bf6eaae5f2a84f8450104d1be160c9c5a8e42fc89f14adb5e08394fc6c198c41267
|
@@ -6,7 +6,7 @@ module Rhino
|
|
6
6
|
module ErrorHandling
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
|
-
included do
|
9
|
+
included do
|
10
10
|
rescue_from Exception, with: :handle_uncaught_error
|
11
11
|
|
12
12
|
# ActiveRecord::DeleteRestrictionError is for dependent: :restrict_with_exception
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_record/associations/nested_error"
|
4
|
+
|
5
|
+
module ActiveRecord
|
6
|
+
module Associations
|
7
|
+
class NestedError < ::ActiveModel::NestedError
|
8
|
+
private
|
9
|
+
def compute_attribute(inner_error)
|
10
|
+
association_name = association.reflection.name
|
11
|
+
|
12
|
+
# Dot notation is used to represent nested attributes in the error message.
|
13
|
+
if index_errors_setting && index
|
14
|
+
"#{association_name}.#{index}.#{inner_error.attribute}".to_sym
|
15
|
+
else
|
16
|
+
"#{association_name}.#{inner_error.attribute}".to_sym
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -4,7 +4,7 @@ module Rhino
|
|
4
4
|
class UserPolicy < ::Rhino::ViewerPolicy
|
5
5
|
class Scope < ::Rhino::ViewerPolicy::Scope
|
6
6
|
# We allow other users in the org to view the user
|
7
|
-
def resolve
|
7
|
+
def resolve
|
8
8
|
return scope.none unless auth_owner
|
9
9
|
|
10
10
|
base_owner_pk = "#{Rhino.base_owner.table_name}.#{Rhino.base_owner.primary_key}"
|
@@ -56,7 +56,7 @@ module Rhino
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
def self.describe_path(path)
|
59
|
+
def self.describe_path(path)
|
60
60
|
new_path = path.index_by { |p| p[:verb].downcase.to_sym }
|
61
61
|
new_path.transform_values! do |verb_values|
|
62
62
|
klass = verb_values[:rhino_resource].constantize
|
@@ -75,7 +75,7 @@ module Rhino
|
|
75
75
|
end
|
76
76
|
|
77
77
|
PATH_IGNORES = ["Rhino::OpenApiInfo", "Rhino::InfoGraph"].freeze
|
78
|
-
def self.describe_paths
|
78
|
+
def self.describe_paths
|
79
79
|
routes = Rails.application.routes.routes
|
80
80
|
|
81
81
|
# Extract the path information we need
|
@@ -7,7 +7,7 @@ module Rhino
|
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
9
|
class_methods do
|
10
|
-
def describe
|
10
|
+
def describe
|
11
11
|
properties = all_properties.index_with { |p| describe_property(p) }
|
12
12
|
|
13
13
|
required = properties.reject { |_p, d| d[:nullable] || d[:readOnly] }.keys
|
@@ -5,10 +5,10 @@ require "js_regex"
|
|
5
5
|
module Rhino
|
6
6
|
module Resource
|
7
7
|
module ActiveModelExtension
|
8
|
-
module Properties
|
8
|
+
module Properties
|
9
9
|
extend ActiveSupport::Concern
|
10
10
|
|
11
|
-
class_methods do
|
11
|
+
class_methods do
|
12
12
|
def identifier_property
|
13
13
|
"id"
|
14
14
|
end
|
@@ -29,7 +29,7 @@ module Rhino
|
|
29
29
|
writeable_properties
|
30
30
|
end
|
31
31
|
|
32
|
-
def describe_property(property)
|
32
|
+
def describe_property(property)
|
33
33
|
name = property_name(property).to_s
|
34
34
|
{
|
35
35
|
"x-rhino-attribute": {
|
@@ -64,7 +64,7 @@ module Rhino
|
|
64
64
|
[]
|
65
65
|
end
|
66
66
|
|
67
|
-
def reference_properties(read = true)
|
67
|
+
def reference_properties(read = true)
|
68
68
|
references.filter_map do |r|
|
69
69
|
sym = reference_to_sym(r)
|
70
70
|
|
@@ -73,7 +73,6 @@ module Rhino
|
|
73
73
|
|
74
74
|
# Writeable if a one type or accepting nested
|
75
75
|
association = reflect_on_association(sym)
|
76
|
-
# rubocop:todo Performance/CollectionLiteralInLoop
|
77
76
|
sym if %i[has_one belongs_to].include?(association.macro) || nested_attributes_options.key?(sym)
|
78
77
|
# rubocop:enable Performance/CollectionLiteralInLoop
|
79
78
|
end
|
@@ -143,8 +142,7 @@ module Rhino
|
|
143
142
|
{ type: property_type_raw(property) }
|
144
143
|
end
|
145
144
|
|
146
|
-
|
147
|
-
def property_validations(property) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity
|
145
|
+
def property_validations(property)
|
148
146
|
constraint_hash = {}
|
149
147
|
|
150
148
|
# https://swagger.io/specification/
|
@@ -7,7 +7,7 @@ module Rhino
|
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
9
|
class_methods do
|
10
|
-
def describe
|
10
|
+
def describe
|
11
11
|
properties = all_properties.index_with { |p| describe_property(p) }
|
12
12
|
|
13
13
|
required = properties.reject { |_p, d| d[:nullable] || d[:readOnly] }.keys
|
@@ -3,10 +3,10 @@
|
|
3
3
|
module Rhino
|
4
4
|
module Resource
|
5
5
|
module ActiveRecordExtension
|
6
|
-
module Params
|
6
|
+
module Params
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
|
-
class_methods do
|
9
|
+
class_methods do
|
10
10
|
def create_params
|
11
11
|
writeable_params("create")
|
12
12
|
end
|
@@ -43,7 +43,7 @@ module Rhino
|
|
43
43
|
send("#{type}_properties").dup
|
44
44
|
end
|
45
45
|
|
46
|
-
def readable_params(type, refs = references) # rubocop:disable Metrics/
|
46
|
+
def readable_params(type, refs = references) # rubocop:disable Metrics/CyclomaticComplexity
|
47
47
|
params = []
|
48
48
|
|
49
49
|
refs_index = refs.index_by { |r| reference_to_sym(r) }
|
@@ -79,10 +79,10 @@ module Rhino
|
|
79
79
|
params << "display_name"
|
80
80
|
end
|
81
81
|
|
82
|
-
def writeable_params(type, _refs = references) # rubocop:disable Metrics/
|
82
|
+
def writeable_params(type, _refs = references) # rubocop:disable Metrics/CyclomaticComplexity
|
83
83
|
params = []
|
84
84
|
|
85
|
-
props_by_type(type).each do |prop|
|
85
|
+
props_by_type(type).each do |prop|
|
86
86
|
desc = describe_property(prop)
|
87
87
|
prop_sym = prop.to_sym
|
88
88
|
|
@@ -151,10 +151,9 @@ module Rhino
|
|
151
151
|
end
|
152
152
|
|
153
153
|
# Rebuild the params
|
154
|
-
|
155
|
-
def transform_params_recursive(params, parent = self) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity
|
154
|
+
def transform_params_recursive(params, parent = self)
|
156
155
|
hash = {}
|
157
|
-
params.each do |param_key, param_value|
|
156
|
+
params.each do |param_key, param_value|
|
158
157
|
association = parent.reflect_on_association(param_key)
|
159
158
|
|
160
159
|
# Its a regular attribute
|
@@ -10,7 +10,7 @@ module Rhino
|
|
10
10
|
|
11
11
|
include Rhino::Resource::ActiveRecordExtension::PropertiesDescribe
|
12
12
|
|
13
|
-
class_methods do
|
13
|
+
class_methods do
|
14
14
|
def identifier_property
|
15
15
|
primary_key
|
16
16
|
end
|
@@ -51,7 +51,6 @@ module Rhino
|
|
51
51
|
reflect_on_all_associations(:belongs_to).map(&:foreign_key).map(&:to_s)
|
52
52
|
end
|
53
53
|
|
54
|
-
# rubocop:todo Style/OptionalBooleanParameter
|
55
54
|
def reference_properties(read = true)
|
56
55
|
references.filter_map do |r|
|
57
56
|
sym = reference_to_sym(r)
|
@@ -61,7 +60,6 @@ module Rhino
|
|
61
60
|
|
62
61
|
# Writeable if a one type or accepting nested
|
63
62
|
association = reflect_on_association(sym)
|
64
|
-
# rubocop:todo Performance/CollectionLiteralInLoop, Layout/LineLength
|
65
63
|
if %i[has_one belongs_to].include?(association.macro) || nested_attributes_options.key?(sym) || association.class_name == "ActiveStorage::Attachment"
|
66
64
|
sym
|
67
65
|
end
|
@@ -5,7 +5,7 @@ require "js_regex"
|
|
5
5
|
module Rhino
|
6
6
|
module Resource
|
7
7
|
module ActiveRecordExtension
|
8
|
-
module PropertiesDescribe
|
8
|
+
module PropertiesDescribe
|
9
9
|
extend ActiveSupport::Concern
|
10
10
|
|
11
11
|
class PolymorphicModelName
|
@@ -22,8 +22,8 @@ module Rhino
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
class_methods do
|
26
|
-
def describe_property(property) # rubocop:disable Metrics/AbcSize
|
25
|
+
class_methods do
|
26
|
+
def describe_property(property) # rubocop:disable Metrics/AbcSize
|
27
27
|
name = property_name(property).to_s
|
28
28
|
raise StandardError, "#{name} is not a valid property" unless property?(name)
|
29
29
|
|
@@ -61,7 +61,7 @@ module Rhino
|
|
61
61
|
}
|
62
62
|
end
|
63
63
|
|
64
|
-
def property_type_and_format_attr(name)
|
64
|
+
def property_type_and_format_attr(name)
|
65
65
|
atype = attribute_types[name.to_s].type
|
66
66
|
|
67
67
|
# The PG array delegates type to "subtype" which is the actual type of the array elements
|
@@ -98,7 +98,6 @@ module Rhino
|
|
98
98
|
{ "x-rhino-attribute-array": array_options.merge(_properties_array[ref_sym] || {}) }
|
99
99
|
end
|
100
100
|
|
101
|
-
# rubocop:todo Metrics/PerceivedComplexity
|
102
101
|
# rubocop:todo Metrics/AbcSize
|
103
102
|
def property_type_and_format_ref(name) # rubocop:todo Metrics/AbcSize
|
104
103
|
assoc = reflections[name]
|
@@ -125,7 +124,7 @@ module Rhino
|
|
125
124
|
# rubocop:enable Metrics/AbcSize
|
126
125
|
# rubocop:enable Metrics/PerceivedComplexity
|
127
126
|
|
128
|
-
def property_type_and_format(name) # rubocop:disable Metrics/AbcSize
|
127
|
+
def property_type_and_format(name) # rubocop:disable Metrics/AbcSize
|
129
128
|
# Special cases
|
130
129
|
return { type: :identifier } if name == identifier_property
|
131
130
|
return { type: :string } if defined_enums.key?(name)
|
@@ -156,7 +155,7 @@ module Rhino
|
|
156
155
|
_properties_overrides[property].deep_symbolize_keys
|
157
156
|
end
|
158
157
|
|
159
|
-
def property_validations(property) # rubocop:disable Metrics/AbcSize, Metrics/
|
158
|
+
def property_validations(property) # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
|
160
159
|
constraint_hash = {}
|
161
160
|
|
162
161
|
# https://swagger.io/specification/
|
data/lib/rhino/resource/owner.rb
CHANGED
@@ -21,8 +21,7 @@ module Rhino
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# The self is actually required to work with class_attribute properly
|
24
|
-
|
25
|
-
class_methods do # rubocop:disable Metrics/BlockLength
|
24
|
+
class_methods do
|
26
25
|
# Test if rhino_owner[rdoc-ref:rhino_owner] is the auth owner
|
27
26
|
# Also available on the instance
|
28
27
|
def auth_owner?
|
@@ -26,7 +26,7 @@ module Rhino
|
|
26
26
|
# readable_properties
|
27
27
|
# creatable_properties
|
28
28
|
# updatable_properties
|
29
|
-
module Properties
|
29
|
+
module Properties
|
30
30
|
extend ActiveSupport::Concern
|
31
31
|
|
32
32
|
included do
|
@@ -54,8 +54,7 @@ module Rhino
|
|
54
54
|
delegate :describe_property, to: :class
|
55
55
|
end
|
56
56
|
|
57
|
-
|
58
|
-
class_methods do # rubocop:disable Metrics/BlockLength
|
57
|
+
class_methods do
|
59
58
|
def rhino_properties_read(**options)
|
60
59
|
self._read_properties_only = Array.wrap(options[:only]).map(&:to_s) if options.key?(:only)
|
61
60
|
self._read_properties_except = Array.wrap(options[:except]).map(&:to_s) if options.key?(:except)
|
@@ -186,7 +185,6 @@ module Rhino
|
|
186
185
|
raise NotImplementedError, "#describe_property is not implemented for #{property}"
|
187
186
|
end
|
188
187
|
end
|
189
|
-
# rubocop:enable Style/RedundantSelf
|
190
188
|
end
|
191
189
|
end
|
192
190
|
end
|
@@ -18,7 +18,6 @@ module Rhino
|
|
18
18
|
delegate :routes, to: :class
|
19
19
|
end
|
20
20
|
|
21
|
-
# rubocop:disable Style/RedundantSelf, Metrics/BlockLength
|
22
21
|
class_methods do
|
23
22
|
def route_key
|
24
23
|
self._route_key ||= if route_singular?
|
@@ -50,7 +49,7 @@ module Rhino
|
|
50
49
|
|
51
50
|
def routes
|
52
51
|
unless self._rhino_routes
|
53
|
-
if global_owner?
|
52
|
+
if global_owner?
|
54
53
|
self._rhino_routes = %i[index show]
|
55
54
|
else
|
56
55
|
self._rhino_routes = %i[index create show update destroy]
|
@@ -72,10 +71,9 @@ module Rhino
|
|
72
71
|
self.controller_name = "rhino/#{controller}"
|
73
72
|
end
|
74
73
|
end
|
75
|
-
# rubocop:enable Style/RedundantSelf, Metrics/BlockLength
|
76
74
|
end
|
77
75
|
|
78
|
-
def route_frontend
|
76
|
+
def route_frontend
|
79
77
|
base_owner_pk = "#{Rhino.base_owner.table_name}.#{Rhino.base_owner.primary_key}"
|
80
78
|
|
81
79
|
joins = joins_for_base_owner
|
@@ -13,7 +13,6 @@ module Rhino
|
|
13
13
|
delegate :sieves, to: :class
|
14
14
|
end
|
15
15
|
|
16
|
-
# rubocop:disable Style/RedundantSelf
|
17
16
|
class_methods do
|
18
17
|
def rhino_sieves
|
19
18
|
self._sieves = Rhino.sieves.dup unless self._sieves
|
@@ -30,7 +29,6 @@ module Rhino
|
|
30
29
|
scope
|
31
30
|
end
|
32
31
|
end
|
33
|
-
# rubocop:enable Style/RedundantSelf
|
34
32
|
end
|
35
33
|
end
|
36
34
|
end
|
data/lib/rhino/sieve/filter.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Rhino
|
4
4
|
module Sieve
|
5
|
-
class Filter
|
5
|
+
class Filter
|
6
6
|
def initialize(app)
|
7
7
|
@app = app
|
8
8
|
end
|
@@ -107,7 +107,7 @@ module Rhino
|
|
107
107
|
|
108
108
|
BASIC_AREL_OPS = %w[eq gt lt gteq lteq].freeze
|
109
109
|
BASIC_AREL_COALESCE_OPS = BASIC_AREL_OPS.map { |op| "#{op}_coalesce" }.freeze
|
110
|
-
def merge_where_clause(base, scope, column_name, value, operation = nil)
|
110
|
+
def merge_where_clause(base, scope, column_name, value, operation = nil)
|
111
111
|
arel_node = base.arel_table[column_name]
|
112
112
|
where_clause = case operation
|
113
113
|
when *BASIC_AREL_OPS then arel_node.send(operation, value)
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
module Rhino
|
4
4
|
module TestCase
|
5
|
-
# rubocop:disable Metrics/ClassLength
|
6
5
|
class ControllerTest < ActionDispatch::IntegrationTest
|
7
6
|
setup :set_cookie_attributes
|
8
7
|
|
@@ -81,7 +80,7 @@ module Rhino
|
|
81
80
|
def assert_not_deleted_cookie(cookie_name)
|
82
81
|
has_cookie = response.cookies.key?(cookie_name)
|
83
82
|
cookie_not_blank = response.cookies[cookie_name].present?
|
84
|
-
assert !has_cookie || cookie_not_blank, "Response should either not have the auth cookie present or it should be set to something. Current value is #{response.cookies[cookie_name]}"
|
83
|
+
assert !has_cookie || cookie_not_blank, "Response should either not have the auth cookie present or it should be set to something. Current value is #{response.cookies[cookie_name]}"
|
85
84
|
end
|
86
85
|
|
87
86
|
def sign_in(user = nil)
|
@@ -33,7 +33,7 @@ module Rhino
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# association_model is a symbol
|
36
|
-
def assert_accepts_nested_attributes_for(association_model, association_factory: association_model)
|
36
|
+
def assert_accepts_nested_attributes_for(association_model, association_factory: association_model)
|
37
37
|
association = @model.reflect_on_association(association_model)
|
38
38
|
|
39
39
|
assert association.present?, "association :#{association_model} not found"
|
@@ -51,7 +51,7 @@ module Rhino
|
|
51
51
|
end
|
52
52
|
|
53
53
|
assert @model.new.respond_to?("#{key}="),
|
54
|
-
"#{@model} doesn't have a #{key} setter method. Probably there's no `accepts_nested_attributes_for :#{association_model}` in #{@model}"
|
54
|
+
"#{@model} doesn't have a #{key} setter method. Probably there's no `accepts_nested_attributes_for :#{association_model}` in #{@model}"
|
55
55
|
object = if association_factory.is_a?(Proc)
|
56
56
|
model_instance = build factory
|
57
57
|
association_instance = association_factory.call model_instance
|
@@ -65,7 +65,7 @@ module Rhino
|
|
65
65
|
assert success_checker.call(object), "Should have a #{association_model} after assigning nested model attributes"
|
66
66
|
end
|
67
67
|
|
68
|
-
def assert_destroy_association_cascade(association_model, association_factory: association_model)
|
68
|
+
def assert_destroy_association_cascade(association_model, association_factory: association_model)
|
69
69
|
instance = create factory
|
70
70
|
association_instance = if association_factory.is_a?(Proc)
|
71
71
|
association_factory.call(instance)
|
data/lib/rhino/version.rb
CHANGED
data/lib/rhino_project_core.rb
CHANGED
@@ -82,7 +82,7 @@ module Rhino
|
|
82
82
|
|
83
83
|
# Set the auth owner reference object to access the mailer.
|
84
84
|
def self.auth_owner=(class_name)
|
85
|
-
@@auth_owner_ref = ref(class_name)
|
85
|
+
@@auth_owner_ref = ref(class_name)
|
86
86
|
end
|
87
87
|
self.auth_owner = 'User'
|
88
88
|
|
@@ -96,7 +96,7 @@ module Rhino
|
|
96
96
|
|
97
97
|
# Set the mailer reference object to access the mailer.
|
98
98
|
def self.base_owner=(class_name)
|
99
|
-
@@base_owner_ref = ref(class_name)
|
99
|
+
@@base_owner_ref = ref(class_name)
|
100
100
|
end
|
101
101
|
self.base_owner = 'User'
|
102
102
|
|
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.22.0.alpha.
|
4
|
+
version: 0.22.0.alpha.3
|
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-11-
|
11
|
+
date: 2024-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.
|
19
|
+
version: 7.2.0
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 7.
|
22
|
+
version: 7.2.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 7.
|
29
|
+
version: 7.2.0
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 7.
|
32
|
+
version: 7.2.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: activeadmin
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,14 +50,14 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 11.0.0
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - '='
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: 11.0.0
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: analytics-ruby
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,14 +92,14 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - '='
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 2.
|
95
|
+
version: 2.15.0
|
96
96
|
type: :runtime
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - '='
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 2.
|
102
|
+
version: 2.15.0
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: countries
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,14 +134,14 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - '='
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 1.2.
|
137
|
+
version: 1.2.4
|
138
138
|
type: :runtime
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - '='
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 1.2.
|
144
|
+
version: 1.2.4
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: friendly_id
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,8 +394,7 @@ files:
|
|
394
394
|
- app/models/rhino/account.rb
|
395
395
|
- app/models/rhino/current.rb
|
396
396
|
- app/models/rhino/user.rb
|
397
|
-
- app/overrides/active_record/
|
398
|
-
- app/overrides/active_record/delegated_type_override.rb
|
397
|
+
- app/overrides/active_record/nested_error_override.rb
|
399
398
|
- app/overrides/activestorage/direct_uploads_controller_override.rb
|
400
399
|
- app/overrides/activestorage/redirect_controller_override.rb
|
401
400
|
- app/overrides/activestorage/redirect_representation_controller_override.rb
|
@@ -524,7 +523,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
524
523
|
- !ruby/object:Gem::Version
|
525
524
|
version: '0'
|
526
525
|
requirements: []
|
527
|
-
rubygems_version: 3.5.
|
526
|
+
rubygems_version: 3.5.22
|
528
527
|
signing_key:
|
529
528
|
specification_version: 4
|
530
529
|
summary: ''
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# correction for nested forms errors indexation
|
4
|
-
# this correction is still necessary in rails 7.0
|
5
|
-
module ActiveRecord::AutosaveAssociation
|
6
|
-
private
|
7
|
-
def validate_collection_association(reflection)
|
8
|
-
return unless (association = association_instance_get(reflection.name))
|
9
|
-
|
10
|
-
return unless (records = associated_records_to_validate_or_save(association, new_record?, reflection.options[:autosave]))
|
11
|
-
|
12
|
-
all_records = association.target.find_all
|
13
|
-
records.each do |record|
|
14
|
-
index = all_records.find_index(record)
|
15
|
-
association_valid?(reflection, record, index)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# correction for nested forms errors indexation
|
4
|
-
# this correction is still necessary in rails 7.0
|
5
|
-
module ActiveRecord::DelegatedType
|
6
|
-
def delegated_type(role, types:, **options)
|
7
|
-
belongs_to role, options.delete(:scope), **options.merge(polymorphic: true)
|
8
|
-
define_delegated_type_methods(role, types:, options:)
|
9
|
-
|
10
|
-
define_singleton_method "#{role}_types" do
|
11
|
-
types.map(&:to_s)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|