rails_admin_settings 1.5.1 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 252fba15948c22109d39fac9bcf01afc70ee01b200533d89c23ae53d562b8eb6
4
- data.tar.gz: 38d7ed5cf17306baa0f6d2440405bcfbdc5f975639077067ef1d2935ed1d368b
3
+ metadata.gz: d138604a0c03f484ed60c6a4a3bf3df0c7936c4e28ff18b4914dee9b05276e5a
4
+ data.tar.gz: 3f37b53322fdd2dc6ae98500b84edb4d91b2ed8638d141226740b80e5a9b09f8
5
5
  SHA512:
6
- metadata.gz: 1cce2abe1a0a361d1a5758b3108dcd2c8945cf27de29172e6314035763d97414bd5e7fc44ad8fabfbaac1e80b583f0f000cc9389e12d32106f61276315bc2c92
7
- data.tar.gz: 03f3c25dc49ec84fd6371cb68c7063ce83b6df9b2f6dcc0f81ff8b7f9b8a4adbe74cbdde16fc1e6c960aecfa8eaab05fc3003da1546e57826c8aaee3574b3242
6
+ metadata.gz: 6d78b5b79ea3487bb14dd67c4ac2a9d6bc97c4027d42fe8ee548d1fefa1b858c7dafcd6df67f03bde8899641e2619ce62a86b95327bb7d688f75c527bb919dd9
7
+ data.tar.gz: 3aa78be3967ac7178f2389390c82ebb4f845ca1e5dd5e482e40d4c785643a4256e416722fdff2e11dab863b1515f6806e56d711cd149b0be5660aa61cf8c80a9
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/version_tmp
16
16
  tmp
17
17
  .idea
18
18
  /uploads
19
+ /public/uploads
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
@@ -14,8 +14,10 @@ env:
14
14
  matrix:
15
15
  - "UPLOADS=paperclip"
16
16
  - "UPLOADS=carrierwave"
17
+ - "UPLOADS=shrine"
17
18
  - "RAILS=1 UPLOADS=paperclip"
18
19
  - "RAILS=1 UPLOADS=carrierwave"
20
+ - "RAILS=1 UPLOADS=shrine"
19
21
 
20
22
  gemfile:
21
23
  - gemfiles/mongoid-6.0.gemfile
@@ -1,3 +1,7 @@
1
+ ## 1.6.0 (2020-06-11)
2
+
3
+ Add shrine file uploads
4
+
1
5
  ## 1.5.0 (2018-06-09)
2
6
 
