el_finder2 0.1.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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +22 -0
  4. data/app/assets/javascripts/el_finder2/application.js +13 -0
  5. data/app/assets/stylesheets/el_finder2/application.css +15 -0
  6. data/app/controllers/el_finder2/application_controller.rb +4 -0
  7. data/app/controllers/el_finder2/el_finder_controller.rb +12 -0
  8. data/app/models/el_finder2/document.rb +9 -0
  9. data/app/models/el_finder2/file.rb +28 -0
  10. data/app/models/el_finder2/folder.rb +9 -0
  11. data/app/models/el_finder2/image.rb +16 -0
  12. data/app/serializers/el_finder2/document_serializer.rb +9 -0
  13. data/app/serializers/el_finder2/file_serializer.rb +41 -0
  14. data/app/serializers/el_finder2/folder_serializer.rb +30 -0
  15. data/app/serializers/el_finder2/image_serializer.rb +13 -0
  16. data/config/routes.rb +4 -0
  17. data/db/migrate/20151130180935_create_files.rb +14 -0
  18. data/db/migrate/20151130191903_create_el_finder2_file_hierarchies.rb +16 -0
  19. data/db/migrate.old/20151124151257_create_el_finder2_folders.rb +11 -0
  20. data/db/migrate.old/20151124160017_create_el_finder2_files.rb +13 -0
  21. data/db/migrate.old/20151124170526_create_el_finder2_folder_hierarchies.rb +16 -0
  22. data/lib/el_finder2/command/base.rb +22 -0
  23. data/lib/el_finder2/command/dim.rb +26 -0
  24. data/lib/el_finder2/command/duplicate.rb +26 -0
  25. data/lib/el_finder2/command/file.rb +61 -0
  26. data/lib/el_finder2/command/mkdir.rb +33 -0
  27. data/lib/el_finder2/command/open.rb +134 -0
  28. data/lib/el_finder2/command/parents.rb +31 -0
  29. data/lib/el_finder2/command/rename.rb +29 -0
  30. data/lib/el_finder2/command/resize.rb +36 -0
  31. data/lib/el_finder2/command/rm.rb +23 -0
  32. data/lib/el_finder2/command/size.rb +29 -0
  33. data/lib/el_finder2/command/tmb.rb +23 -0
  34. data/lib/el_finder2/command/tree.rb +25 -0
  35. data/lib/el_finder2/command/upload.rb +84 -0
  36. data/lib/el_finder2/command.rb +34 -0
  37. data/lib/el_finder2/engine.rb +23 -0
  38. data/lib/el_finder2/error.rb +9 -0
  39. data/lib/el_finder2/hash_utils.rb +22 -0
  40. data/lib/el_finder2/version.rb +3 -0
  41. data/lib/el_finder2.rb +10 -0
  42. data/lib/tasks/el_finder2_tasks.rake +4 -0
  43. metadata +267 -0
