ab_admin 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +28 -24
  3. data/app/assets/javascripts/ab_admin/core/batch_actions.js.coffee +1 -1
  4. data/app/assets/javascripts/ab_admin/core/init.js.coffee +1 -0
  5. data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +21 -1
  6. data/app/assets/javascripts/ab_admin/core/utils.js.coffee +8 -0
  7. data/app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee +1 -0
  8. data/app/assets/javascripts/ab_admin/main.js +1 -2
  9. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +44 -23
  10. data/app/assets/stylesheets/ab_admin/components/_colored_tabs.scss +1 -1
  11. data/app/assets/stylesheets/ab_admin/components/_form.scss +3 -1
  12. data/app/assets/stylesheets/ab_admin/components/_navigation.scss +7 -2
  13. data/app/assets/stylesheets/ab_admin/components/_table_view.scss +75 -9
  14. data/app/assets/stylesheets/ab_admin/components/_tooltip.scss +1 -0
  15. data/app/assets/stylesheets/ab_admin/main.scss +1 -1
  16. data/app/controllers/admin/assets_controller.rb +1 -1
  17. data/app/controllers/admin/base_controller.rb +87 -107
  18. data/app/controllers/admin/manager_controller.rb +17 -47
  19. data/app/views/ab_admin/devise/sessions/new.html.slim +2 -0
  20. data/app/views/admin/assets/batch_edit.html.slim +2 -1
  21. data/app/views/admin/base/_search_layout.html.slim +1 -1
  22. data/app/views/admin/base/create.js.erb +1 -1
  23. data/app/views/admin/base/edit.js.erb +1 -1
  24. data/app/views/admin/base/new.js.erb +1 -1
  25. data/app/views/admin/base/update.js.erb +3 -3
  26. data/app/views/admin/manager/_show_table.html.slim +1 -1
  27. data/app/views/admin/manager/_stats.html.slim +4 -0
  28. data/app/views/admin/manager/_table.html.slim +6 -3
  29. data/app/views/admin/shared/_content_actions.html.slim +22 -15
  30. data/app/views/admin/shared/_save_buttons.html.slim +10 -1
  31. data/app/views/admin/users/_form.html.slim +2 -2
  32. data/config/locales/en.yml +8 -13
  33. data/config/locales/it.yml +1 -0
  34. data/db/migrate/20130101000001_create_users.rb +1 -4
  35. data/db/migrate/20130101000003_create_assets.rb +1 -1
  36. data/db/migrate/20130101000004_create_headers.rb +5 -5
  37. data/db/migrate/20130101000005_create_static_pages.rb +2 -5
  38. data/db/migrate/20130101000006_create_structures.rb +1 -1
  39. data/db/migrate/20130101000007_base_translations.rb +43 -12
  40. data/db/migrate/20130101000008_create_admin_comments.rb +2 -7
  41. data/db/migrate/20130101000009_create_tracks.rb +4 -8
  42. data/lib/ab_admin/abstract_resource.rb +6 -5
  43. data/lib/ab_admin/carrierwave/base_uploader.rb +87 -74
  44. data/lib/ab_admin/carrierwave/glue.rb +0 -5
  45. data/lib/ab_admin/concerns/admin_addition.rb +19 -1
  46. data/lib/ab_admin/concerns/utilities.rb +1 -1
  47. data/lib/ab_admin/config/base.rb +20 -4
  48. data/lib/ab_admin/core_ext/array.rb +0 -5
  49. data/lib/ab_admin/core_ext/string.rb +1 -6
  50. data/lib/ab_admin/devise.rb +7 -0
  51. data/lib/ab_admin/engine.rb +1 -1
  52. data/lib/ab_admin/hooks/ckeditor_lazy.rb +13 -0
  53. data/lib/ab_admin/menu/base_group.rb +0 -1
  54. data/lib/ab_admin/menu/group.rb +2 -4
  55. data/lib/ab_admin/menu/item.rb +4 -8
  56. data/lib/ab_admin/models/asset.rb +7 -10
  57. data/lib/ab_admin/models/locator.rb +1 -1
  58. data/lib/ab_admin/models/settings.rb +2 -2
  59. data/lib/ab_admin/models/structure.rb +3 -3
  60. data/lib/ab_admin/models/track.rb +15 -3
  61. data/lib/ab_admin/utils/csv_document.rb +4 -4
  62. data/lib/ab_admin/utils/eval_helpers.rb +0 -16
  63. data/lib/ab_admin/utils/logger.rb +12 -2
  64. data/lib/ab_admin/utils/mysql.rb +2 -3
  65. data/lib/ab_admin/utils/xls_document.rb +1 -3
  66. data/lib/ab_admin/utils.rb +0 -5
  67. data/lib/ab_admin/version.rb +1 -1
  68. data/lib/ab_admin/views/admin_helpers.rb +33 -16
  69. data/lib/ab_admin/views/admin_navigation_helpers.rb +12 -9
  70. data/lib/ab_admin/views/inputs/ckeditor_input.rb +1 -5
  71. data/lib/ab_admin/views/manager_helpers.rb +9 -3
  72. data/lib/ab_admin/views/search_form_builder.rb +12 -12
  73. data/lib/ab_admin.rb +13 -2
  74. data/lib/generators/ab_admin/install/templates/models/user.rb +1 -2
  75. data/lib/generators/ab_admin/install/templates/uploaders/attachment_file_uploader.rb +1 -1
  76. data/lib/generators/ab_admin/install/templates/uploaders/avatar_uploader.rb +1 -1
  77. data/lib/generators/ab_admin/install/templates/uploaders/picture_uploader.rb +16 -3
  78. data/lib/generators/ab_admin/resource/resource_generator.rb +0 -4
  79. data/lib/generators/ab_admin/resource/templates/controller.erb +0 -7
  80. data/lib/tasks/assets.rake +5 -5
  81. metadata +28 -26
