el_finder 1.0.20 → 1.0.21
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -1
- data/.yardopts +7 -0
- data/{README.rdoc → README.md} +156 -142
- data/Rakefile +3 -0
- data/el_finder.gemspec +2 -0
- data/lib/el_finder/base64.rb +7 -0
- data/lib/el_finder/connector.rb +34 -19
- data/lib/el_finder/image.rb +2 -0
- data/lib/el_finder/mime_type.rb +6 -1
- data/lib/el_finder/version.rb +3 -1
- data/test/test_el_finder.rb +4 -4
- metadata +39 -5
data/.gitignore
CHANGED
data/.yardopts
ADDED
data/{README.rdoc → README.md}
RENAMED
@@ -1,142 +1,156 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
* http://elrte.org/redmine/projects/elfinder
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
Ruby library to provide server side functionality for elFinder. elFinder is an
|
8
|
-
open-source file manager for web, written in JavaScript using jQuery UI.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
* Document library.
|
13
|
-
* Document how to implement custom image size/resize methods.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
The gem, by default, relies upon the 'image_size' ruby gem and ImageMagick's 'mogrify' and 'convert' commands.
|
18
|
-
These requirements can be changed by implementing custom methods for determining image size
|
19
|
-
and resizing of an image.
|
20
|
-
|
21
|
-
NOTE: There is another ruby gem 'imagesize' that also defines the class ImageSize and requires 'image_size'
|
22
|
-
If you have that one installed, elfinder will fail. Make sure you only have 'image_size' installed if you use
|
23
|
-
the defaults.
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
* Install elFinder (http://elrte.org/redmine/projects/elfinder/wiki/Install_EN)
|
28
|
-
* Install ImageMagick (http://www.imagemagick.org/)
|
29
|
-
* Do whatever is necessary for your Ruby framework to tie it together.
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
* Add
|
34
|
-
* % bundle install
|
35
|
-
* Switch to using jQuery instead of Prototype
|
36
|
-
* Add the following action to a controller of your choosing.
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
*
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
(
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
the
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
1
|
+
## el_finder
|
2
|
+
|
3
|
+
* http://elrte.org/redmine/projects/elfinder
|
4
|
+
|
5
|
+
## Description:
|
6
|
+
|
7
|
+
Ruby library to provide server side functionality for elFinder. elFinder is an
|
8
|
+
open-source file manager for web, written in JavaScript using jQuery UI.
|
9
|
+
|
10
|
+
## Todo:
|
11
|
+
|
12
|
+
* Document library.
|
13
|
+
* Document how to implement custom image size/resize methods.
|
14
|
+
|
15
|
+
## Requirements:
|
16
|
+
|
17
|
+
The gem, by default, relies upon the 'image_size' ruby gem and ImageMagick's 'mogrify' and 'convert' commands.
|
18
|
+
These requirements can be changed by implementing custom methods for determining image size
|
19
|
+
and resizing of an image.
|
20
|
+
|
21
|
+
NOTE: There is another ruby gem 'imagesize' that also defines the class ImageSize and requires 'image_size'
|
22
|
+
If you have that one installed, elfinder will fail. Make sure you only have 'image_size' installed if you use
|
23
|
+
the defaults.
|
24
|
+
|
25
|
+
## Install:
|
26
|
+
|
27
|
+
* Install elFinder (http://elrte.org/redmine/projects/elfinder/wiki/Install_EN)
|
28
|
+
* Install ImageMagick (http://www.imagemagick.org/)
|
29
|
+
* Do whatever is necessary for your Ruby framework to tie it together.
|
30
|
+
|
31
|
+
### Rails 3
|
32
|
+
|
33
|
+
* Add `gem 'el_finder'` to Gemfile
|
34
|
+
* % bundle install
|
35
|
+
* Switch to using jQuery instead of Prototype
|
36
|
+
* Add the following action to a controller of your choosing.
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
skip_before_filter :verify_authenticity_token, :only => ['elfinder']
|
40
|
+
|
41
|
+
def elfinder
|
42
|
+
h, r = ElFinder::Connector.new(
|
43
|
+
:root => File.join(Rails.public_path, 'system', 'elfinder'),
|
44
|
+
:url => '/system/elfinder',
|
45
|
+
:perms => {
|
46
|
+
/^(Welcome|README)$/ => {:read => true, :write => false, :rm => false},
|
47
|
+
'.' => {:read => true, :write => false, :rm => false}, # '.' is the proper way to specify the home/root directory.
|
48
|
+
/^test$/ => {:read => true, :write => true, :rm => false},
|
49
|
+
'logo.png' => {:read => true},
|
50
|
+
/\.png$/ => {:read => false} # This will cause 'logo.png' to be unreadable.
|
51
|
+
# Permissions err on the safe side. Once false, always false.
|
52
|
+
},
|
53
|
+
:extractors => {
|
54
|
+
'application/zip' => ['unzip', '-qq', '-o'], # Each argument will be shellescaped (also true for archivers)
|
55
|
+
'application/x-gzip' => ['tar', '-xzf'],
|
56
|
+
},
|
57
|
+
:archivers => {
|
58
|
+
'application/zip' => ['.zip', 'zip', '-qr9'], # Note first argument is archive extension
|
59
|
+
'application/x-gzip' => ['.tgz', 'tar', '-czf'],
|
60
|
+
},
|
61
|
+
|
62
|
+
).run(params)
|
63
|
+
|
64
|
+
headers.merge!(h)
|
65
|
+
|
66
|
+
render (r.empty? ? {:nothing => true} : {:text => r.to_json}), :layout => false
|
67
|
+
end
|
68
|
+
```
|
69
|
+
|
70
|
+
* Or, use ElFinder::Action and el_finder, which handles most of the boilerplate for an ElFinder action:
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
require 'el_finder/action'
|
74
|
+
|
75
|
+
class MyController < ApplicationController
|
76
|
+
include ElFinder::Action
|
77
|
+
|
78
|
+
el_finder(:action_name) do
|
79
|
+
{
|
80
|
+
:root => File.join(Rails.public_path, 'system', 'elfinder'),
|
81
|
+
:url => '/system/elfinder',
|
82
|
+
:perms => {
|
83
|
+
/^(Welcome|README)$/ => {:read => true, :write => false, :rm => false},
|
84
|
+
'.' => {:read => true, :write => false, :rm => false}, # '.' is the proper way to specify the home/root directory.
|
85
|
+
/^test$/ => {:read => true, :write => true, :rm => false},
|
86
|
+
'logo.png' => {:read => true},
|
87
|
+
/\.png$/ => {:read => false} # This will cause 'logo.png' to be unreadable.
|
88
|
+
# Permissions err on the safe side. Once false, always false.
|
89
|
+
},
|
90
|
+
:extractors => {
|
91
|
+
'application/zip' => ['unzip', '-qq', '-o'], # Each argument will be shellescaped (also true for archivers)
|
92
|
+
'application/x-gzip' => ['tar', '-xzf'],
|
93
|
+
},
|
94
|
+
:archivers => {
|
95
|
+
'application/zip' => ['.zip', 'zip', '-qr9'], # Note first argument is archive extension
|
96
|
+
'application/x-gzip' => ['.tgz', 'tar', '-czf'],
|
97
|
+
},
|
98
|
+
}
|
99
|
+
end
|
100
|
+
end
|
101
|
+
```
|
102
|
+
|
103
|
+
* Add the appropriate route to config/routes.rb such as:
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
match 'elfinder' => 'home#elfinder'
|
107
|
+
```
|
108
|
+
|
109
|
+
* Add the following to your layout. The paths may be different depending
|
110
|
+
on where you installed the various js/css files.
|
111
|
+
|
112
|
+
```erb
|
113
|
+
<%= stylesheet_link_tag 'jquery-ui/base/jquery.ui.all', 'elfinder' %>
|
114
|
+
<%= javascript_include_tag :defaults, 'elfinder/elfinder.min' %>
|
115
|
+
```
|
116
|
+
|
117
|
+
* Add the following to the view that will display elFinder:
|
118
|
+
|
119
|
+
```erb
|
120
|
+
<%= javascript_tag do %>
|
121
|
+
$().ready(function() {
|
122
|
+
$('#elfinder').elfinder({
|
123
|
+
url: '/elfinder',
|
124
|
+
lang: 'en'
|
125
|
+
})
|
126
|
+
})
|
127
|
+
<% end %>
|
128
|
+
<div id='elfinder'></div>
|
129
|
+
```
|
130
|
+
|
131
|
+
* That's it. I think. If not, check out the example rails application at http://github.com/phallstrom/el_finder-rails-example.
|
132
|
+
|
133
|
+
## License:
|
134
|
+
|
135
|
+
(The MIT License)
|
136
|
+
|
137
|
+
Copyright (c) 2010 Philip Hallstrom
|
138
|
+
|
139
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
140
|
+
a copy of this software and associated documentation files (the
|
141
|
+
'Software'), to deal in the Software without restriction, including
|
142
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
143
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
144
|
+
permit persons to whom the Software is furnished to do so, subject to
|
145
|
+
the following conditions:
|
146
|
+
|
147
|
+
The above copyright notice and this permission notice shall be
|
148
|
+
included in all copies or substantial portions of the Software.
|
149
|
+
|
150
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
151
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
152
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
153
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
154
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
155
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
156
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
CHANGED
data/el_finder.gemspec
CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
22
|
s.add_dependency('image_size', '>= 1.0.0')
|
23
|
+
s.add_development_dependency('yard', '~> 0.8.1')
|
24
|
+
s.add_development_dependency('redcarpet', '~> 2.1.1')
|
23
25
|
s.requirements << 'ImageMagick'
|
24
26
|
|
25
27
|
end
|
data/lib/el_finder/base64.rb
CHANGED
@@ -5,10 +5,17 @@ if RUBY_VERSION < '1.9'
|
|
5
5
|
end
|
6
6
|
|
7
7
|
if defined? ::Base64
|
8
|
+
# The Base64 module provides for the encoding (encode64, strict_encode64, urlsafe_encode64) and decoding (decode64, strict_decode64, urlsafe_decode64) of binary data using a Base64 representation.
|
9
|
+
# @note stdlib module.
|
8
10
|
module ::Base64
|
11
|
+
# Returns the Base64-encoded version of bin. This method complies with "Base 64 Encoding with URL and Filename Safe Alphabet" in RFC 4648. The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
12
|
+
# @note This method will be defined only on ruby 1.8 due to its absence in stdlib.
|
9
13
|
def self.urlsafe_encode64(bin)
|
10
14
|
[bin].pack("m0").tr("+/", "-_")
|
11
15
|
end
|
16
|
+
|
17
|
+
# Returns the Base64-decoded version of str. This method complies with "Base 64 Encoding with URL and Filename Safe Alphabet" in RFC 4648. The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
18
|
+
# @note This method will be defined only on ruby 1.8 due to its absence in stdlib.
|
12
19
|
def self.urlsafe_decode64(str)
|
13
20
|
str.tr("-_", "+/").unpack("m0").first
|
14
21
|
end
|
data/lib/el_finder/connector.rb
CHANGED
@@ -5,14 +5,20 @@
|
|
5
5
|
require 'base64'
|
6
6
|
|
7
7
|
module ElFinder
|
8
|
+
|
9
|
+
# Represents ElFinder connector on Rails side.
|
8
10
|
class Connector
|
9
|
-
|
11
|
+
|
12
|
+
# Valid commands to run.
|
13
|
+
# @see #run
|
10
14
|
VALID_COMMANDS = %w[archive duplicate edit extract mkdir mkfile open paste ping read rename resize rm tmb upload]
|
11
15
|
|
16
|
+
# Default options for instances.
|
17
|
+
# @see #initialize
|
12
18
|
DEFAULT_OPTIONS = {
|
13
19
|
:mime_handler => ElFinder::MimeType,
|
14
20
|
:image_handler => ElFinder::Image,
|
15
|
-
:original_filename_method => lambda {|file| file.original_filename},
|
21
|
+
:original_filename_method => lambda { |file| file.original_filename },
|
16
22
|
:disabled_commands => [],
|
17
23
|
:allow_dot_files => true,
|
18
24
|
:upload_max_size => '50M',
|
@@ -20,7 +26,7 @@ module ElFinder
|
|
20
26
|
:archivers => {},
|
21
27
|
:extractors => {},
|
22
28
|
:home => 'Home',
|
23
|
-
:default_perms => {:read => true, :write => true, :rm => true, :hidden => false },
|
29
|
+
:default_perms => { :read => true, :write => true, :rm => true, :hidden => false },
|
24
30
|
:perms => [],
|
25
31
|
:thumbs => false,
|
26
32
|
:thumbs_directory => '.thumbs',
|
@@ -28,14 +34,18 @@ module ElFinder
|
|
28
34
|
:thumbs_at_once => 5,
|
29
35
|
}
|
30
36
|
|
31
|
-
#
|
32
|
-
|
37
|
+
# Initializes new instance.
|
38
|
+
# @param [Hash] options Instance options. :url and :root options are required.
|
39
|
+
# @option options [String] :url Entry point of ElFinder router.
|
40
|
+
# @option options [String] :root Root directory of ElFinder directory structure.
|
41
|
+
# @see DEFAULT_OPTIONS
|
42
|
+
def initialize(options)
|
33
43
|
@options = DEFAULT_OPTIONS.merge(options)
|
34
44
|
|
35
|
-
raise(
|
36
|
-
raise(
|
37
|
-
raise(
|
38
|
-
raise(
|
45
|
+
raise(ArgumentError, "Missing required :url option") unless @options.key?(:url)
|
46
|
+
raise(ArgumentError, "Missing required :root option") unless @options.key?(:root)
|
47
|
+
raise(ArgumentError, "Mime Handler is invalid") unless mime_handler.respond_to?(:for)
|
48
|
+
raise(ArgumentError, "Image Handler is invalid") unless image_handler.nil? || ([:size, :resize, :thumbnail].all?{|m| image_handler.respond_to?(m)})
|
39
49
|
|
40
50
|
@root = ElFinder::Pathname.new(options[:root])
|
41
51
|
|
@@ -43,8 +53,11 @@ module ElFinder
|
|
43
53
|
@response = {}
|
44
54
|
end # of initialize
|
45
55
|
|
46
|
-
#
|
47
|
-
|
56
|
+
# Runs request-response cycle.
|
57
|
+
# @param [Hash] params Request parameters. :cmd option is required.
|
58
|
+
# @option params [String] :cmd Command to be performed.
|
59
|
+
# @see VALID_COMMANDS
|
60
|
+
def run(params)
|
48
61
|
@params = params.dup
|
49
62
|
@headers = {}
|
50
63
|
@response = {}
|
@@ -89,19 +102,22 @@ module ElFinder
|
|
89
102
|
|
90
103
|
pathname = @root + Base64.urlsafe_decode64(hash)
|
91
104
|
rescue ArgumentError => e
|
92
|
-
if e.message
|
93
|
-
nil
|
94
|
-
else
|
105
|
+
if e.message != 'invalid base64'
|
95
106
|
raise
|
96
107
|
end
|
108
|
+
nil
|
97
109
|
end # of from_hash
|
98
110
|
|
99
|
-
#
|
100
|
-
|
101
|
-
|
111
|
+
# @!attribute [w] options
|
112
|
+
# Options setter.
|
113
|
+
# @param value [Hash] Options to be merged with instance ones.
|
114
|
+
# @return [Hash] Updated options.
|
115
|
+
def options=(value = {})
|
116
|
+
value.each_pair do |k, v|
|
102
117
|
@options[k.to_sym] = v
|
103
118
|
end
|
104
|
-
|
119
|
+
@options
|
120
|
+
end # of options=
|
105
121
|
|
106
122
|
################################################################################
|
107
123
|
protected
|
@@ -433,7 +449,6 @@ module ElFinder
|
|
433
449
|
end
|
434
450
|
end
|
435
451
|
|
436
|
-
#
|
437
452
|
def mime_handler
|
438
453
|
@options[:mime_handler]
|
439
454
|
end
|
data/lib/el_finder/image.rb
CHANGED
data/lib/el_finder/mime_type.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module ElFinder
|
2
2
|
|
3
|
+
# Represents default MIME types recognizer.
|
3
4
|
class MimeType
|
4
5
|
|
6
|
+
# File extension to mime type mapping.
|
5
7
|
TYPES = {
|
6
8
|
'ai' => 'application/postscript',
|
7
9
|
'eps' => 'application/postscript',
|
@@ -67,7 +69,10 @@ module ElFinder
|
|
67
69
|
'flv' => 'video/x-flv',
|
68
70
|
'mkv' => 'video/x-matroska'
|
69
71
|
}
|
70
|
-
|
72
|
+
|
73
|
+
# Gets MIME type fort specified path.
|
74
|
+
# @param [::Pathname, String] pathname Path to recognize its MIME type.
|
75
|
+
# @return [String] MIME type if known; 'unknown/unknown' otherwise.
|
71
76
|
def self.for(pathname)
|
72
77
|
pathname = ::Pathname.new(pathname) if pathname.is_a?(String)
|
73
78
|
TYPES[pathname.extname.downcase[1..-1]] || 'unknown/unknown'
|
data/lib/el_finder/version.rb
CHANGED
data/test/test_el_finder.rb
CHANGED
@@ -7,25 +7,25 @@ class TestElFinder < Test::Unit::TestCase
|
|
7
7
|
################################################################################
|
8
8
|
|
9
9
|
def test_should_fail_initialization_if_required_options_not_passed
|
10
|
-
assert_raise
|
10
|
+
assert_raise ArgumentError do
|
11
11
|
ElFinder::Connector.new()
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_should_fail_initialization_if_no_root_specified
|
16
|
-
assert_raise
|
16
|
+
assert_raise ArgumentError do
|
17
17
|
ElFinder::Connector.new({:url => '/elfinder'})
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_should_fail_initialization_if_no_url_specified
|
22
|
-
assert_raise
|
22
|
+
assert_raise ArgumentError do
|
23
23
|
ElFinder::Connector.new({:root => '/tmp/elfinder'})
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_should_fail_initialization_if_mime_handler_is_invalid
|
28
|
-
assert_raise
|
28
|
+
assert_raise ArgumentError do
|
29
29
|
ElFinder::Connector.new({:root => '/tmp/elfinder', :url => '/elfinder', :mime_handler => Object})
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: el_finder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 61
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 21
|
10
|
+
version: 1.0.21
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Philip Hallstrom
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-05-26 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: image_size
|
@@ -33,6 +33,38 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :runtime
|
35
35
|
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yard
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 61
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 8
|
48
|
+
- 1
|
49
|
+
version: 0.8.1
|
50
|
+
type: :development
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: redcarpet
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 9
|
61
|
+
segments:
|
62
|
+
- 2
|
63
|
+
- 1
|
64
|
+
- 1
|
65
|
+
version: 2.1.1
|
66
|
+
type: :development
|
67
|
+
version_requirements: *id003
|
36
68
|
description: Ruby library to provide server side functionality for elFinder. elFinder is an open-source file manager for web, written in JavaScript using jQuery UI.
|
37
69
|
email:
|
38
70
|
- philip@pjkh.com
|
@@ -45,8 +77,9 @@ extra_rdoc_files: []
|
|
45
77
|
files:
|
46
78
|
- .autotest
|
47
79
|
- .gitignore
|
80
|
+
- .yardopts
|
48
81
|
- Gemfile
|
49
|
-
- README.
|
82
|
+
- README.md
|
50
83
|
- Rakefile
|
51
84
|
- TODO
|
52
85
|
- el_finder.gemspec
|
@@ -132,3 +165,4 @@ test_files:
|
|
132
165
|
- test/test_el_finder_permissions.rb
|
133
166
|
- test/test_el_finder_symlink.rb
|
134
167
|
- test/test_el_finder_thumbs.rb
|
168
|
+
has_rdoc:
|