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 CHANGED
@@ -1,3 +1,5 @@
1
1
  *.swp
2
- pkg
2
+ pkg/
3
3
  Gemfile.lock
4
+ doc/
5
+ .yardoc/
data/.yardopts ADDED
@@ -0,0 +1,7 @@
1
+ --no-private
2
+ --title 'elFinder server side connector for Ruby'
3
+ --charset utf-8
4
+ --readme README.md
5
+ -
6
+ README.md
7
+ TODO
@@ -1,142 +1,156 @@
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
- skip_before_filter :verify_authenticity_token, :only => ['elfinder']
39
- def elfinder
40
- h, r = ElFinder::Connector.new(
41
- :root => File.join(Rails.public_path, 'system', 'elfinder'),
42
- :url => '/system/elfinder',
43
- :perms => {
44
- /^(Welcome|README)$/ => {:read => true, :write => false, :rm => false},
45
- '.' => {:read => true, :write => false, :rm => false}, # '.' is the proper way to specify the home/root directory.
46
- /^test$/ => {:read => true, :write => true, :rm => false},
47
- 'logo.png' => {:read => true},
48
- /\.png$/ => {:read => false} # This will cause 'logo.png' to be unreadable.
49
- # Permissions err on the safe side. Once false, always false.
50
- },
51
- :extractors => {
52
- 'application/zip' => ['unzip', '-qq', '-o'], # Each argument will be shellescaped (also true for archivers)
53
- 'application/x-gzip' => ['tar', '-xzf'],
54
- },
55
- :archivers => {
56
- 'application/zip' => ['.zip', 'zip', '-qr9'], # Note first argument is archive extension
57
- 'application/x-gzip' => ['.tgz', 'tar', '-czf'],
58
- },
59
-
60
- ).run(params)
61
- headers.merge!(h)
62
- render (r.empty? ? {:nothing => true} : {:text => r.to_json}), :layout => false
63
- end
64
-
65
- * Or, use ElFinder::Action and el_finder, which handles most of the boilerplate for an ElFinder action:
66
-
67
- require 'el_finder/action'
68
- class MyController < ApplicationController
69
- include ElFinder::Action
70
-
71
- el_finder(:action_name) do
72
- {
73
- :root => File.join(Rails.public_path, 'system', 'elfinder'),
74
- :url => '/system/elfinder',
75
- :perms => {
76
- /^(Welcome|README)$/ => {:read => true, :write => false, :rm => false},
77
- '.' => {:read => true, :write => false, :rm => false}, # '.' is the proper way to specify the home/root directory.
78
- /^test$/ => {:read => true, :write => true, :rm => false},
79
- 'logo.png' => {:read => true},
80
- /\.png$/ => {:read => false} # This will cause 'logo.png' to be unreadable.
81
- # Permissions err on the safe side. Once false, always false.
82
- },
83
- :extractors => {
84
- 'application/zip' => ['unzip', '-qq', '-o'], # Each argument will be shellescaped (also true for archivers)
85
- 'application/x-gzip' => ['tar', '-xzf'],
86
- },
87
- :archivers => {
88
- 'application/zip' => ['.zip', 'zip', '-qr9'], # Note first argument is archive extension
89
- 'application/x-gzip' => ['.tgz', 'tar', '-czf'],
90
- },
91
- }
92
- end
93
- end
94
-
95
- * Add the appropriate route to config/routes.rb such as:
96
-
97
- match 'elfinder' => 'home#elfinder'
98
-
99
- * Add the following to your layout. The paths may be different depending
100
- on where you installed the various js/css files.
101
-
102
- <%= stylesheet_link_tag 'jquery-ui/base/jquery.ui.all', 'elfinder' %>
103
- <%= javascript_include_tag :defaults, 'elfinder/elfinder.min' %>
104
-
105
- * Add the following to the view that will display elFinder:
106
-
107
- <%= javascript_tag do %>
108
- $().ready(function() {
109
- $('#elfinder').elfinder({
110
- url: '/elfinder',
111
- lang: 'en'
112
- })
113
- })
114
- <% end %>
115
- <div id='elfinder'></div>
116
-
117
- * That's it. I think. If not, check out the example rails application at http://github.com/phallstrom/el_finder-rails-example.
118
-
119
- == License:
120
-
121
- (The MIT License)
122
-
123
- Copyright (c) 2010 Philip Hallstrom
124
-
125
- Permission is hereby granted, free of charge, to any person obtaining
126
- a copy of this software and associated documentation files (the
127
- 'Software'), to deal in the Software without restriction, including
128
- without limitation the rights to use, copy, modify, merge, publish,
129
- distribute, sublicense, and/or sell copies of the Software, and to
130
- permit persons to whom the Software is furnished to do so, subject to
131
- the following conditions:
132
-
133
- The above copyright notice and this permission notice shall be
134
- included in all copies or substantial portions of the Software.
135
-
136
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
137
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
138
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
139
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
140
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
141
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
142
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
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
@@ -9,3 +9,6 @@ Rake::TestTask.new(:test) do |test|
9
9
  test.pattern = 'test/**/test_*.rb'
10
10
  test.verbose = true
11
11
  end
12
+
13
+ require 'yard'
14
+ YARD::Rake::YardocTask.new
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
@@ -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
@@ -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
- def initialize(options = {})
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(RuntimeError, "Missing required :url option") unless @options.key?(:url)
36
- raise(RuntimeError, "Missing required :root option") unless @options.key?(:root)
37
- raise(RuntimeError, "Mime Handler is invalid") unless mime_handler.respond_to?(:for)
38
- raise(RuntimeError, "Image Handler is invalid") unless image_handler.nil? || ([:size, :resize, :thumbnail].all?{|m| image_handler.respond_to?(m)})
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
- def run(params = {})
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 == 'invalid base64'
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
- def options=(opts = {})
101
- opts.each_pair do |k,v|
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
- end
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
@@ -4,6 +4,8 @@ require 'image_size'
4
4
 
5
5
  module ElFinder
6
6
 
7
+ # Represents default image handler.
8
+ # It uses *mogrify* to resize images and *convert* to create thumbnails.
7
9
  class Image
8
10
 
9
11
  def self.size(pathname)
@@ -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'
@@ -1,3 +1,5 @@
1
+ # Represents ElFinder namespace.
1
2
  module ElFinder
2
- VERSION = '1.0.20'
3
+ # Gem version.
4
+ VERSION = '1.0.21'
3
5
  end
@@ -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 RuntimeError do
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 RuntimeError do
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 RuntimeError do
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 RuntimeError do
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: 63
4
+ hash: 61
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 20
10
- version: 1.0.20
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-04-02 00:00:00 Z
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.rdoc
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: