rhino_project_core 0.21.0.beta.52 → 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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/rhino/error_handling.rb +1 -1
  3. data/app/overrides/active_record/nested_error_override.rb +21 -0
  4. data/app/policies/rhino/crud_policy.rb +1 -2
  5. data/app/policies/rhino/user_policy.rb +1 -1
  6. data/app/resources/rhino/open_api_info.rb +2 -2
  7. data/lib/commands/rhino/module/coverage_command.rb +1 -1
  8. data/lib/commands/rhino/module/dummy_command.rb +1 -1
  9. data/lib/commands/rhino/module/rails_command.rb +1 -1
  10. data/lib/commands/rhino/module/test_command.rb +1 -1
  11. data/lib/generators/rhino/dev/setup/setup_generator.rb +0 -1
  12. data/lib/generators/rhino/module/module_generator.rb +1 -1
  13. data/lib/rhino/resource/active_model_extension/backing_store/google_sheet.rb +1 -1
  14. data/lib/rhino/resource/active_model_extension/describe.rb +1 -1
  15. data/lib/rhino/resource/active_model_extension/params.rb +1 -1
  16. data/lib/rhino/resource/active_model_extension/properties.rb +5 -7
  17. data/lib/rhino/resource/active_record_extension/describe.rb +1 -1
  18. data/lib/rhino/resource/active_record_extension/params.rb +7 -8
  19. data/lib/rhino/resource/active_record_extension/properties.rb +1 -3
  20. data/lib/rhino/resource/active_record_extension/properties_describe.rb +6 -7
  21. data/lib/rhino/resource/owner.rb +1 -2
  22. data/lib/rhino/resource/properties.rb +2 -4
  23. data/lib/rhino/resource/reference.rb +1 -1
  24. data/lib/rhino/resource/routing.rb +2 -4
  25. data/lib/rhino/resource/sieves.rb +0 -2
  26. data/lib/rhino/sieve/filter.rb +2 -2
  27. data/lib/rhino/sieve/geospatial.rb +1 -1
  28. data/lib/rhino/test_case/controller.rb +1 -2
  29. data/lib/rhino/test_case/model.rb +3 -3
  30. data/lib/rhino/version.rb +2 -2
  31. data/lib/rhino_project_core.rb +2 -2
  32. metadata +14 -15
  33. data/app/overrides/active_record/autosave_association_override.rb +0 -18
  34. 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: c1b7f68ae4e2c0c7329a629b27b7066d998be5d3644da8c19dafb35b582bc6de
4
- data.tar.gz: dd08f384dee74cfea82940c8871771ffc670dacc7bdb30ebe39943117a778933
3
+ metadata.gz: cf37bf5ee31347fb2b245178fb38d4def3068dce29d6dbf22b4c70cc2ff75d55
4
+ data.tar.gz: b4acadca2f17693cb43675d467dc7e0af0197d407a10499e2813c641941259e3
5
5
  SHA512:
6
- metadata.gz: 698a1c7aceb4e0cb879467ef14d9097db425bd67de34bba52cb74e1f6c57fe5415a13611ef33e94e989b3c2c53d81e7c5315ebfe52837c9218d31e8635135661
7
- data.tar.gz: 9fd1a98e8584be9cc5f3a90b967b143b6f542a5579c40a5015b9fd01725ec501ea338d112be44930348f8841c2a2cf7a437cca7a88f468b746d398743cf5b6d4
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 # rubocop:disable Metrics/BlockLength
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
@@ -70,8 +70,7 @@ module Rhino
70
70
  end
71
71
 
72
72
  class Scope < ::Rhino::BasePolicy::Scope
73
- # rubocop:todo Metrics/MethodLength
74
- def resolve # rubocop:disable Metrics/AbcSize,
73
+ def resolve
75
74
  role_scopes = []
76
75
 
77
76
  # Get every role for the auth owner
@@ -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 # rubocop:disable Metrics/AbcSize
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) # rubocop:todo Metrics/AbcSize
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 # rubocop:todo Metrics/AbcSize
78
+ def self.describe_paths
79
79
  routes = Rails.application.routes.routes
80
80
 
81
81
  # Extract the path information we need
@@ -16,7 +16,7 @@ module Rails
16
16
  end
17
17
 
18
18
  protected
19
- def rhino_command(extra_path, base_command, *args) # rubocop:todo Metrics/MethodLength
19
+ def rhino_command(extra_path, base_command, *args)
20
20
  module_name = if Dir.exist?(args[0])
21
21
  args.shift
22
22
  else
@@ -15,7 +15,7 @@ module Rails
15
15
  end
16
16
 
17
17
  protected
18
- def rhino_command(extra_path, base_command, *args) # rubocop:todo Metrics/MethodLength
18
+ def rhino_command(extra_path, base_command, *args)
19
19
  module_name = if Dir.exist?(args[0])
20
20
  args.shift
21
21
  else
@@ -15,7 +15,7 @@ module Rails
15
15
  end
16
16
 
17
17
  protected
18
- def rhino_command(extra_path, base_command, *args) # rubocop:todo Metrics/MethodLength
18
+ def rhino_command(extra_path, base_command, *args)
19
19
  module_name = if Dir.exist?(args[0])
20
20
  args.shift
21
21
  else
@@ -15,7 +15,7 @@ module Rails
15
15
  end
16
16
 
17
17
  protected
18
- def rhino_command(extra_path, base_command, *args) # rubocop:todo Metrics/MethodLength
18
+ def rhino_command(extra_path, base_command, *args)
19
19
  module_name = if Dir.exist?(args[0])
20
20
  args.shift
21
21
  else
@@ -3,7 +3,6 @@
3
3
  module Rhino
4
4
  module Generators
5
5
  module Dev
6
- # rubocop:disable Metrics/ClassLength
7
6
  class SetupGenerator < ::Rails::Generators::Base
8
7
  DEFAULT_SERVER_PORT = 3000
9
8
 
@@ -49,7 +49,7 @@ module Rhino
49
49
  end
50
50
 
51
51
  # Has to be named this way as it overrides the default
52
- def get_builder_class # rubocop:disable Naming/AccessorMethodName
52
+ def get_builder_class
53
53
  ModuleBuilder
54
54
  end
55
55
 
@@ -35,7 +35,7 @@ module Rhino
35
35
  delegate :sheet, to: :class
36
36
  end
37
37
 
38
- class_methods do # rubocop:todo Metrics/BlockLength
38
+ class_methods do
39
39
  def backing_store_index
40
40
  sheet.reload
41
41
 
@@ -7,7 +7,7 @@ module Rhino
7
7
  extend ActiveSupport::Concern
8
8
 
9
9
  class_methods do
10
- def describe # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
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
@@ -6,7 +6,7 @@ module Rhino
6
6
  module Params
7
7
  extend ActiveSupport::Concern
8
8
 
9
- class_methods do # rubocop:todo Metrics/BlockLength
9
+ class_methods do
10
10
  def create_params
11
11
  writeable_params("create")
12
12
  end
@@ -5,10 +5,10 @@ require "js_regex"
5
5
  module Rhino
6
6
  module Resource
7
7
  module ActiveModelExtension
8
- module Properties # rubocop:disable Metrics/ModuleLength
8
+ module Properties
9
9
  extend ActiveSupport::Concern
10
10
 
11
- class_methods do # rubocop:disable Metrics/BlockLength
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) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
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) # rubocop:todo Style/OptionalBooleanParameter
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
- # rubocop:todo Metrics/PerceivedComplexity
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 # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
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 # rubocop:todo Metrics/ModuleLength
6
+ module Params
7
7
  extend ActiveSupport::Concern
8
8
 
9
- class_methods do # rubocop:todo Metrics/BlockLength
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/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
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/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
82
+ def writeable_params(type, _refs = references) # rubocop:disable Metrics/CyclomaticComplexity
83
83
  params = []
84
84
 
85
- props_by_type(type).each do |prop| # rubocop:disable Metrics/BlockLength
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
- # rubocop:todo Metrics/CyclomaticComplexity
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| # rubocop:todo Metrics/BlockLength
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 # rubocop:disable Metrics/BlockLength
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 # rubocop:disable Metrics/ModuleLength
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 # rubocop:disable Metrics/BlockLength
26
- def describe_property(property) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
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) # rubocop:todo Metrics/MethodLength
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, Metrics/MethodLength
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/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
158
+ def property_validations(property) # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
160
159
  constraint_hash = {}
161
160
 
162
161
  # https://swagger.io/specification/
@@ -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
- # rubocop:disable Style/RedundantSelf
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 # rubocop:todo Metrics/ModuleLength
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
- # rubocop:disable Style/RedundantSelf
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
@@ -21,7 +21,7 @@ module Rhino
21
21
  end
22
22
 
23
23
  def references
24
- self._references # rubocop:disable Style/RedundantSelf
24
+ self._references
25
25
  end
26
26
  end
27
27
  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? # rubocop:disable Style/ConditionalAssignment
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 # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Rhino
4
4
  module Sieve
5
- class Filter # rubocop:disable Metrics/ClassLength
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) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
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)
@@ -22,7 +22,7 @@ module Rhino
22
22
  end
23
23
 
24
24
  private
25
- def valid?(params) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
25
+ def valid?(params)
26
26
  @geospatial_params = params[:geospatial]
27
27
  return false unless @geospatial_params.is_a?(ActionController::Parameters)
28
28
 
@@ -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]}" # rubocop:disable Layout/LineLength
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) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
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}" # rubocop:disable Layout/LineLength
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) # rubocop:disable Metrics/AbcSize
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
@@ -8,9 +8,9 @@ module Rhino
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 0
11
- MINOR = 21
11
+ MINOR = 22
12
12
  TINY = 0
13
- PRE = "beta.52"
13
+ PRE = "alpha.3"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -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) # rubocop:disable Style/ClassVars
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) # rubocop:disable Style/ClassVars
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.21.0.beta.52
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-16 00:00:00.000000000 Z
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.1.0
19
+ version: 7.2.0
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 7.1.0
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.1.0
29
+ version: 7.2.0
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 7.1.0
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: 10.0.0
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: 10.0.0
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.14.0
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.14.0
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.3
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.3
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/autosave_association_override.rb
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.16
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