eac_rails_utils 0.21.0 → 0.22.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
  SHA256:
3
- metadata.gz: 3aedeca11ee83d3ba78b7ed6e4018ec11ec5358279ee8aa60aeee9a704b67bc7
4
- data.tar.gz: cf7618ee67289bbcfae473c46816562d43ed1054febf31982250b1f4c1db4184
3
+ metadata.gz: 8a88b255d31abb1059b16e75e33cb24b9ba2ad64a3d35afd63e27bc1d01dbbbe
4
+ data.tar.gz: b50b1587013cb361fe0eb2d7d56ee46dd5bdd87ed6aacf836aee7867ec7c152e
5
5
  SHA512:
6
- metadata.gz: ba22996dcb260db19cfc7ea31adf12da8f530220c2426178a50b8fbd50094040aa8bb140d83d7f81b9a1ea987f6c278f0f29c8e3d9793f52e29688e0020801c6
7
- data.tar.gz: 538843dd71b2511945bede0711f03390c0620482643b7dd0beb5bbf39fae8a79dc31c723c0a3f318379dca0734d8433b1db3462dbb5f381e6b84a49c5c4a7bfd
6
+ metadata.gz: 1249f9ba2a9598117e86de27b315fdd2f6f0f55330ee39916ea9e03f25c97b9c966a99a476628a1dfda677ea14b518cdf7478ad21eafc41868b4bcf4222fe65e
7
+ data.tar.gz: a7def8aa5c32a906ecae3e29b5c42ba669f962c368ad3ae01153de142ce74cc3f3da22f9090cc4d9d97fa359080ed414985be9879b8d3f42ec476e7b6f0dcae9
@@ -4,6 +4,13 @@ require 'eac_ruby_utils/core_ext'
4
4
 
5
5
  module EacRailsUtils
6
6
  module EngineHelper
7
+ class << self
8
+ # @return [EacRailsUtils::Menus::Group]
9
+ def root_menu
10
+ @root_menu ||= ::EacRailsUtils::Menus::Group.new(:root)
11
+ end
12
+ end
13
+
7
14
  common_concern do
8
15
  append_autoload_paths
9
16
  append_self_migrations
@@ -21,6 +28,11 @@ module EacRailsUtils
21
28
  end
22
29
  end
23
30
  end
31
+
32
+ # @return [EacRailsUtils::Menus::Group]
33
+ def root_menu
34
+ ::EacRailsUtils::EnginesHelper.root_menu
35
+ end
24
36
  end
25
37
  end