@@ -0,0 +1,31 @@
1
+ module ElFinder2
2
+ module Command
3
+ # Returns all parent folders and its subfolders on required (in connector
4
+ # options) deep. This command is invoked when a directory is reloaded in
5
+ # the client. Data provided by 'parents' command should enable the correct
6
+ # drawing of tree hierarchy directories.
7
+ class Parents < Base
8
+ def execute
9
+ folders = ElFinder2::Folder.where(
10
+ 'id IN (:ancestor_ids) OR parent_id IN (:ancestor_ids)',
11
+ ancestor_ids: @file.ancestor_ids
12
+ )
13
+
14
+ render json: {
15
+ tree: ActiveModel::ArraySerializer.new(folders).as_json
16
+ }
17
+ end
18
+
19
+ private def parse_params!(params)
20
+ target = params[:target]
21
+ fail ElFinder2::Error.new(%w(errCmdParams parents)) unless target
22
+
23
+ path = to_path(target)
24
+
25
+ @file = ElFinder2::File.find_by_path(path)
26
+
27
+ fail ElFinder2::Error.new('errFolderNotFound') unless @file
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ module ElFinder2
2
+ module Command
3
+ class Rename < Base
4
+ def execute
5
+ @file.name = @name
6
+ @file.save!
7
+
8
+ render json: {
9
+ added: ActiveModel::ArraySerializer.new([@file]).as_json,
10
+ removed: [@hash]
11
+ }
12
+ end
13
+
14
+ private def parse_params!(params)
15
+ @name, target = params.values_at(:name, :target)
16
+
17
+ fail ElFinder2::Error.new(%w(errCmdParams rename)) unless @name && target
18
+
19
+ path = to_path(target)
20
+
21
+ @file = ElFinder2::File.find_by_path(path)
22
+
23
+ fail ElFinder2::Error.new('errFileNotFound') unless @file
24
+
25
+ @hash = @file.path_hash
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,36 @@
1
+ module ElFinder2
2
+ module Command
3
+ # Output file into browser. This command applies to download and preview
4
+ # actions.
5
+ class File < Base
6
+ # May need to set Content-Disposition, Content-Location and
7
+ # Content-Transfer-Encoding. Content-Disposition should have 'inline' for
8
+ # preview action or 'attachments' for download.
9
+ def execute
10
+ if @download
11
+ data = Paperclip.io_adapters.for(@file.content)
12
+ send_data(data.read, filename: @file.name, type: @file.content_type)
13
+ else
14
+ redirect_to @file.content.url
15
+ end
16
+ end
17
+
18
+ # Arguments:
19
+ # target : file's hash,
20
+ # download : Send headers to force download file instead of opening it in
21
+ # the browser.
22
+ private def parse_params!(params)
23
+ target = params[:target]
24
+ fail ElFinder2::Error.new(%w(errCmdParams file)) unless target
25
+
26
+ path = to_path(target)
27
+
28
+ @file = ElFinder2::File.find_by_path(path)
29
+
30
+ fail ElFinder2::Error.new('errFileNotFound') unless @file
31
+
32
+ @download = params[:download] == '1'
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,23 @@
1
+ module ElFinder2
2
+ module Command
3
+ class Rm < Base
4
+ def execute
5
+ files = @targets.flat_map(&:self_and_descendants).uniq
6
+ hashes = files.map(&:path_hash)
7
+ files.map(&:destroy)
8
+
9
+ render json: { removed: hashes }
10
+ end
11
+
12
+ private def parse_params!(params)
13
+ targets = params[:targets]
14
+ fail ElFinder2::Error.new(%w(errCmdParams rm)) unless targets.present?
15
+
16
+ @targets = targets
17
+ .map(&method(:to_path))
18
+ .map(&ElFinder2::File.method(:find_by_path))
19
+ .compact
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ module ElFinder2
2
+ module Command
3
+ # Returns the size of a directory or file.
4
+ class Size < Base
5
+ include ElFinder2::HashUtils
6
+
7
+ # Response:
8
+ # size: The total size for all the supplied targets.
9
+ def execute
10
+ size = @targets.sum(&:size)
11
+
12
+ render json: { size: size }
13
+ end
14
+
15
+ # Arguments:
16
+ # cmd : size
17
+ # targets[] : hash paths of the nodes
18
+ private def parse_params!(params)
19
+ targets = params[:targets]
20
+ fail ElFinder2::Error.new(%w(errCmdParams size)) unless targets.present?
21
+
22
+ @targets = targets.
23
+ map(&method(:to_path)).
24
+ map(&ElFinder2::File.method(:find_by_path)).
25
+ compact
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ module ElFinder2
2
+ module Command
3
+ class Tmb < Base
4
+ def execute
5
+ images = @targets.inject({}) do |hash, image|
6
+ hash[image.path_hash] = image.url(:thumb)
7
+ end
8
+
9
+ render json: { images: images }
10
+ end
11
+
12
+ private def parse_params!(params)
13
+ targets = params[:targets]
14
+ fail ElFinder2::Error.new(%w(errCmdParams tmb)) unless targets.present?
15
+
16
+ @targets = targets.
17
+ map(&method(:to_path)).
18
+ map(&ElFinder2::Image.method(:find_by_path)).
19
+ compact
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ module ElFinder2
2
+ module Command
3
+ class Tree < Base
4
+ def execute
5
+ children = @folder.children.where(type: 'ElFinder2::Folder')
6
+
7
+ render json: {
8
+ tree: ActiveModel::ArraySerializer.new(children).as_json
9
+ }
10
+ end
11
+
12
+ private def parse_params!(params)
13
+ target = params[:target]
14
+
15
+ fail ElFinder2::Error.new(%w(errCmdParams tree)) unless target
16
+
17
+ path = to_path(target)
18
+
19
+ @folder = ElFinder2::Folder.find_by_path(path)
20
+
21
+ fail ElFinder2::Error.new('errFolderNotFound') unless @folder
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,84 @@
1
+ module ElFinder2
2
+ module Command
3
+ # Process file upload requests. Client may request the upload of multiple
4
+ # files at once.
5
+ class Upload < Base
6
+ # Response: An array of successfully uploaded files if success, an error
7
+ # otherwise.
8
+ # added : (Array) of files that were successfully uploaded. Information
9
+ # about File/Directory
10
+ #
11
+ # If the files could not be loaded, return the following:
12
+ # {
13
+ # error: "Unable to upload files"
14
+ # }
15
+ #
16
+ # If at least one file has been uploaded, the response is
17
+ # Client-Server-API-2.1 # open and * select *. If not all files are
18
+ # uploaded, failures will be put in * error * and * errorData *:
19
+ # {
20
+ # // open
21
+ # // (Array) An array of hashes of the loaded paths
22
+ # select: [ "8d331825ebfbe1ddae14d314bf81a712" ],
23
+ # // (String) If not all files have been uploaded
24
+ # error: "Some files were not uploaded",
25
+ # // (Object) Info about the files that could not be uploaded
26
+ # errorData{
27
+ # // (String) "filename": "error"
28
+ # "some-file.exe": "Not allowed file type"
29
+ # }
30
+ # }
31
+ def execute
32
+ uploads = @uploads.map do |upload|
33
+ type = upload_type(upload)
34
+ attributes = type.upload_attributes(upload).merge(content: upload)
35
+
36
+ type.all.merge(@folder.children).
37
+ where(name: upload.original_filename).
38
+ first_or_initialize.
39
+ tap { |instance| instance.update_attributes(attributes) }
40
+ end
41
+
42
+ added, errored = uploads.partition(&:valid?)
43
+
44
+ response = { added: ActiveModel::ArraySerializer.new(added).as_json }
45
+
46
+ unless errored.empty?
47
+ response[:error] = 'Some files were not uploaded'
48
+ response[:errorData] = errored.map do |file|
49
+ { file.name => file.errors.full_messages.to_sentence }
50
+ end.reduce(&:merge)
51
+ end
52
+
53
+ render json: response
54
+ end
55
+
56
+ # Arguments (HTTP POST):
57
+ # target : hash of the directory to upload to
58
+ # upload[] : array of multipart files to upload
59
+ private def parse_params!(params)
60
+ target, @uploads = params.values_at(:target, :upload)
61
+
62
+ fail ElFinder2::Error.new(%w(errCmdParams upload)) unless @uploads.present? && target
63
+
64
+ path = to_path(target)
65
+
66
+ @folder = ElFinder2::Folder.find_by_path(path)
67
+
68
+ fail ElFinder2::Error.new('errFolderNotFound') unless @folder
69
+ end
70
+
71
+ IMAGE_MIME_REGEX = /^(image|(x-)?application)\/(bmp|gif|p?jpeg|jpg|(x-)?png)$/
72
+
73
+ private def upload_type(upload)
74
+ mime_type = Paperclip::ContentTypeDetector.new(upload.path).detect
75
+
76
+ if mime_type =~ ElFinder2::IMAGE_MIME_REGEX
77
+ ElFinder2::Image
78
+ else
79
+ ElFinder2::Document
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,34 @@
1
+ require 'el_finder2/hash_utils'
2
+ require 'el_finder2/command/base'
3
+ # require 'el_finder2/command/dim'
4
+ require 'el_finder2/command/duplicate'
5
+ require 'el_finder2/command/file'
6
+ require 'el_finder2/command/mkdir'
7
+ require 'el_finder2/command/open'
8
+ require 'el_finder2/command/parents'
9
+ require 'el_finder2/command/rename'
10
+ require 'el_finder2/command/resize'
11
+ require 'el_finder2/command/rm'
12
+ require 'el_finder2/command/size'
13
+ require 'el_finder2/command/tmb'
14
+ require 'el_finder2/command/tree'
15
+ require 'el_finder2/command/upload'
16
+
17
+ module ElFinder2
18
+ module Command
19
+ def self.dispatch(controller, params)
20
+ verb = params.delete(:cmd)
21
+
22
+ fail ElFinder2::Error.new('No command specified') unless verb
23
+
24
+ command_class = verb.capitalize
25
+ command_implemented = const_defined?(command_class)
26
+
27
+ fail ElFinder2::Error.new("Unrecognized command: #{verb}") unless command_implemented
28
+
29
+ command = const_get(command_class)
30
+
31
+ command.new(controller, params).execute
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,23 @@
1
+ require 'el_finder2/error'
2
+ require 'el_finder2/command'
3
+ require 'el_finder2/engine'
4
+
5
+ module ElFinder2
6
+ class Engine < ::Rails::Engine
7
+ isolate_namespace ElFinder2
8
+
9
+ initializer :append_migrations do |app|
10
+ config.paths['db/migrate'].expanded.each do |path|
11
+ app.config.paths['db/migrate'] << path
12
+ end
13
+ end
14
+
15
+ config.generators do |g|
16
+ g.test_framework :rspec
17
+ g.fixture_replacement :factory_girl, dir: 'spec/factories'
18
+ g.assets = false
19
+ g.helper = false
20
+ g.template_engine false
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,9 @@
1
+ module ElFinder2
2
+ class Error < StandardError
3
+ attr_reader :payload
4
+
5
+ def initialize(payload = nil)
6
+ @payload = payload
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,22 @@
1
+ module ElFinder2
2
+ module HashUtils
3
+ def from_base64url(hash)
4
+ padding = ['', '', '==', '='][hash.length % 4] # ensure input is padded
5
+ Base64.urlsafe_decode64(hash + padding)
6
+ end
7
+
8
+ def to_base64url(string)
9
+ Base64.urlsafe_encode64(string).tr("=\n", '')
10
+ end
11
+
12
+ def to_path(hash, default = nil)
13
+ volume_id, target = hash.split('_')
14
+
15
+ valid = volume_id == ElFinder2::VOLUME_ID && target
16
+
17
+ valid && from_base64url(target) || default
18
+ rescue ArgumentError
19
+ default
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ module ElFinder2
2
+ VERSION = '0.1.1'
3
+ end
data/lib/el_finder2.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'active_model_serializers'
2
+ require 'closure_tree'
3
+ require 'paperclip'
4
+ require 'el_finder2/engine'
5
+
6
+ module ElFinder2
7
+ API_VERSION = '2.1'
8
+ VOLUME_ID = 'v0'
9
+ IMAGE_MIME_REGEX = /\A(image|(x-)?application)\/(bmp|gif|p?jpeg|jpg|(x-)?png)\Z/
10
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :el_finder2 do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,267 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: el_finder2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - QuintEvents
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: active_model_serializers
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: closure_tree
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jquery-rails
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: jquery-ui-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
+ - !ruby/object:Gem::Dependency
70
+ name: paperclip
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 4.2.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 4.2.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: awesome_print
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: aws-sdk-v1
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: factory_girl_rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pg
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec-rails
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ description: ElFinder 2, Rails 4, and Paperclip
196
+ email:
197
+ - dev@quintevents.com
198
+ executables: []
199
+ extensions: []
200
+ extra_rdoc_files: []
201
+ files:
202
+ - MIT-LICENSE
203
+ - Rakefile
204
+ - app/assets/javascripts/el_finder2/application.js
205
+ - app/assets/stylesheets/el_finder2/application.css
206
+ - app/controllers/el_finder2/application_controller.rb
207
+ - app/controllers/el_finder2/el_finder_controller.rb
208
+ - app/models/el_finder2/document.rb
209
+ - app/models/el_finder2/file.rb
210
+ - app/models/el_finder2/folder.rb
211
+ - app/models/el_finder2/image.rb
212
+ - app/serializers/el_finder2/document_serializer.rb
213
+ - app/serializers/el_finder2/file_serializer.rb
214
+ - app/serializers/el_finder2/folder_serializer.rb
215
+ - app/serializers/el_finder2/image_serializer.rb
216
+ - config/routes.rb
217
+ - db/migrate.old/20151124151257_create_el_finder2_folders.rb
218
+ - db/migrate.old/20151124160017_create_el_finder2_files.rb
219
+ - db/migrate.old/20151124170526_create_el_finder2_folder_hierarchies.rb
220
+ - db/migrate/20151130180935_create_files.rb
221
+ - db/migrate/20151130191903_create_el_finder2_file_hierarchies.rb
222
+ - lib/el_finder2.rb
223
+ - lib/el_finder2/command.rb
224
+ - lib/el_finder2/command/base.rb
225
+ - lib/el_finder2/command/dim.rb
226
+ - lib/el_finder2/command/duplicate.rb
227
+ - lib/el_finder2/command/file.rb
228
+ - lib/el_finder2/command/mkdir.rb
229
+ - lib/el_finder2/command/open.rb
230
+ - lib/el_finder2/command/parents.rb
231
+ - lib/el_finder2/command/rename.rb
232
+ - lib/el_finder2/command/resize.rb
233
+ - lib/el_finder2/command/rm.rb
234
+ - lib/el_finder2/command/size.rb
235
+ - lib/el_finder2/command/tmb.rb
236
+ - lib/el_finder2/command/tree.rb
237
+ - lib/el_finder2/command/upload.rb
238
+ - lib/el_finder2/engine.rb
239
+ - lib/el_finder2/error.rb
240
+ - lib/el_finder2/hash_utils.rb
241
+ - lib/el_finder2/version.rb
242
+ - lib/tasks/el_finder2_tasks.rake
243
+ homepage: https://bitbucket.org/quintevents/camaleon_media_paperclip
244
+ licenses:
245
+ - MIT
246
+ metadata: {}
247
+ post_install_message:
248
+ rdoc_options: []
249
+ require_paths:
250
+ - lib
251
+ required_ruby_version: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ required_rubygems_version: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - ">="
259
+ - !ruby/object:Gem::Version
260
+ version: '0'
261
+ requirements: []
262
+ rubyforge_project:
263
+ rubygems_version: 2.4.8
264
+ signing_key:
265
+ specification_version: 4
266
+ summary: ElFinder 2, Rails 4, and Paperclip
267
+ test_files: []