@@ -1,7 +1,7 @@
1
1
  module AbAdmin
2
2
  module Views
3
3
  class SearchFormBuilder < ::Ransack::Helpers::FormBuilder
4
- delegate :content_tag, :tag, :params,
4
+ delegate :content_tag, :tag, :query_params,
5
5
  :text_field_tag, :check_box_tag, :radio_button_tag, :label_tag, :select_tag,
6
6
  :options_for_select, :options_from_collection_for_select, :hidden_field_tag, to: :@template
7
7
 
@@ -43,14 +43,14 @@ module AbAdmin
43
43
  else
44
44
  options[:input_html][:include_blank] = true
45
45
  end
46
- select_tag("q[#{param}]", options_for_select(collection, params[:q][param]), options[:input_html])
46
+ select_tag("q[#{param}]", options_for_select(collection, query_params[param]), options[:input_html])
47
47
  end
48
48
  end
49
49
 
50
50
  def ac_select_field(attr, options={})
51
51
  klass = options[:klass]
52
52
  options[:param] ||= "#{options[:value_attr] || attr}_eq"
53
- pre_select = params[:q].try!(:[], options[:param]) ? klass.where(id: params[:q][options[:param]]).map(&:for_input_token) : []
53
+ pre_select = query_params.try!(:[], options[:param]) ? klass.where(id: query_params[options[:param]]).map(&:for_input_token) : []
54
54
  options[:input_html] ||= {}
55
55
  options[:input_html].deep_merge! class: 'fancy_select', data: {class: klass.name, pre: pre_select.to_json}
56
56
  string_field attr, options
@@ -59,8 +59,8 @@ module AbAdmin
59
59
  def date_field(attr, options={})
60
60
  label(attr, options[:label]) + content_tag(:div, class: 'controls') do
61
61
  gt_param, lt_param = "#{attr}_gteq", "#{attr}_lteq"
62
- text_field_tag("q[#{gt_param}]", params[:q][gt_param], class: 'input-small datepicker', autocomplete: 'off') +
63
- text_field_tag("q[#{lt_param}]", params[:q][lt_param], class: 'input-small datepicker', autocomplete: 'off', id: "q_#{attr}")
62
+ text_field_tag("q[#{gt_param}]", query_params[gt_param], class: 'input-small datepicker', autocomplete: 'off') +
63
+ text_field_tag("q[#{lt_param}]", query_params[lt_param], class: 'input-small datepicker', autocomplete: 'off', id: "q_#{attr}")
64
64
  end
65
65
  end
66
66
 
@@ -80,7 +80,7 @@ module AbAdmin
80
80
  param = options[:param] || "#{options[:value_attr] || attr}_cont"
81
81
  options[:input_html] ||= {}
82
82
  options[:input_html][:id] = "q_#{attr}"
83
- text_field_tag("q[#{param}]", params[:q][param], options[:input_html])
83
+ text_field_tag("q[#{param}]", query_params[param], options[:input_html])
84
84
  end
85
85
  end
86
86
 
@@ -92,9 +92,9 @@ module AbAdmin
92
92
  def number_field(attr, options={})
93
93
  label(attr, options[:label]) + content_tag(:div, class: 'controls') do
94
94
  opts = [['=', 'eq'], ['>', 'gt'], ['<', 'lt']].map { |m| [m[0], "#{attr}_#{m[1]}"] }
95
- current_filter = (opts.detect { |m| params[:q][m[1]].present? } || opts.first)[1]
95
+ current_filter = (opts.detect { |m| query_params[m[1]].present? } || opts.first)[1]
96
96
  select_tag('', options_for_select(opts, current_filter), class: 'input-small predicate-select') +
97
- text_field_tag("q[#{current_filter}]", params[:q][current_filter], class: 'input-small', type: :number)
97
+ text_field_tag("q[#{current_filter}]", query_params[current_filter], class: 'input-small', type: :number, step: 0.01)
98
98
  end
99
99
  end
100
100
 
@@ -102,10 +102,10 @@ module AbAdmin
102
102
  content_tag(:div, class: 'pull-left') do
103
103
  param = options[:param] || "#{attr}_eq"
104
104
  content_tag(:label, class: 'checkbox inline') do
105
- check_box_tag("q[#{param}]", 1, params[:q][param].to_i == 1, class: 'inline', id: "q_#{attr}") + I18n.t('simple_form.yes')
105
+ check_box_tag("q[#{param}]", 1, query_params[param].to_i == 1, class: 'inline', id: "q_#{attr}") + I18n.t('simple_form.yes')
106
106
  end +
107
107
  content_tag(:label, class: 'checkbox inline') do
108
- check_box_tag("q[#{param}]", 0, params[:q][param] && params[:q][param].to_i == 0, class: 'inline') + I18n.t('simple_form.no')
108
+ check_box_tag("q[#{param}]", 0, query_params[param] && query_params[param].to_i == 0, class: 'inline') + I18n.t('simple_form.no')
109
109
  end
110
110
  end + label(attr, options[:label], class: 'right-label')
111
111
  end
@@ -165,11 +165,11 @@ module AbAdmin
165
165
  content_tag(:div, class: 'pull-left') do
166
166
  content_tag(:label, class: 'checkbox inline') do
167
167
  param = "#{attr}_#{predicates[:yes][0]}"
168
- check_box_tag("q[#{param}]", predicates[:yes][1], params[:q][param] == predicates[:yes][1], class: 'inline', id: "q_#{attr}") + I18n.t('simple_form.yes')
168
+ check_box_tag("q[#{param}]", predicates[:yes][1], query_params[param] == predicates[:yes][1], class: 'inline', id: "q_#{attr}") + I18n.t('simple_form.yes')
169
169
  end +
170
170
  content_tag(:label, class: 'checkbox inline') do
171
171
  param = "#{attr}_#{predicates[:no][0]}"
172
- check_box_tag("q[#{param}]", predicates[:no][1], params[:q][param] == predicates[:no][1], class: 'inline') + I18n.t('simple_form.no')
172
+ check_box_tag("q[#{param}]", predicates[:no][1], query_params[param] == predicates[:no][1], class: 'inline') + I18n.t('simple_form.no')
173
173
  end
174
174
  end + label(attr, options[:label], class: 'right-label')
175
175
  end
data/lib/ab_admin.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'inherited_resources'
2
2
  require 'rack-pjax'
3
- require 'has_scope'
4
3
  require 'cancan'
5
4
 
6
5
  require 'ab_admin/version'
@@ -9,7 +8,7 @@ require 'ab_admin/engine'
9
8
 
10
9
  module AbAdmin
11
10
  DOMAINNAME_REGEXP = /\A(?:[0-9a-z]\.|[0-9a-z][0-9a-z\-]*[0-9a-z]+\.)+[a-z]{2,6}\z/