3
7
  Add float type
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_admin_settings (1.5.1)
4
+ rails_admin_settings (1.6.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -63,18 +63,25 @@ GEM
63
63
  mongoid-grid_fs (>= 1.3, < 3.0)
64
64
  climate_control (0.2.0)
65
65
  concurrent-ruby (1.1.5)
66
+ content_disposition (1.0.0)
66
67
  crass (1.0.4)
67
68
  database_cleaner (1.7.0)
68
69
  diff-lcs (1.3)
69
70
  docile (1.3.2)
71
+ down (5.1.1)
72
+ addressable (~> 2.5)
70
73
  erubi (1.8.0)
71
74
  factory_bot (5.0.2)
72
75
  activesupport (>= 4.2.0)
76
+ ffi (1.13.0)
73
77
  geocoder (1.5.1)
74
78
  globalid (0.4.2)
75
79
  activesupport (>= 4.2.0)
76
80
  i18n (1.6.0)
77
81
  concurrent-ruby (~> 1.0)
82
+ image_processing (1.11.0)
83
+ mini_magick (>= 4.9.5, < 5)
84
+ ruby-vips (>= 2.0.17, < 3)
78
85
  jaro_winkler (1.5.3)
79
86
  json (2.2.0)
80
87
  loofah (2.2.3)
@@ -89,6 +96,7 @@ GEM
89
96
  mime-types-data (~> 3.2015)
90
97
  mime-types-data (3.2019.0331)
91
98
  mimemagic (0.3.3)
99
+ mini_magick (4.10.1)
92
100
  mini_mime (1.0.2)
93
101
  mini_portile2 (2.4.0)
94
102
  minitest (5.11.3)
@@ -178,12 +186,20 @@ GEM
178
186
  rubocop-rspec (1.30.1)
179
187
  rubocop (>= 0.60.0)
180
188
  ruby-progressbar (1.10.1)
189
+ ruby-vips (2.0.17)
190
+ ffi (~> 1.9)
181
191
  russian_phone (0.6.1)
182
192
  safe_yaml (1.0.5)
183
193
  sanitize (5.0.0)
184
194
  crass (~> 1.0.2)
185
195
  nokogiri (>= 1.8.0)
186
196
  nokogumbo (~> 2.0)
197
+ shrine (3.2.1)
198
+ content_disposition (~> 1.0)
199
+ down (~> 5.1)
200
+ shrine-mongoid (1.0.0)
201
+ mongoid (>= 5.0)
202
+ shrine (>= 3.0.0.beta3, < 4)
187
203
  simplecov (0.17.0)
188
204
  docile (~> 1.1)
189
205
  json (>= 1.8, < 3)
@@ -219,6 +235,8 @@ DEPENDENCIES
219
235
  database_cleaner
220
236
  factory_bot
221
237
  geocoder
238
+ image_processing
239
+ mini_magick
222
240
  mongoid (~> 6.3)
223
241
  mongoid-paperclip
224
242
  mongoid-rspec
@@ -230,8 +248,10 @@ DEPENDENCIES
230
248
  russian_phone
231
249
  safe_yaml
232
250
  sanitize
251
+ shrine (~> 3.0)
252
+ shrine-mongoid (~> 1.0)
233
253
  simplecov
234
254
  validates_email_format_of
235
255
 
236
256
  BUNDLED WITH
237
- 1.17.2
257
+ 1.17.3
@@ -15,6 +15,9 @@ class CreateRailsAdminSettings < ActiveRecord::Migration[5.0]
15
15
  t.attachment :file
16
16
  elsif defined?(CarrierWave)
17
17
  t.string :file
18
+ elsif defined?(Shrine)
19
+ t.text :file_data
20
+
18
21
  end
19
22
  t.timestamps
20
23
  end
@@ -0,0 +1,193 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Shrine
4
+ module Plugins
5
+ # Documentation can be found on https://shrinerb.com/docs/plugins/determine_mime_type
6
+ module DetermineMimeType
7
+ LOG_SUBSCRIBER = -> (event) do
8
+ Shrine.logger.info "MIME Type (#{event.duration}ms) – #{{
9
+ io: event[:io].class,
10
+ uploader: event[:uploader],
11
+ }.inspect}"
12
+ end
13
+
14
+ def self.configure(uploader, log_subscriber: LOG_SUBSCRIBER, **opts)
15
+ uploader.opts[:determine_mime_type] ||= { analyzer: :file, analyzer_options: {} }
16
+ uploader.opts[:determine_mime_type].merge!(opts)
17
+
18
+ # instrumentation plugin integration
19
+ uploader.subscribe(:mime_type, &log_subscriber) if uploader.respond_to?(:subscribe)
20
+ end
21
+
22
+ module ClassMethods
23
+ # Determines the MIME type of the IO object by calling the specified
24
+ # analyzer.
25
+ def determine_mime_type(io)
26
+ analyzer = opts[:determine_mime_type][:analyzer]
27
+
28
+ analyzer = mime_type_analyzer(analyzer) if analyzer.is_a?(Symbol)
29
+ args = if analyzer.is_a?(Proc)
30
+ [io, mime_type_analyzers].take(analyzer.arity.abs)
31
+ else
32
+ [io, opts[:determine_mime_type][:analyzer_options]]
33
+ end
34
+
35
+ mime_type = instrument_mime_type(io) { analyzer.call(*args) }
36
+ io.rewind
37
+
38
+ mime_type
39
+ end
40
+ alias mime_type determine_mime_type
41
+
42
+ # Returns a hash of built-in MIME type analyzers, where keys are
43
+ # analyzer names and values are `#call`-able objects which accepts the
44
+ # IO object.
45
+ def mime_type_analyzers
46
+ @mime_type_analyzers ||= MimeTypeAnalyzer::SUPPORTED_TOOLS.inject({}) do |hash, tool|
47
+ hash.merge!(tool => mime_type_analyzer(tool))
48
+ end
49
+ end
50
+
51
+ # Returns callable mime type analyzer object.
52
+ def mime_type_analyzer(name)
53
+ MimeTypeAnalyzer.new(name)
54
+ end
55
+
56
+ private
57
+
58
+ # Sends a `mime_type.shrine` event for instrumentation plugin.
59
+ def instrument_mime_type(io, &block)
60
+ return yield unless respond_to?(:instrument)
61
+
62
+ instrument(:mime_type, io: io, &block)
63
+ end
64
+ end
65
+
66
+ module InstanceMethods
67
+ private
68
+
69
+ # Calls the configured MIME type analyzer.
70
+ def extract_mime_type(io)
71
+ self.class.determine_mime_type(io)
72
+ end
73
+ end
74
+
75
+ class MimeTypeAnalyzer
76
+ SUPPORTED_TOOLS = [:fastimage, :file, :filemagic, :mimemagic, :marcel, :mime_types, :mini_mime, :content_type]
77
+ MAGIC_NUMBER = 256 * 1024
78
+
79
+ def initialize(tool)
80
+ raise Error, "unknown mime type analyzer #{tool.inspect}, supported analyzers are: #{SUPPORTED_TOOLS.join(",")}" unless SUPPORTED_TOOLS.include?(tool)
81
+
82
+ @tool = tool
83
+ end
84
+
85
+ def call(io, options = {})
86
+ mime_type = send(:"extract_with_#{@tool}", io, options)
87
+ io.rewind
88
+
89
+ mime_type
90
+ end
91
+
92
+ private
93
+
94
+ def extract_with_file(io, options)
95
+ require "open3"
96
+
97
+ return nil if io.eof? # file command returns "application/x-empty" for empty files
98
+
99
+ Open3.popen3(*%W[file --mime-type --brief -]) do |stdin, stdout, stderr, thread|
100
+ begin
101
+ IO.copy_stream(io, stdin.binmode)
102
+ rescue Errno::EPIPE
103
+ end
104
+ stdin.close
105
+
106
+ status = thread.value
107
+
108
+ raise Error, "file command failed to spawn: #{stderr.read}" if status.nil?
109
+ raise Error, "file command failed: #{stderr.read}" unless status.success?
110
+
111
+ $stderr.print(stderr.read)
112
+
113
+ output = stdout.read.strip
114
+
115
+ raise Error, "file command failed: #{output}" if output.include?("cannot open")
116
+
117
+ output
118
+ end
119
+ rescue Errno::ENOENT
120
+ raise Error, "file command-line tool is not installed"
121
+ end
122
+
123
+ def extract_with_fastimage(io, options)
124
+ require "fastimage"
125
+
126
+ type = FastImage.type(io)
127
+ "image/#{type}" if type
128
+ end
129
+
130
+ def extract_with_filemagic(io, options)
131
+ require "filemagic"
132
+
133
+ return nil if io.eof? # FileMagic returns "application/x-empty" for empty files
134
+
135
+ FileMagic.open(FileMagic::MAGIC_MIME_TYPE) do |filemagic|
136
+ filemagic.buffer(io.read(MAGIC_NUMBER))
137
+ end
138
+ end
139
+
140
+ def extract_with_mimemagic(io, options)
141
+ require "mimemagic"
142
+
143
+ mime = MimeMagic.by_magic(io)
144
+ mime&.type
145
+ end
146
+
147
+ def extract_with_marcel(io, options)
148
+ require "marcel"
149
+
150
+ return nil if io.eof? # marcel returns "application/octet-stream" for empty files
151
+
152
+ filename = (options[:filename_fallback] ? extract_filename(io) : nil)
153
+ Marcel::MimeType.for(io, name: filename)
154
+ end
155
+
156
+ def extract_with_mime_types(io, options)
157
+ require "mime/types"
158
+
159
+ if filename = extract_filename(io)
160
+ mime_type = MIME::Types.of(filename).first
161
+ mime_type&.content_type
162
+ end
163
+ end
164
+
165
+ def extract_with_mini_mime(io, options)
166
+ require "mini_mime"
167
+
168
+ if filename = extract_filename(io)
169
+ info = MiniMime.lookup_by_filename(filename)
170
+ info&.content_type
171
+ end
172
+ end
173
+
174
+ def extract_with_content_type(io, options)
175
+ if io.respond_to?(:content_type) && io.content_type
176
+ io.content_type.split(";").first
177
+ end
178
+ end
179
+
180
+ def extract_filename(io)
181
+ if io.respond_to?(:original_filename)
182
+ io.original_filename
183
+ elsif io.respond_to?(:path)
184
+ File.basename(io.path)
185
+ end
186
+ end
187
+ end
188
+
189
+ end
190
+
191
+ register_plugin(:determine_mime_type, DetermineMimeType)
192
+ end
193
+ end
@@ -31,10 +31,14 @@ module RailsAdminSettings
31
31
 
