rails_admin_multiple_file_upload 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c3ebb1cb1e27b448d43809bcbbc3445005dea017
4
+ data.tar.gz: b173b4908b2221db203e162222784bfa5365bfa5
5
+ SHA512:
6
+ metadata.gz: 3f04c5e2657834dd3a5ca64f937567850e8fff0a95718e967d25ace1f515d1668aaf2f9b5615211647e81624948111726041c2c14bacc767a192ce1e36979584
7
+ data.tar.gz: e30c731170b0769c0cc9bb27a9d662f02fc698947b0810b1d7ae65844b44de25234c1e65edb24da951707c96451ae146f4074c78f64526dc52bbb38dad57819d
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .idea
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ rails_admin_multiple_file_upload
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rails_admin_multiple_file_upload.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Alexander Kiseliev
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # RailsAdminMultipleFileUpload
2
+
3
+ rails_admin + dropzone.js + mongoid(embedded)
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'rails_admin_multiple_file_upload'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ ## Usage with rails_admin
16
+
17
+ Add the sort_embedded action for each model or only for models you need
18
+
19
+ ```ruby
20
+ RailsAdmin.config do |config|
21
+ config.actions do
22
+ ......
23
+ multiple_file_upload do
24
+ visible do
25
+ %w(Page).include? bindings[:abstract_model].model_name
26
+ end
27
+ end
28
+ end
29
+ end
30
+ ```
31
+
32
+ In embedded model:
33
+
34
+ ```ruby
35
+ has_mongoid_attached_file :image, styles: {main: "1000x1000>"}
36
+ ```
37
+
38
+ In rails_admin block for parent model:
39
+
40
+ ```ruby
41
+ multiple_file_upload(
42
+ {
43
+ fields: [:my_news_images],
44
+ thumbnail_size: :main #default :thumb
45
+ }
46
+ )
47
+ ```
48
+
49
+ In config/locales/* :
50
+
51
+
52
+ ```yml
53
+ I18n:
54
+
55
+ ru:
56
+ rails_admin:
57
+ multiple_file_upload:
58
+ my_news:
59
+ my_news_images: Фотогалерея
60
+
61
+ # or with specified fields
62
+ ru:
63
+ rails_admin:
64
+ multiple_file_upload:
65
+ my_news:
66
+ my_news_images:
67
+ image: Фотогалерея
68
+ image2: Фотогалерея вторая
69
+
70
+ ```
71
+
72
+ ## TODO
73
+
74
+ * Documentation fixes
75
+ * Carrierwave support
76
+ * More configs
77
+ * Style
78
+ * Find and fix bugs. I am sure, bugs are here
79
+
80
+ ## Contributing
81
+
82
+ 1. Fork it
83
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
84
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
85
+ 4. Push to the branch (`git push origin my-new-feature`)
86
+ 5. Create new Pull Request
87
+
88
+ ## Credits
89
+
90
+ Some ideas and code for this gem are taken from:
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,20 @@
1
+ #= require dropzone
2
+
3
+ window.Dropzone.autoDiscover = false
4
+
5
+
6
+ window.Dropzone.dictDefaultMessage = "Перетащите сюда файлы для загрузки"
7
+ window.Dropzone.dictFallbackMessage = "Ваш браузер не поддерживает данный способ загрузки файлов!=("
8
+ window.Dropzone.dictFallbackText = "Используйте стандартные средства загрузки в разделе 'Редактирование'."
9
+
10
+ window.Dropzone.dictFileTooBig = "Размер файла слишком большой ({{filesize}} MB). максимально допустимый размер файла - {{maxFilesize}} MB."
11
+ window.Dropzone.dictInvalidFileType = "Вы не можете загружать файлы данного типа!"
12
+
13
+ window.Dropzone.dictResponseError = "Ошибка загрузки. Код ошибки - {{statusCode}}."
14
+ window.Dropzone.dictCancelUpload = "Загрузка отменена."
15
+ window.Dropzone.dictCancelUploadConfirmation = "Вы уверены, что хотите отменить загрузку?"
16
+
17
+ window.Dropzone.dictRemoveFile = "Удалить"
18
+ window.Dropzone.dictRemoveFileConfirmation = null
19
+
20
+ window.Dropzone.dictMaxFilesExceeded = "Загрузка невозможна. Достигнут максимум количества загружаемых файлов."
@@ -0,0 +1,9 @@
1
+ @import 'dropzone/dropzone'
2
+
3
+ .rails_admin_multiple_file_upload_block
4
+ .file_block_load_already
5
+ float: left
6
+ max-width: 120px
7
+ margin-left: 20px
8
+ img
9
+ width: 100%
@@ -0,0 +1,68 @@
1
+ = stylesheet_link_tag 'rails_admin/rails_admin_multiple_file_upload'
2
+ = javascript_include_tag 'rails_admin/rails_admin_multiple_file_upload'
3
+
4
+ .rails_admin_multiple_file_upload_block
5
+ .controls
6
+ ul.nav.nav-tabs
7
+ - multiple_file_upload_fields.each do |f|
8
+ li
9
+ ruby:
10
+ if f.is_a?(Hash)
11
+ next if f.empty?
12
+ embedded_field = f.keys.first
13
+ embedded_model_upload_field = f.values.first
14
+ embedded_model_upload_field = embedded_model_upload_field.last if embedded_model_upload_field.is_a?(Array)
15
+
16
+ i18n_path = "rails_admin.multiple_file_upload.#{@object.class.name.tableize}.#{embedded_field}.#{embedded_model_upload_field}"
17
+ i18n_path_default = "rails_admin.multiple_file_upload.#{@object.class.name.tableize}.#{embedded_field}"
18
+
19
+ link = "#multiple_file_upload_#{embedded_field}_#{embedded_model_upload_field}"
20
+ title = I18n.t(i18n_path, default: I18n.t(i18n_path_default))
21
+
22
+ else
23
+ i18n_path = "rails_admin.multiple_file_upload.#{@object.class.name.tableize}.#{f}.image"
24
+ i18n_path_default = "rails_admin.multiple_file_upload.#{@object.class.name.tableize}.#{f}"
25
+ link = "#multiple_file_upload_#{f}_image"
26
+ title = I18n.t(i18n_path, default: I18n.t(i18n_path_default))
27
+ end
28
+
29
+ = link_to I18n.t(i18n_path, default: I18n.t(i18n_path_default)), link, title: title, "data-toggle" => "tab"
30
+
31
+ .tab-content
32
+
33
+ - multiple_file_upload_fields.each do |f|
34
+ - if f.is_a?(Hash)
35
+ - next if f.empty?
36
+ - embedded_field = f.keys.first
37
+ - embedded_model_upload_field = f.values.first
38
+ - else
39
+ - embedded_field = f
40
+ - embedded_model_upload_field = "image"
41
+
42
+ - embedded_objects = @object.send(embedded_field)
43
+ - embedded_model_ordered_scope = ""
44
+ - if embedded_objects.respond_to?("sorted")
45
+ - embedded_model_ordered_scope = "sorted"
46
+
47
+ - if embedded_objects.respond_to?("ordered") and embedded_model_ordered_scope.blank?
48
+ - embedded_model_ordered_scope = "ordered"
49
+
50
+ .tab-pane{id="multiple_file_upload_#{embedded_field}_#{embedded_model_upload_field}"}
51
+ .row-fluid
52
+ - block_id = "rails_admin_multiple_upload_#{embedded_field}_#{embedded_model_upload_field}"
53
+ - button_id = "rails_admin_multiple_upload_#{embedded_field}_#{embedded_model_upload_field}_button"
54
+ .span12.rails_admin_multiple_upload{id="#{block_id}"}
55
+ = rails_admin_multiple_file_upload embedded_objects.send(embedded_model_ordered_scope).to_a, {embedded_field: embedded_field, embedded_model_upload_field: embedded_model_upload_field}
56
+
57
+ = button_tag "Загрузить", id: button_id
58
+ javascript:
59
+ $("##{block_id} .dropzone").dropzone({
60
+ paramName: "#{embedded_field}[#{embedded_model_upload_field}]",
61
+ autoProcessQueue: false,
62
+ addRemoveLinks: true
63
+ });
64
+ $("##{button_id}").click(function(e){
65
+ e.preventDefault();
66
+ $("##{block_id} .dropzone").dropzone().processQueue();
67
+ return false
68
+ })
@@ -0,0 +1,9 @@
1
+ ru:
2
+ admin:
3
+ actions:
4
+ multiple_file_upload:
5
+ menu: "Загрузка файлов"
6
+ breadcrumb: "Загрузка файлов"
7
+ error: "Ошибка"
8
+ success: "Успешно"
9
+ title: "Загрузка файлов"
@@ -0,0 +1,14 @@
1
+ module RailsAdminMultipleFileUpload
2
+
3
+ end
4
+
5
+ require "rails_admin_multiple_file_upload/version"
6
+ require 'rails_admin_multiple_file_upload/engine'
7
+
8
+ require 'rails_admin/config/actions'
9
+ require 'rails_admin/config/model'
10
+
11
+ require 'rails_admin_multiple_file_upload/configuration'
12
+ require 'rails_admin_multiple_file_upload/action'
13
+ require 'rails_admin_multiple_file_upload/model'
14
+ require 'rails_admin_multiple_file_upload/helper'
@@ -0,0 +1,70 @@
1
+ module RailsAdmin
2
+ module Config
3
+ module Actions
4
+ class MultipleFileUpload < Base
5
+ RailsAdmin::Config::Actions.register(self)
6
+
7
+ # Is the action acting on the root level (Example: /admin/contact)
8
+ register_instance_option :root? do
9
+ false
10
+ end
11
+
12
+ register_instance_option :collection? do
13
+ false
14
+ end
15
+
16
+ # Is the action on an object scope (Example: /admin/team/1/edit)
17
+ register_instance_option :member? do
18
+ true
19
+ end
20
+
21
+ register_instance_option :route_fragment do
22
+ 'multiple_file_upload'
23
+ end
24
+
25
+ register_instance_option :controller do
26
+ Proc.new do |klass|
27
+ @conf = ::RailsAdminMultipleFileUpload::Configuration.new @abstract_model
28
+
29
+ if params['id'].present?
30
+ if request.get?
31
+ # @nodes = list_entries(@model_config, :index, nil, nil).sort { |a,b| a.lft <=> b.lft }
32
+ @files =
33
+ render action: @action.template_name
34
+
35
+ elsif request.post?
36
+ begin
37
+ embedded_model = params[:embedded_model].to_s
38
+ embedded_field = params[:embedded_field].to_s
39
+
40
+ embedded_model_upload_field = params[:embedded_model_upload_field].to_s
41
+ embedded_model_upload_field = "image" if embedded_model_upload_field.blank?
42
+
43
+ main_obj = @object
44
+ embedded = main_obj.send(embedded_field).new
45
+ embedded.send(embedded_model_upload_field + "=", params[embedded_model_upload_field])
46
+ embedded.save
47
+
48
+ message = "<strong>#{I18n.t('admin.actions.multiple_file_upload.success')}!</strong>"
49
+ rescue Exception => e
50
+
51
+ message = "<strong>#{I18n.t('admin.actions.multiple_file_upload.error')}</strong>: #{e}"
52
+ end
53
+
54
+ render text: message
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ register_instance_option :link_icon do
61
+ 'icon-upload'
62
+ end
63
+
64
+ register_instance_option :http_methods do
65
+ [:get, :post]
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,20 @@
1
+ module RailsAdminMultipleFileUpload
2
+ class Configuration
3
+ def initialize(abstract_model)
4
+ @abstract_model = abstract_model
5
+ end
6
+
7
+ def options
8
+ @options ||= {
9
+ fields: [{}],
10
+ thumbnail_size: :thumb,
11
+ upload_gem: :paperclip,
12
+ }.merge(config || {})
13
+ end
14
+
15
+ protected
16
+ def config
17
+ ::RailsAdmin::Config.model(@abstract_model.model).multiple_file_upload || {}
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ require 'dropzonejs-rails'
2
+
3
+ module RailsAdminMultipleFileUpload
4
+ class Engine < ::Rails::Engine
5
+
6
+ initializer "RailsAdminMultipleFileUpload precompile hook", group: :all do |app|
7
+
8
+ app.config.assets.precompile += %w(rails_admin/rails_admin_multiple_file_upload.js rails_admin/rails_admin_multiple_file_upload.css)
9
+ end
10
+
11
+ initializer 'Include RailsAdminMultipleFileUpload::Helper' do |app|
12
+ ActionView::Base.send :include, RailsAdminMultipleFileUpload::Helper
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,68 @@
1
+ module RailsAdminMultipleFileUpload
2
+ module Helper
3
+ def rails_admin_multiple_file_upload(files, opts= {})
4
+ files = files.to_a.sort_by { |m| m.send(opts[:embedded_model_order_field] || "order").to_i }
5
+ id = "ns_#{rand(100_000_000..999_999_999)}"
6
+ config = {
7
+ update_url: multiple_file_upload_path(model_name: @abstract_model),
8
+ embedded_field: opts[:embedded_field],
9
+ embedded_model_upload_field: opts[:embedded_model_upload_field] || "image",
10
+ embedded_model: @abstract_model.model.new.send(opts[:embedded_field]).new.class.to_s
11
+ }
12
+ content_tag(:div, rails_admin_multiple_file_upload_builder(files, config), id: id, class: 'rails_admin_multiple_file_upload')
13
+ end
14
+
15
+ def rails_admin_multiple_file_upload_builder(files, config)
16
+ ret = []
17
+ _ret = []
18
+ @object.send(config[:embedded_field]).sorted.each do |ef|
19
+ if multiple_file_upload_paperclip?
20
+ if ef.send(config[:embedded_model_upload_field] + "_content_type") =~ /\Aimage/
21
+ file_url = ef.send(config[:embedded_model_upload_field]).url(multiple_file_upload_thumbnail_size)
22
+ _ret << content_tag(:div, image_tag(file_url), class: "file_block_load_already")
23
+
24
+ else
25
+ if ef.respond_to(:name)
26
+ file_name = ef.name
27
+ else
28
+ file_name = ef.send(config[:embedded_model_upload_field] + "_file_name")
29
+ end
30
+ _ret << content_tag(:div, link_to(ef.name), class: "file_block_load_already")
31
+ end
32
+ end
33
+ end
34
+ ret << content_tag(:div, _ret.join.html_safe)
35
+ ret << content_tag(:div, "", class: "clearfix")
36
+ ret << rails_admin_form_for(@object, url: config[:update_url], html: {method: :post, multipart: true, class: "form-horizontal denser dropzone"})do |f|
37
+ _ret = []
38
+ _ret << hidden_field_tag(:embedded_field, config[:embedded_field])
39
+ _ret << hidden_field_tag(:embedded_model_upload_field, config[:embedded_model_upload_field])
40
+ _ret.join.html_safe
41
+ # f.fields_for config[:embedded_field] do |ef|
42
+ # @object.send(config[:embedded_field]).each do |field|
43
+ # ef.input_for field
44
+ # end
45
+ # end
46
+ # f.submit
47
+ end
48
+ ret.join.html_safe
49
+ end
50
+
51
+
52
+
53
+ def multiple_file_upload_fields
54
+ @conf.options[:fields]
55
+ end
56
+
57
+ def multiple_file_upload_paperclip?
58
+ @conf.options[:upload_gem] == :paperclip
59
+ end
60
+ def multiple_file_upload_carrierwave?
61
+ @conf.options[:upload_gem] == :carrierwave
62
+ end
63
+ def multiple_file_upload_thumbnail_size
64
+ @conf.options[:thumbnail_size]
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,9 @@
1
+ module RailsAdmin
2
+ module Config
3
+ class Model
4
+ register_instance_option :multiple_file_upload do
5
+ nil
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module RailsAdminMultipleFileUpload
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rails_admin_multiple_file_upload/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "rails_admin_multiple_file_upload"
8
+ gem.version = RailsAdminMultipleFileUpload::VERSION
9
+ gem.authors = ["Alexander Kiseliev"]
10
+ gem.email = ["i43ack@gmail.com"]
11
+ gem.description = %q{Rails admin multiple file upload with AJAX and DnD}
12
+ gem.summary = %q{Interface for uploading files for rails_admin}
13
+ gem.homepage = "https://github.com/ack43/rails_admin_multiple_file_upload"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_development_dependency "bundler", "~> 1.10"
21
+ gem.add_development_dependency "rake", "~> 10.0"
22
+
23
+ gem.add_dependency "rails_admin"
24
+ gem.add_dependency 'dropzonejs-rails'
25
+ end
data/release.sh ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/bash
2
+ bundle update
3
+ git add --all .
4
+ git commit -am "${*:1}"
5
+ git push
6
+ git push gh master
7
+ rake release
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_admin_multiple_file_upload
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Kiseliev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails_admin
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dropzonejs-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Rails admin multiple file upload with AJAX and DnD
70
+ email:
71
+ - i43ack@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - ".ruby-gemset"
78
+ - ".ruby-version"
79
+ - Gemfile
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - app/assets/javascripts/rails_admin/rails_admin_multiple_file_upload.coffee
84
+ - app/assets/stylesheets/rails_admin/rails_admin_multiple_file_upload.sass
85
+ - app/views/rails_admin/main/multiple_file_upload.html.slim
86
+ - config/locales/ru.rails_admin_multiple_file_upload.yml
87
+ - lib/rails_admin_multiple_file_upload.rb
88
+ - lib/rails_admin_multiple_file_upload/action.rb
89
+ - lib/rails_admin_multiple_file_upload/configuration.rb
90
+ - lib/rails_admin_multiple_file_upload/engine.rb
91
+ - lib/rails_admin_multiple_file_upload/helper.rb
92
+ - lib/rails_admin_multiple_file_upload/model.rb
93
+ - lib/rails_admin_multiple_file_upload/version.rb
94
+ - rails_admin_multiple_file_upload.gemspec
95
+ - release.sh
96
+ homepage: https://github.com/ack43/rails_admin_multiple_file_upload
97
+ licenses: []
98
+ metadata: {}
99
+ post_install_message:
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubyforge_project:
115
+ rubygems_version: 2.4.7
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Interface for uploading files for rails_admin
119
+ test_files: []