rails_admin_settings 1.5.1 → 1.6.0
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/.gitignore +1 -0
- data/.rakeTasks +7 -0
- data/.travis.yml +2 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +22 -2
- data/lib/generators/rails_admin_settings/templates/migration.rb +3 -0
- data/lib/rails_admin_settings/determine_mime_type.rb +193 -0
- data/lib/rails_admin_settings/processing.rb +7 -3
- data/lib/rails_admin_settings/rails_admin_config.rb +2 -3
- data/lib/rails_admin_settings/storage/shrine_uploader.rb +14 -0
- data/lib/rails_admin_settings/uploads.rb +11 -0
- data/lib/rails_admin_settings/validation.rb +1 -1
- data/lib/rails_admin_settings/version.rb +1 -1
- data/rails_admin_settings.gemspec +4 -0
- data/spec/shrine_spec.rb +34 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/support/1024x768.gif +0 -0
- metadata +64 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d138604a0c03f484ed60c6a4a3bf3df0c7936c4e28ff18b4914dee9b05276e5a
|
4
|
+
data.tar.gz: 3f37b53322fdd2dc6ae98500b84edb4d91b2ed8638d141226740b80e5a9b09f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d78b5b79ea3487bb14dd67c4ac2a9d6bc97c4027d42fe8ee548d1fefa1b858c7dafcd6df67f03bde8899641e2619ce62a86b95327bb7d688f75c527bb919dd9
|
7
|
+
data.tar.gz: 3aa78be3967ac7178f2389390c82ebb4f845ca1e5dd5e482e40d4c785643a4256e416722fdff2e11dab863b1515f6806e56d711cd149b0be5660aa61cf8c80a9
|
data/.gitignore
CHANGED
data/.rakeTasks
ADDED
@@ -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>
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rails_admin_settings (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.
|
257
|
+
1.17.3
|
@@ -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
|
-
|
35
|
-
file
|
34
|
+
unless defined?(Shrine)
|
35
|
+
if file?
|
36
|
+
file.url
|
37
|
+
else
|
38
|
+
nil
|
39
|
+
end
|
36
40
|
else
|
37
|
-
|
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
|
@@ -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
|
data/spec/shrine_spec.rb
ADDED
@@ -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
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -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")
|
data/spec/support/1024x768.gif
CHANGED
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.
|
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:
|
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.
|
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
|