32
32
  def value
33
33
  if upload_kind?
34
- if file?
35
- file.url
34
+ unless defined?(Shrine)
35
+ if file?
36
+ file.url
37
+ else
38
+ nil
39
+ end
36
40
  else
37
- nil
41
+ file.url if file.present?
38
42
  end
39
43
  elsif raw.blank? || disabled?
40
44
  default_value
@@ -4,7 +4,6 @@ module RailsAdminSettings
4
4
  if base.respond_to?(:rails_admin)
5
5
  base.rails_admin do
6
6
  navigation_label I18n.t('admin.settings.label')
7
-
8
7
  list do
9
8
  if Object.const_defined?('RailsAdminToggleable')
10
9
  field :enabled, :toggle
@@ -16,9 +15,9 @@ module RailsAdminSettings
16
15
  field :name
17
16
  field :raw do
18
17
  pretty_value do
19
- if bindings[:object].file_kind?
18
+ if bindings[:object].file_kind? and !defined?(Shrine) and bindings[:object].to_path.present?
20
19
  "<a href='#{CGI::escapeHTML(bindings[:object].file.url)}'>#{CGI::escapeHTML(bindings[:object].to_path)}</a>".html_safe
21
- elsif bindings[:object].image_kind?
20
+ elsif bindings[:object].image_kind? and !defined?(Shrine) and !bindings[:object].file.nil?
22
21
  "<a href='#{CGI::escapeHTML(bindings[:object].file.url)}'><img src='#{CGI::escapeHTML(bindings[:object].file.url)}' /></a>".html_safe
23
22
  else
24
23
  value
@@ -0,0 +1,14 @@
1
+ module RailsAdminSettings
2
+ module Uploads
3
+ class ShrineUploader < Shrine
4
+ plugin :determine_mime_type
5
+ plugin :validation_helpers
6
+ plugin :mongoid if RailsAdminSettings.mongoid?
7
+ Attacher.validate do
8
+ validate_mime_type_inclusion %w[image/jpeg image/gif image/png]
9
+ validate_max_size 2.megabytes
10
+ end
11
+ end
12
+
13
+ end
14
+ end
@@ -1,6 +1,7 @@
1
1
  module RailsAdminSettings
2
2
  module Uploads
3
3
  autoload :CarrierWaveUploader, "rails_admin_settings/storage/carrier_wave_uploader"
4
+ autoload :ShrineUploader, "rails_admin_settings/storage/shrine_uploader"
4
5
 
5
6
  def self.paperclip_options
6
7
  if defined?(Rails)
@@ -37,6 +38,16 @@ module RailsAdminSettings
37
38
  end
38
39
  Settings.file_uploads_supported = true
39
40
  Settings.file_uploads_engine = :paperclip
41
+ elsif RailsAdminSettings.active_record? && defined?(Shrine)
42
+ Settings.file_uploads_supported = true
43
+ Settings.file_uploads_engine = :shrine
44
+ base.send(:include, ShrineUploader::Attachment(:file))
45
+ elsif RailsAdminSettings.mongoid? && ::Mongoid.const_defined?('Shrine')
46
+ base.send(:include, ::Mongoid::Document)
47
+ base.send(:include, ShrineUploader::Attachment(:file))
48
+ base.field(:file_data, type: String)
49
+ Settings.file_uploads_supported = true
50
+ Settings.file_uploads_engine = :shrine
40
51
  else