12
- EMAIL_REGEXP = /\A(?#Local part)[_A-Za-z0-9\-]+(?:\.[_A-Za-z0-9\-]+)*@(?#Subdomains)(?:[0-9a-z]\.|[0-9a-z][0-9a-z\-]*[0-9a-z]+\.)+(?#TopLevel Domains)[a-z]{2,18}\z/
11
+ EMAIL_REGEXP = /\A(?#Local part)[_A-Za-z0-9\-+]+(?:\.[_A-Za-z0-9\-+]+)*@(?#Subdomains)(?:[0-9a-z]\.|[0-9a-z][0-9a-z\-]*[0-9a-z]+\.)+(?#TopLevel Domains)[a-z]{2,18}\z/
13
12
 
14
13
  autoload :Utils, 'ab_admin/utils'
15
14
  autoload :Devise, 'ab_admin/devise'
@@ -20,6 +19,7 @@ module AbAdmin
20
19
  autoload :Search, 'ab_admin/config/base'
21
20
  autoload :Export, 'ab_admin/config/base'
22
21
  autoload :Form, 'ab_admin/config/base'
22
+ autoload :Scope, 'ab_admin/config/base'
23
23
  autoload :BaseBuilder, 'ab_admin/config/base'
24
24
  autoload :FieldGroup, 'ab_admin/config/base'
25
25
  autoload :Field, 'ab_admin/config/base'
@@ -150,6 +150,9 @@ module AbAdmin
150
150
  mattr_accessor :devise_layout
151
151
  @@devise_layout = 'admin/devise'
152
152
 
153
+ mattr_accessor :render_unauthorized
154
+ @@render_unauthorized = true
155
+
153
156
  mattr_accessor :image_types
154
157
  @@image_types = %w(image/jpeg image/png image/gif image/jpg image/pjpeg image/tiff image/x-png)
155
158
 
@@ -171,6 +174,12 @@ module AbAdmin
171
174
  mattr_accessor :uploads_dir
172
175
  @@uploads_dir = 'uploads'
173
176
 
177
+ mattr_accessor :date_format
178
+ @@date_format = '%d.%m.%y'
179
+
180
+ mattr_accessor :datetime_format
181
+ @@datetime_format = '%d.%m.%y %H:%M'
182
+
174
183
  mattr_accessor :default_permitted_params
175
184
  @@default_permitted_params = [:fileupload_guid]
176
185
 
@@ -184,6 +193,7 @@ module AbAdmin
184
193
  @@default_resource_settings = {
185
194
  index_views: [:table],
186
195
  search: true,
196
+ export: true,
187
197
  batch: true,
188
198
  hotkeys: true,
189
199
  button_scopes: true,
@@ -194,6 +204,7 @@ module AbAdmin
194
204
  view_default_per_page: Hash.new { 50 }.update(table: 50, tree: 1000, map: 1000),
195
205
  pagination_index_views: [:table, :grid],
196
206
  collection_actions: %w(index search batch rebuild),
207
+ id_column_with_created_at: true
197
208
  }
198
209
 
199
210
  extend Utils
@@ -1,7 +1,6 @@
1
1
  class User < ApplicationRecord
2
2
  devise :database_authenticatable, :confirmable, :lockable,
3
- :recoverable, :rememberable, :trackable, :validatable, :registerable,
4
- :encryptable, encryptor: :sha512
3
+ :recoverable, :rememberable, :trackable, :validatable, :registerable
5
4
 
6
5
  include AbAdmin::Concerns::AdminAddition
7
6
  include AbAdmin::Models::User
@@ -1,5 +1,5 @@
1
1
  class AttachmentFileUploader < AbAdmin::CarrierWave::BaseUploader
2
- def extension_whitelist
2
+ def extension_allowlist
3
3
  %w(pdf doc docx xls xlsx ppt pptx jpg jpeg gif png zip rar csv)
4
4
  end
5
5
  end
@@ -6,7 +6,7 @@ class AvatarUploader < AbAdmin::CarrierWave::BaseUploader
6
6
  process resize_to_fill: [80, 80, 'North']
7
7
  end
8
8
 
9
- def extension_whitelist
9
+ def extension_allowlist
10
10
  %w(jpg jpeg gif png)
11
11
  end
12
12
 
@@ -1,13 +1,26 @@
1
1
  class PictureUploader < AbAdmin::CarrierWave::BaseUploader
2
2
 
3
- process quality: 80
4
- process cropper: :cropper_geometry
3
+ # process quality: 80
4
+ # process cropper: :cropper_geometry
5
5
 
6
6
  version :thumb do
7
7
  process resize_to_fill: [80, 80]
8
8
  end
9
9
 
10
- def extension_whitelist
10
+ version :content do
11
+ process quality: 80
12
+ process resize_to_fill: [800, 800]
13
+ end
14
+
15
+ version :content_webp do
16
+ process convert_to_webp: [{quality: 90, method: 5, resize_to_fill: [800, 800]}]
17
+ end
18
+
19
+ # version :content_webp do
20
+ # process convert_to_webp: [{quality: 80, method: 5, resize_w: 800, resize_h: 800}]
21
+ # end
22
+
23
+ def extension_allowlist
11
24
  %w(jpg jpeg gif png)
12
25
  end
13
26
  end
@@ -13,10 +13,6 @@ module AbAdmin
13
13
  class_option :skip_table, type: :boolean, default: false, description: 'Don\'t create table template'
14
14
  class_option :skip_search_form, type: :boolean, default: false, description: 'Don\'t create search_form template'
15
15
 
16
- hook_for :helper, in: :rails do |instance, helper|
17
- instance.invoke helper, ["admin/#{instance.send(:plural_name)}"]
18
- end
19
-
20
16
  def create_controller_files
21
17
  template 'controller.erb', File.join('app/controllers/admin', "#{controller_file_name}_controller.rb")
22
18
  end
@@ -5,13 +5,6 @@ class Admin::<%= controller_class_name %>Controller < Admin::BaseController
5
5
  <% end -%>
6
6
  load_and_authorize_resource
7
7
 
8
- <% if model.respond_to?(:visible) -%>
9
- has_scope :visible
10
- <% end -%>
11
- <% if model.respond_to?(:un_visible) -%>
12
- has_scope :un_visible
13
- <% end -%>
14
-
15
8
  <% if model.respond_to?(:acts_as_nested_set_options) -%>
16
9
  protected
17
10
 
@@ -6,14 +6,14 @@ namespace :assets do
6
6
  task reprocess: :environment do
7
7
  name = (ENV['CLASS'] || ENV['class'] || 'Asset').to_s
8
8
  klass = name.safe_constantize
9
+ raise "Cannot find a constant with the #{name} specified in the argument string" if klass.nil?
9
10
 
11
+ versions = []
10
12
  if ENV['VERSIONS']
11
- versions = ENV['VERSIONS'].split(',').map(&:to_sym)
12
- else
13
- versions = []
13
+ all_versions = klass.uploaders[:data].versions.keys.map(&:to_s)
14
+ versions = ENV['VERSIONS'].split(',').flat_map{|v| all_versions.find_all {|vv| vv =~ Regexp.new("^#{v.gsub('*', '.*')}$") } }.map(&:to_sym).uniq
14
15
  end
15
-
16
- raise "Cannot find a constant with the #{name} specified in the argument string" if klass.nil?
16
+ puts "Model: #{klass.name}, versions: #{versions.presence || 'ALL'}"
17
17
 
18
18
  bar = ProgressBar.create(title: name, total: klass.count, format: '%c of %C - %a %e |%b>>%i| %p%% %t')
19
19
  bar.progress_mark = '='
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ab_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Leschenko
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-18 00:00:00.000000000 Z
11
+ date: 2023-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 6.0.2
19
+ version: 7.0.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 6.0.2
26
+ version: 7.0.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jquery-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -108,34 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: has_scope
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: simple_slug
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - ">="
115
+ - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: '0'
117
+ version: 0.4.4
132
118
  type: :runtime
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
- - - ">="
122
+ - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: '0'
124
+ version: 0.4.4
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: devise
141
127
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +192,20 @@ dependencies:
206
192
  - - ">="
207
193
  - !ruby/object:Gem::Version
208
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: mime-types
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: carrierwave
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -471,6 +471,7 @@ files:
471
471
  - app/views/admin/manager/_modal_form.html.slim
472
472
  - app/views/admin/manager/_search_form.html.slim
473
473
  - app/views/admin/manager/_show_table.html.slim
474
+ - app/views/admin/manager/_stats.html.slim
474
475
  - app/views/admin/manager/_table.html.slim
475
476
  - app/views/admin/manager/show.html.slim
476
477
  - app/views/admin/settings/_form.html.slim
@@ -542,6 +543,7 @@ files:
542
543
  - lib/ab_admin/devise.rb
543
544
  - lib/ab_admin/engine.rb
544
545
  - lib/ab_admin/hooks.rb
546
+ - lib/ab_admin/hooks/ckeditor_lazy.rb
545
547
  - lib/ab_admin/hooks/will_paginate_id_prefetch.rb
546
548
  - lib/ab_admin/hooks/will_paginate_no_uri.rb
547
549
  - lib/ab_admin/i18n_tools/google_translate.rb
@@ -649,7 +651,7 @@ files:
649
651
  homepage: https://github.com/leschenko/ab_admin
650
652
  licenses: []
651
653
  metadata: {}
652
- post_install_message:
654
+ post_install_message:
653
655
  rdoc_options: []
654
656
  require_paths:
655
657
  - lib
@@ -664,8 +666,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
664
666
  - !ruby/object:Gem::Version
665
667
  version: '0'
666
668
  requirements: []
667
- rubygems_version: 3.1.2
668
- signing_key:
669
+ rubygems_version: 3.4.10
670
+ signing_key:
669
671
  specification_version: 4
670
672
  summary: Simple and real-life tested Rails::Engine admin interface based on slim,
671
673
  bootstrap, inherited_resources, simple_form, device, cancan