26
38
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rails_utils/menus/node'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module EacRailsUtils
7
+ module Menus
8
+ class Action < ::EacRailsUtils::Menus::Node
9
+ common_constructor :path, :parent_group, super_args: -> { [parent_group] } do
10
+ self.path = [parent_group.path_first_node] + path if path.size < 2
11
+ end
12
+
13
+ # @return [Symbol]
14
+ def key
15
+ path.map(&:to_s).join('_').to_sym
16
+ end
17
+
18
+ # @param view [ActionView::Base]
19
+ # @return [Array]
20
+ def to_dropdown_menu_entries(view)
21
+ [view_path(view)]
22
+ end
23
+
24
+ # @param view [ActionView::Base]
25
+ # @return [String]
26
+ def view_path(view)
27
+ path.each_with_index.inject(view) do |a, e|
28
+ a.send(e[1] == path.count - 1 ? "#{e[0]}_path" : e[0])
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rails_utils/menus/action'
4
+ require 'eac_rails_utils/menus/node'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module EacRailsUtils
8
+ module Menus
9
+ class Group < ::EacRailsUtils::Menus::Node
10
+ class << self
11
+ # @param key [Object]
12
+ # @return [Symbol]
13
+ def sanitize_key(key)
14
+ key.to_sym
15
+ end
16
+ end
17
+
18
+ DEFAULT_PATH_FIRST_NODE = :main_app
19
+ SELF_LABEL_TRANSLATE_KEY_PART = '__self'
20
+
21
+ common_constructor :key, :parent_group, :path_first_node, default: [nil],
22
+ super_args: -> { [parent_group] } do
23
+ self.key = self.class.sanitize_key(key)
24
+ self.path_first_node ||= DEFAULT_PATH_FIRST_NODE
25
+ end
26
+
27
+ # @param path [Array<Symbol>]
28
+ # @return [EacRailsUtils::Menus::Action]
29
+ def action(*path)
30
+ child_action = ::EacRailsUtils::Menus::Action.new(path, self)
31
+ actions[child_action.key] ||= child_action
32
+ end
33
+
34
+ # @return [Array<EacRailsUtils::Menus::Node>]
35
+ def children
36
+ (groups.values + actions.values).sort
37
+ end
38
+
39
+ # @return [EacRailsUtils::Menus::Group]
40
+ def group(group_key, path_first_node = nil)
41
+ child_group = self.class.new(group_key, self, path_first_node)
42
+ groups[child_group.key] ||= child_group
43
+ end
44
+
45
+ # @return [String]
46
+ def label_translate_key
47
+ [super, SELF_LABEL_TRANSLATE_KEY_PART].join(TRANSLATE_KEY_SEPARATOR)
48
+ end
49
+
50
+ # @param view [ActionView::Base]
51
+ # @return [Hash]
52
+ def to_dropdown_menu_entries(view)
53
+ children.inject({}) do |a, e|
54
+ a.merge(e.label => e.to_dropdown_menu_entries(view))
55
+ end
56
+ end
57
+
58
+ def within
59
+ yield(self)
60
+ end
61
+
62
+ private
63
+
64
+ def actions
65
+ @actions ||= {}
66
+ end
67
+
68
+ def groups
69
+ @groups ||= {}
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacRailsUtils
6
+ module Menus
7
+ class Node
8
+ LABEL_TRANSLATE_KEY_PREFIX = 'eac_rails_utils.menus'
9
+ TRANSLATE_KEY_SEPARATOR = '.'
10
+
11
+ acts_as_abstract :key
12
+ common_constructor :parent_group
13
+ compare_by :label
14
+ attr_reader :custom_label
15
+
16
+ # @return [String]
17
+ def auto_label
18
+ ::I18n.t(label_translate_key)
19
+ end
20
+
21
+ # @param custom_label [String, nil]
22
+ # @return [String, self]
23
+ def label(custom_label = nil)
24
+ if custom_label.present?
25
+ self.custom_label = custom_label
26
+ self
27
+ else
28
+ (self.custom_label || auto_label).call_if_proc
29
+ end
30
+ end
31
+
32
+ # @return [String]
33
+ def label_translate_key
34
+ parent_label_translate_key
35
+ end
36
+
37
+ # @return [String]
38
+ def parent_label_translate_key
39
+ [
40
+ parent_group.if_present(LABEL_TRANSLATE_KEY_PREFIX, &:parent_label_translate_key),
41
+ key
42
+ ].join(TRANSLATE_KEY_SEPARATOR)
43
+ end
44
+
45
+ private
46
+
47
+ attr_writer :custom_label
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacRailsUtils
6
+ module Menus
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -1,36 +1,42 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- module ActiveRecordReflection
3
- extend ActiveSupport::Concern
1
+ # frozen_string_literal: true
4
2
 
5
- included do
6
- if ActiveRecord.version >= Gem::Version.new("4.1.2")
7
- class_attribute :_reflections
8
- self._reflections = ActiveSupport::HashWithIndifferentAccess.new
9
- else
10
- class_attribute :reflections
11
- self.reflections = {}
12
- end
13
- end
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ module ActiveRecordReflection
7
+ extend ActiveSupport::Concern
14
8
 
15
- module ClassMethods
16
- if ActiveRecord.version < Gem::Version.new("4.1")
17
- def create_reflection(macro, name, scope, options, active_record)
18
- case macro
19
- when :has_many, :belongs_to
20
- klass = ActiveRecord::Reflection::AssociationReflection
21
- reflection = klass.new(macro, name, scope, options, active_record)
9
+ included do
10
+ if ActiveRecord.version >= Gem::Version.new('4.1.2')
11
+ class_attribute :_reflections
12
+ self._reflections = ActiveSupport::HashWithIndifferentAccess.new
13
+ else
14
+ class_attribute :reflections
15
+ self.reflections = {}
22
16
  end
23
-
24
- self.reflections = self.reflections.merge(name => reflection)
25
- reflection
26
17
  end
27
- end
28
18
 
29
- def reflect_on_association(association)
30
- if ActiveRecord.version >= Gem::Version.new("4.1.2")
31
- _reflections[association.to_s]
32
- else
33
- reflections[association]
19
+ module ClassMethods
20
+ if ActiveRecord.version < Gem::Version.new('4.1')
21
+ def create_reflection(macro, name, scope, options, active_record)
22
+ case macro
23
+ when :has_many, :belongs_to
24
+ klass = ActiveRecord::Reflection::AssociationReflection
25
+ reflection = klass.new(macro, name, scope, options, active_record)
26
+ end
27
+
28
+ self.reflections = reflections.merge(name => reflection)
29
+ reflection
30
+ end
31
+ end
32
+
33
+ def reflect_on_association(association)
34
+ if ActiveRecord.version >= Gem::Version.new('4.1.2')
35
+ _reflections[association.to_s]
36
+ else
37
+ reflections[association]
38
+ end
39
+ end
34
40
  end
35
41
  end
36
42
  end
@@ -1,22 +1,28 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- module AssociationScopeExtension
3
- if ActiveRecord.version >= Gem::Version.new("5.0.0.beta")
4
- def add_constraints(scope, owner, association_klass, refl, chain_head, chain_tail)
5
- if refl.options[:active_model]
6
- target_ids = refl.options[:target_ids]
7
- return scope.where(id: owner[target_ids])
8
- end
1
+ # frozen_string_literal: true
9
2
 
10
- super
11
- end
12
- else
13
- def add_constraints(scope, owner, assoc_klass, refl, tracker)
14
- if refl.options[:active_model]
15
- target_ids = refl.options[:target_ids]
16
- return scope.where(id: owner[target_ids])
17
- end
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ module AssociationScopeExtension
7
+ if ActiveRecord.version >= Gem::Version.new('5.0.0.beta')
8
+ def add_constraints(scope, owner, association_klass, refl, chain_head, chain_tail) # rubocop:disable Metrics/ParameterLists
9
+ if refl.options[:active_model]
10
+ target_ids = refl.options[:target_ids]
11
+ return scope.where(id: owner[target_ids])
12
+ end
18
13
 
19
- super
14
+ super
15
+ end
16
+ else
17
+ def add_constraints(scope, owner, assoc_klass, refl, tracker)
18
+ if refl.options[:active_model]
19
+ target_ids = refl.options[:target_ids]
20
+ return scope.where(id: owner[target_ids])
21
+ end
22
+
23
+ super
24
+ end
25
+ end
20
26
  end
21
27
  end
22
28
  end
@@ -1,12 +1,18 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- module AutosaveAssociation
3
- extend ActiveSupport::Concern
1
+ # frozen_string_literal: true
4
2
 
5
- include ActiveRecord::AutosaveAssociation
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ module AutosaveAssociation
7
+ extend ActiveSupport::Concern
6
8
 
7
- included do
8
- extend ActiveModel::Callbacks
9
- define_model_callbacks :save, :create, :update
9
+ include ActiveRecord::AutosaveAssociation
10
+
11
+ included do
12
+ extend ActiveModel::Callbacks
13
+ define_model_callbacks :save, :create, :update
14
+ end
15
+ end
10
16
  end
11
17
  end
12
18
  end
@@ -1,9 +1,17 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- module Hooks
3
- def self.init
4
- ActiveSupport.on_load(:active_record) do
5
- require 'eac_rails_utils/models/tableless_associations/association_scope_extension'
6
- ActiveRecord::Associations::AssociationScope.send(:prepend, EacRailsUtils::Models::TablelessAssociations::AssociationScopeExtension)
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ module Hooks
7
+ def self.init
8
+ ActiveSupport.on_load(:active_record) do
9
+ require 'eac_rails_utils/models/tableless_associations/association_scope_extension'
10
+ ActiveRecord::Associations::AssociationScope.prepend(
11
+ EacRailsUtils::Models::TablelessAssociations::AssociationScopeExtension
12
+ )
13
+ end
14
+ end
7
15
  end
8
16
  end
9
17
  end
@@ -1,15 +1,21 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- module InitializeExtension
3
- extend ActiveSupport::Concern
1
+ # frozen_string_literal: true
4
2
 
5
- included do
6
- prepend WithAssociationCache
7
- end
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ module InitializeExtension
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ prepend WithAssociationCache
11
+ end
8
12
 
9
- module WithAssociationCache
10
- def initialize(*args)
11
- @association_cache = {}
12
- super
13
+ module WithAssociationCache
14
+ def initialize(*args)
15
+ @association_cache = {}
16
+ super
17
+ end
18
+ end
13
19
  end
14
20
  end
15
21
  end
@@ -1,111 +1,128 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- module OverrideMethods
3
- extend ActiveSupport::Concern
4
-
5
- module ClassMethods
6
- def generated_association_methods
7
- @generated_association_methods ||= begin
8
- mod = const_set(:GeneratedAssociationMethods, Module.new)
9
- include mod
10
- mod
11
- end
12
- end
13
- alias :generated_feature_methods :generated_association_methods \
14
- if ActiveRecord.version < Gem::Version.new("4.1")
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ module OverrideMethods
7
+ extend ActiveSupport::Concern
8
+
9
+ module ClassMethods
10
+ def generated_association_methods
11
+ @generated_association_methods ||= begin
12
+ mod = const_set(:GeneratedAssociationMethods, Module.new)
13
+ include mod
14
+ mod
15
+ end
16
+ end
17
+ alias generated_feature_methods generated_association_methods \
18
+ if ActiveRecord.version < Gem::Version.new('4.1')
15
19
 
16
- # override
17
- def dangerous_attribute_method?(name)
18
- false
19
- end
20
+ # override
21
+ def dangerous_attribute_method?(_name)
22
+ false
23
+ end
20
24
 
21
- # dummy table name
22
- def pluralize_table_names
23
- self.to_s.pluralize
24
- end
25
+ # dummy table name
26
+ def pluralize_table_names
27
+ to_s.pluralize
28
+ end
25
29
 
26
- def clear_reflections_cache
27
- @__reflections = nil
28
- end
30
+ def clear_reflections_cache
31
+ @__reflections = nil
32
+ end
29
33
 
30
- def default_scopes
31
- []
32
- end
34
+ def default_scopes
35
+ []
36
+ end
37
+
38
+ protected
33
39
 
34
- protected
40
+ def compute_type(type_name)
41
+ if type_name.match(/^::/)
42
+ # If the type is prefixed with a scope operator then we assume that
43
+ # the type_name is an absolute reference.
44
+ ActiveSupport::Dependencies.constantize(type_name)
45
+ else
46
+ compute_type_from_candidates(type_name)
47
+ end
48
+ end
35
49
 
36
- def compute_type(type_name)
37
- if type_name.match(/^::/)
38
- # If the type is prefixed with a scope operator then we assume that
39
- # the type_name is an absolute reference.
40
- ActiveSupport::Dependencies.constantize(type_name)
41
- else
42
50
  # Build a list of candidates to search for
43
- candidates = []
44
- name.scan(/::|$/) { candidates.unshift "#{$`}::#{type_name}" }
45
- candidates << type_name
51
+ def compute_type_candidates(type_name)
52
+ candidates = []
53
+ name.scan(/::|$/) { candidates.unshift "#{$`}::#{type_name}" }
54
+ candidates << type_name
55
+ end
46
56
 
47
- candidates.each do |candidate|
48
- begin
57
+ def compute_type_from_candidates(type_name)
58
+ compute_type_candidates(type_name).each do |candidate|
49
59
  constant = ActiveSupport::Dependencies.constantize(candidate)
50
60
  return constant if candidate == constant.to_s
51
61
  # We don't want to swallow NoMethodError < NameError errors
52
62
  rescue NoMethodError
53
63
  raise
54
- rescue NameError
64
+ rescue NameError # rubocop:disable Lint/SuppressedException
55
65
  end
56
- end
57
66
 
58
- raise NameError.new("uninitialized constant #{candidates.first}", candidates.first)
67
+ raise NameError.new("uninitialized constant #{candidates.first}", candidates.first)
68
+ end
59
69
  end
60
- end
61
- end
62
70
 
63
- # use by association accessor
64
- def association(name) #:nodoc:
65
- association = association_instance_get(name)
71
+ # use by association accessor
72
+ def association(name) #:nodoc:
73
+ association = association_instance_get(name)
74
+
75
+ if association.nil?
76
+ association = association_by_reflection(name)
77
+ association_instance_set(name, association)
78
+ end
66
79
 
67
- if association.nil?
68
- reflection = self.class.reflect_on_association(name)
69
- if reflection.options[:active_model]
70
- association = ActiveRecord::Associations::HasManyForActiveModelAssociation.new(self, reflection)
71
- else
72
- association = reflection.association_class.new(self, reflection)
80
+ association
73
81
  end
74
- association_instance_set(name, association)
75
- end
76
82
 
77
- association
78
- end
83
+ def read_attribute(name)
84
+ send(name)
85
+ end
86
+ alias _read_attribute read_attribute
79
87
 
80
- def read_attribute(name)
81
- send(name)
82
- end
83
- alias :_read_attribute :read_attribute
88
+ # dummy
89
+ def new_record?
90
+ false
91
+ end
84
92
 
85
- # dummy
86
- def new_record?
87
- false
88
- end
93
+ private
89
94
 
90
- private
95
+ def association_by_reflection(name)
96
+ reflection = self.class.reflect_on_association(name)
97
+ if reflection.options[:active_model]
98
+ ::ActiveRecord::Associations::HasManyForActiveModelAssociation.new(self, reflection)
99
+ else
100
+ reflection.association_class.new(self, reflection)
101
+ end
102
+ end
103
+
104
+ # override
105
+ def validate_collection_association(reflection)
106
+ return unless (association = association_instance_get(reflection.name))
91
107
 
92
- # override
93
- def validate_collection_association(reflection)
94
- if association = association_instance_get(reflection.name)
95
- if records = associated_records_to_validate_or_save(association, false, reflection.options[:autosave])
96
- records.each { |record| association_valid?(reflection, record) }
108
+ if (records = associated_records_to_validate_or_save(
109
+ association,
110
+ false, reflection.options[:autosave]
111
+ ))
112
+ records.each { |record| association_valid?(reflection, record) }
113
+ end
97
114
  end
98
- end
99
- end
100
115
 
101
- # use in Rails internal
102
- def association_instance_get(name)
103
- @association_cache[name]
104
- end
116
+ # use in Rails internal
117
+ def association_instance_get(name)
118
+ @association_cache[name]
119
+ end
105
120
 
106
- # use in Rails internal
107
- def association_instance_set(name, association)
108
- @association_cache[name] = association
121
+ # use in Rails internal
122
+ def association_instance_set(name, association)
123
+ @association_cache[name] = association
124
+ end
125
+ end
109
126
  end
110
127
  end
111
128
  end
@@ -1,7 +1,13 @@
1
- module EacRailsUtils::Models::TablelessAssociations
2
- class Railtie < ::Rails::Railtie #:nodoc:
3
- initializer 'activemodel-associations' do |_|
4
- EacRailsUtils::Models::TablelessAssociations::Hooks.init
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsUtils
4
+ module Models
5
+ module TablelessAssociations
6
+ class Railtie < ::Rails::Railtie #:nodoc:
7
+ initializer 'activemodel-associations' do |_|
8
+ EacRailsUtils::Models::TablelessAssociations::Hooks.init
9
+ end
10
+ end
5
11
  end
6
12
  end
7
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'eac_rails_utils/models/tableless_associations/initialize_extension'
2
4
  require 'eac_rails_utils/models/tableless_associations/active_record_reflection'
3
5
  require 'eac_rails_utils/models/tableless_associations/autosave_association'
@@ -23,19 +25,21 @@ module EacRailsUtils
23
25
  module ClassMethods
24
26
  # define association like ActiveRecord
25
27
  def belongs_to(name, scope = nil, options = {})
26
- reflection = ActiveRecord::Associations::Builder::BelongsTo.build(self, name, scope, options)
28
+ reflection = ActiveRecord::Associations::Builder::BelongsTo
29
+ .build(self, name, scope, options)
27
30
  ActiveRecord::Reflection.add_reflection self, name, reflection
28
31
  end
29
32
 
30
33
  # define association like ActiveRecord
31
- def has_many(name, scope = nil, options = {}, &extension)
34
+ def has_many(name, scope = nil, options = {}, &extension) # rubocop:disable Naming/PredicateName
32
35
  options.reverse_merge!(active_model: true, target_ids: "#{name.to_s.singularize}_ids")
33
36
  if scope.is_a?(Hash)
34
37
  options.merge!(scope)
35
38
  scope = nil
36
39
  end
37
40
 
38
- reflection = ActiveRecord::Associations::Builder::HasManyForActiveModel.build(self, name, scope, options, &extension)
41
+ reflection = ActiveRecord::Associations::Builder::HasManyForActiveModel
42
+ .build(self, name, scope, options, &extension)
39
43
  ActiveRecord::Reflection.add_reflection self, name, reflection
40
44
 
41
45
  mixin = generated_association_methods
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_model/naming'
4
+
5
+ module ActiveModel
6
+ module Naming
7
+ # @return [String]
8
+ def plural_name
9
+ model_name.human(count: 2)
10
+ end
11
+
12
+ # @return [String]
13
+ def singular_name
14
+ model_name.human(count: 1)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+ ::EacRubyUtils.require_sub __FILE__
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rails_utils/menus/group'
4
+
5
+ module Rails
6
+ class Application
7
+ # @return [EacRailsUtils::Menus::Group]
8
+ def root_menu
9
+ @root_menu ||= ::EacRailsUtils::Menus::Group.new(:root, nil)
10
+ end
11
+ end
12
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRailsUtils
4
- VERSION = '0.21.0'
4
+ VERSION = '0.22.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_rails_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - E.A.C.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-05 00:00:00.000000000 Z
11
+ date: 2023-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootstrap-sass
@@ -36,20 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.118'
39
+ version: '0.119'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 0.118.1
42
+ version: 0.119.2
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '0.118'
49
+ version: '0.119'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 0.118.1
52
+ version: 0.119.2
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: htmlbeautifier
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -205,6 +205,10 @@ files:
205
205
  - lib/eac_rails_utils/engine.rb
206
206
  - lib/eac_rails_utils/engine_helper.rb
207
207
  - lib/eac_rails_utils/htmlbeautifier.rb
208
+ - lib/eac_rails_utils/menus.rb
209
+ - lib/eac_rails_utils/menus/action.rb
210
+ - lib/eac_rails_utils/menus/group.rb
211
+ - lib/eac_rails_utils/menus/node.rb
208
212
  - lib/eac_rails_utils/models.rb
209
213
  - lib/eac_rails_utils/models/fetch_errors.rb
210
214
  - lib/eac_rails_utils/models/inequality_queries.rb
@@ -221,11 +225,13 @@ files:
221
225
  - lib/eac_rails_utils/models/tableless_associations/initialize_extension.rb
222
226
  - lib/eac_rails_utils/models/tableless_associations/override_methods.rb
223
227
  - lib/eac_rails_utils/models/tableless_associations/railtie.rb
224
- - lib/eac_rails_utils/models/tableless_associations/version.rb
225
228
  - lib/eac_rails_utils/models/test_utils.rb
226
229
  - lib/eac_rails_utils/models/validations.rb
227
230
  - lib/eac_rails_utils/patches.rb
231
+ - lib/eac_rails_utils/patches/active_model.rb
232
+ - lib/eac_rails_utils/patches/active_model/naming.rb
228
233
  - lib/eac_rails_utils/patches/active_model_associations.rb
234
+ - lib/eac_rails_utils/patches/application.rb
229
235
  - lib/eac_rails_utils/patches/numeric.rb
230
236
  - lib/eac_rails_utils/patches/numeric/number_helper.rb
231
237
  - lib/eac_rails_utils/patches/rails_4.rb
@@ -1,5 +0,0 @@
1
- module ActiveModel
2
- module Associations
3
- VERSION = "0.2.0"
4
- end
5
- end