41
52
  # puts "[rails_admin_settings] Uploads disabled"
42
53
  end
@@ -32,7 +32,7 @@ module RailsAdminSettings
32
32
  def add_file_validator(base)
33
33
  base.validate if: :file_kind? do
34
34
  unless Settings.file_uploads_supported
35
- raise '[rails_admin_settings] File kind requires either CarrierWave or Paperclip. Check that rails_admin_settings is below them in Gemfile'
35
+ raise '[rails_admin_settings] File kind requires either CarrierWave or Paperclip or Shrine. Check that rails_admin_settings is below them in Gemfile'
36
36
  end
37
37
  end
38
38
  end
@@ -1,3 +1,3 @@
1
1
  module RailsAdminSettings
2
- VERSION = "1.5.1"
2
+ VERSION = "1.6.0"
3
3
  end
@@ -37,4 +37,8 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency "carrierwave-mongoid"
38
38
  spec.add_development_dependency "mongoid-paperclip"
39
39
  spec.add_development_dependency "rubocop-rspec"
40
+ spec.add_development_dependency 'image_processing'
41
+ spec.add_development_dependency "mini_magick"
42
+ spec.add_development_dependency "shrine", "~> 3.0"
43
+ spec.add_development_dependency "shrine-mongoid", "~> 1.0"
40
44
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe "Uploads" do
5
+ if Settings.file_uploads_engine != :shrine
6
+ pending "shrine not detected, skipped. To run use UPLOADS=shrine rspec"
7
+ else
8
+ before :each do
9
+ f = "#{File.dirname(__FILE__)}/../uploads/1024x768.gif"
10
+ if File.file?(f)
11
+ File.unlink(f)
12
+ end
13
+ end
14
+ it 'supports file kind' do
15
+ Settings.set('file', File.open("#{File.dirname(__FILE__)}/support/1024x768.gif"), kind: 'file')
16
+ expect(Settings.get(:file).file.metadata["filename"]).to eq '1024x768.gif'
17
+ expect(Settings.get(:file).file.metadata["size"]).to eq 4357
18
+ expect(Settings.get(:file).file.metadata["mime_type"]).to eq "image/gif"
19
+ expect(Settings.get(:file).file.id.split(".").last).to eq "gif"
20
+ expect(Settings.file.split("/").second + "/" + Settings.file.split("/").last.split(".").last).to eq "uploads/gif"
21
+ expect(File.exists?("public/uploads/#{Settings.get(:file).file.id}")).to be_truthy
22
+ end
23
+ it 'supports image kind' do
24
+ Settings.set('file', File.open("#{File.dirname(__FILE__)}/support/1024x768.gif"), kind: 'image')
25
+ expect(Settings.get(:file).file.metadata["filename"]).to eq '1024x768.gif'
26
+ expect(Settings.get(:file).file.metadata["size"]).to eq 4357
27
+ expect(Settings.get(:file).file.metadata["mime_type"]).to eq "image/gif"
28
+ expect(Settings.get(:file).file.id.split(".").last).to eq "gif"
29
+ expect(Settings.file.split("/").second + "/" + Settings.file.split("/").last.split(".").last).to eq "uploads/gif"
30
+ expect(File.exists?("public/uploads/#{Settings.get(:file).file.id}")).to be_truthy
31
+ end
32
+ end
33
+ end
34
+
@@ -28,6 +28,22 @@ if ENV['UPLOADS'] == 'carrierwave'
28
28
  end
29
29
  end
30
30
  end
31
+ if ENV['UPLOADS'] == 'shrine'
32
+ require "shrine"
33
+ require "shrine/storage/file_system"
34
+ Shrine.storages = {
35
+ cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"), # temporary
36
+ store: Shrine::Storage::FileSystem.new("public", prefix: "uploads"), # permanent
37
+ }
38
+
39
+ if ENV['ACTIVERECORD']
40
+ Shrine.plugin :activerecord
41
+ end
42
+ Shrine.plugin :cached_attachment_data # for retaining the cached file across form redisplays
43
+ Shrine.plugin :restore_cached_data # re-extract metadata when attaching a cached file
44
+ end
45
+
46
+
31
47
 
32
48
  I18n.enforce_available_locales = true
33
49
  I18n.load_path << File.join(File.dirname(__FILE__), "..", "config", "locales", "en.yml")
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_admin_settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Tv
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-02 00:00:00.000000000 Z
11
+ date: 2020-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -262,6 +262,62 @@ dependencies:
262
262
  - - ">="
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: image_processing
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: mini_magick
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: shrine
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - "~>"
298
+ - !ruby/object:Gem::Version
299
+ version: '3.0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - "~>"
305
+ - !ruby/object:Gem::Version
306
+ version: '3.0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: shrine-mongoid
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - "~>"
312
+ - !ruby/object:Gem::Version
313
+ version: '1.0'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - "~>"
319
+ - !ruby/object:Gem::Version
320
+ version: '1.0'
265
321
  description: Mongoid / ActiveRecord + RailsAdmin App Settings management
266
322
  email:
267
323
  - glebtv@gmail.com
@@ -270,6 +326,7 @@ extensions: []
270
326
  extra_rdoc_files: []
271
327
  files:
272
328
  - ".gitignore"
329
+ - ".rakeTasks"
273
330
  - ".rspec"
274
331
  - ".travis.yml"
275
332
  - CHANGELOG.md
@@ -288,6 +345,7 @@ files:
288
345
  - lib/generators/rails_admin_settings/migration_generator.rb
289
346
  - lib/generators/rails_admin_settings/templates/migration.rb
290
347
  - lib/rails_admin_settings.rb
348
+ - lib/rails_admin_settings/determine_mime_type.rb
291
349
  - lib/rails_admin_settings/dumper.rb
292
350
  - lib/rails_admin_settings/engine.rb
293
351
  - lib/rails_admin_settings/fallback.rb
@@ -300,6 +358,7 @@ files:
300
358
  - lib/rails_admin_settings/require_helpers.rb
301
359
  - lib/rails_admin_settings/settings.rb
302
360
  - lib/rails_admin_settings/storage/carrier_wave_uploader.rb
361
+ - lib/rails_admin_settings/storage/shrine_uploader.rb
303
362
  - lib/rails_admin_settings/tasks.rb
304
363
  - lib/rails_admin_settings/uploads.rb
305
364
  - lib/rails_admin_settings/validation.rb
@@ -318,6 +377,7 @@ files:
318
377
  - spec/namespaced_spec.rb
319
378
  - spec/paperclip_spec.rb
320
379
  - spec/settings_spec.rb
380
+ - spec/shrine_spec.rb
321
381
  - spec/spec_helper.rb
322
382
  - spec/support/1024x768.gif
323
383
  - spec/support/database_cleaner.rb
@@ -345,7 +405,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
405
  - !ruby/object:Gem::Version
346
406
  version: '0'
347
407
  requirements: []
348
- rubygems_version: 3.0.4
408
+ rubygems_version: 3.1.2
349
409
  signing_key:
350
410
  specification_version: 4
351
411
  summary: ''
@@ -362,6 +422,7 @@ test_files:
362
422
  - spec/namespaced_spec.rb
363
423
  - spec/paperclip_spec.rb
364
424
  - spec/settings_spec.rb
425
+ - spec/shrine_spec.rb
365
426
  - spec/spec_helper.rb
366
427
  - spec/support/1024x768.gif
367
428
  - spec/support/database_cleaner.rb