boxroom 0.0.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 (215) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +50 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/boxroom_manifest.js +2 -0
  6. data/app/assets/images/boxroom/clipboard.png +0 -0
  7. data/app/assets/images/boxroom/clipboard_add.png +0 -0
  8. data/app/assets/images/boxroom/copy.png +0 -0
  9. data/app/assets/images/boxroom/delete.png +0 -0
  10. data/app/assets/images/boxroom/edit.png +0 -0
  11. data/app/assets/images/boxroom/exclamation.png +0 -0
  12. data/app/assets/images/boxroom/extend.png +0 -0
  13. data/app/assets/images/boxroom/failed.png +0 -0
  14. data/app/assets/images/boxroom/file.png +0 -0
  15. data/app/assets/images/boxroom/file_add.png +0 -0
  16. data/app/assets/images/boxroom/fileicons/7z.png +0 -0
  17. data/app/assets/images/boxroom/fileicons/ai.png +0 -0
  18. data/app/assets/images/boxroom/fileicons/aif.png +0 -0
  19. data/app/assets/images/boxroom/fileicons/aiff.png +0 -0
  20. data/app/assets/images/boxroom/fileicons/audio.png +0 -0
  21. data/app/assets/images/boxroom/fileicons/bz2.png +0 -0
  22. data/app/assets/images/boxroom/fileicons/c.png +0 -0
  23. data/app/assets/images/boxroom/fileicons/conf.png +0 -0
  24. data/app/assets/images/boxroom/fileicons/cpp.png +0 -0
  25. data/app/assets/images/boxroom/fileicons/cs.png +0 -0
  26. data/app/assets/images/boxroom/fileicons/css.png +0 -0
  27. data/app/assets/images/boxroom/fileicons/csv.png +0 -0
  28. data/app/assets/images/boxroom/fileicons/divx.png +0 -0
  29. data/app/assets/images/boxroom/fileicons/doc.png +0 -0
  30. data/app/assets/images/boxroom/fileicons/docx.png +0 -0
  31. data/app/assets/images/boxroom/fileicons/dot.png +0 -0
  32. data/app/assets/images/boxroom/fileicons/fla.png +0 -0
  33. data/app/assets/images/boxroom/fileicons/gif.png +0 -0
  34. data/app/assets/images/boxroom/fileicons/gz.png +0 -0
  35. data/app/assets/images/boxroom/fileicons/htm.png +0 -0
  36. data/app/assets/images/boxroom/fileicons/html.png +0 -0
  37. data/app/assets/images/boxroom/fileicons/image.png +0 -0
  38. data/app/assets/images/boxroom/fileicons/java.png +0 -0
  39. data/app/assets/images/boxroom/fileicons/jpeg.png +0 -0
  40. data/app/assets/images/boxroom/fileicons/jpg.png +0 -0
  41. data/app/assets/images/boxroom/fileicons/js.png +0 -0
  42. data/app/assets/images/boxroom/fileicons/mdb.png +0 -0
  43. data/app/assets/images/boxroom/fileicons/mdbx.png +0 -0
  44. data/app/assets/images/boxroom/fileicons/mov.png +0 -0
  45. data/app/assets/images/boxroom/fileicons/mp3.png +0 -0
  46. data/app/assets/images/boxroom/fileicons/mpg.png +0 -0
  47. data/app/assets/images/boxroom/fileicons/ogg.png +0 -0
  48. data/app/assets/images/boxroom/fileicons/pdf.png +0 -0
  49. data/app/assets/images/boxroom/fileicons/php.png +0 -0
  50. data/app/assets/images/boxroom/fileicons/pl.png +0 -0
  51. data/app/assets/images/boxroom/fileicons/png.png +0 -0
  52. data/app/assets/images/boxroom/fileicons/ppt.png +0 -0
  53. data/app/assets/images/boxroom/fileicons/pptx.png +0 -0
  54. data/app/assets/images/boxroom/fileicons/ps.png +0 -0
  55. data/app/assets/images/boxroom/fileicons/py.png +0 -0
  56. data/app/assets/images/boxroom/fileicons/ram.png +0 -0
  57. data/app/assets/images/boxroom/fileicons/rar.png +0 -0
  58. data/app/assets/images/boxroom/fileicons/rb.png +0 -0
  59. data/app/assets/images/boxroom/fileicons/rm.png +0 -0
  60. data/app/assets/images/boxroom/fileicons/rtf.png +0 -0
  61. data/app/assets/images/boxroom/fileicons/sql.png +0 -0
  62. data/app/assets/images/boxroom/fileicons/swf.png +0 -0
  63. data/app/assets/images/boxroom/fileicons/tar.png +0 -0
  64. data/app/assets/images/boxroom/fileicons/tgz.png +0 -0
  65. data/app/assets/images/boxroom/fileicons/txt.png +0 -0
  66. data/app/assets/images/boxroom/fileicons/video.png +0 -0
  67. data/app/assets/images/boxroom/fileicons/wav.png +0 -0
  68. data/app/assets/images/boxroom/fileicons/wma.png +0 -0
  69. data/app/assets/images/boxroom/fileicons/wmv.png +0 -0
  70. data/app/assets/images/boxroom/fileicons/xls.png +0 -0
  71. data/app/assets/images/boxroom/fileicons/xlsx.png +0 -0
  72. data/app/assets/images/boxroom/fileicons/xml.png +0 -0
  73. data/app/assets/images/boxroom/fileicons/xvid.png +0 -0
  74. data/app/assets/images/boxroom/fileicons/zip.png +0 -0
  75. data/app/assets/images/boxroom/folder.png +0 -0
  76. data/app/assets/images/boxroom/folder_add.png +0 -0
  77. data/app/assets/images/boxroom/group.png +0 -0
  78. data/app/assets/images/boxroom/group_add.png +0 -0
  79. data/app/assets/images/boxroom/group_grey.png +0 -0
  80. data/app/assets/images/boxroom/information.png +0 -0
  81. data/app/assets/images/boxroom/logo.png +0 -0
  82. data/app/assets/images/boxroom/move.png +0 -0
  83. data/app/assets/images/boxroom/permissions.png +0 -0
  84. data/app/assets/images/boxroom/share.png +0 -0
  85. data/app/assets/images/boxroom/spinner.gif +0 -0
  86. data/app/assets/images/boxroom/tick.png +0 -0
  87. data/app/assets/images/boxroom/user.png +0 -0
  88. data/app/assets/images/boxroom/user_add.png +0 -0
  89. data/app/assets/javascripts/boxroom/application.js.coffee +51 -0
  90. data/app/assets/javascripts/boxroom/files.js.coffee +33 -0
  91. data/app/assets/stylesheets/boxroom/application.scss +7 -0
  92. data/app/concepts/boxroom/base_cell.rb +7 -0
  93. data/app/concepts/boxroom/folder/cell/show.rb +25 -0
  94. data/app/concepts/boxroom/folder/view/show.erb +69 -0
  95. data/app/concepts/boxroom/search/contract/files_and_folders.rb +9 -0
  96. data/app/concepts/boxroom/search/operations/files_and_folders.rb +21 -0
  97. data/app/controllers/boxroom/admins_controller.rb +30 -0
  98. data/app/controllers/boxroom/application_controller.rb +5 -0
  99. data/app/controllers/boxroom/clipboard_controller.rb +87 -0
  100. data/app/controllers/boxroom/files_controller.rb +78 -0
  101. data/app/controllers/boxroom/folders_controller.rb +91 -0
  102. data/app/controllers/boxroom/groups_controller.rb +60 -0
  103. data/app/controllers/boxroom/permissions_controller.rb +19 -0
  104. data/app/controllers/boxroom/reset_password_controller.rb +45 -0
  105. data/app/controllers/boxroom/search_controller.rb +21 -0
  106. data/app/controllers/boxroom/sessions_controller.rb +48 -0
  107. data/app/controllers/boxroom/share_links_controller.rb +67 -0
  108. data/app/controllers/boxroom/signup_controller.rb +31 -0
  109. data/app/controllers/boxroom/users_controller.rb +75 -0
  110. data/app/controllers/concerns/boxroom/base_controller.rb +92 -0
  111. data/app/helpers/boxroom/application_helper.rb +4 -0
  112. data/app/helpers/boxroom/folders_helper.rb +17 -0
  113. data/app/jobs/boxroom/application_job.rb +4 -0
  114. data/app/mailers/boxroom/application_mailer.rb +6 -0
  115. data/app/mailers/boxroom/user_mailer.rb +18 -0
  116. data/app/models/boxroom/application_record.rb +5 -0
  117. data/app/models/boxroom/clipboard.rb +45 -0
  118. data/app/models/boxroom/folder.rb +113 -0
  119. data/app/models/boxroom/group.rb +57 -0
  120. data/app/models/boxroom/permission.rb +6 -0
  121. data/app/models/boxroom/permitted_params.rb +33 -0
  122. data/app/models/boxroom/share_link.rb +40 -0
  123. data/app/models/boxroom/user.rb +113 -0
  124. data/app/models/boxroom/user_file.rb +35 -0
  125. data/app/views/boxroom/admins/new.html.erb +42 -0
  126. data/app/views/boxroom/clipboard/_clipboard_empty.de.html.erb +2 -0
  127. data/app/views/boxroom/clipboard/_clipboard_empty.en.html.erb +2 -0
  128. data/app/views/boxroom/clipboard/_clipboard_empty.es.html.erb +2 -0
  129. data/app/views/boxroom/clipboard/_clipboard_empty.fr.html.erb +2 -0
  130. data/app/views/boxroom/clipboard/_clipboard_empty.it.html.erb +2 -0
  131. data/app/views/boxroom/clipboard/_clipboard_empty.nl.html.erb +2 -0
  132. data/app/views/boxroom/clipboard/_clipboard_empty.zh-CN.html.erb +2 -0
  133. data/app/views/boxroom/clipboard/_show.html.erb +72 -0
  134. data/app/views/boxroom/files/edit.html.erb +24 -0
  135. data/app/views/boxroom/files/new.html.erb +45 -0
  136. data/app/views/boxroom/folders/_form.html.erb +19 -0
  137. data/app/views/boxroom/folders/edit.html.erb +6 -0
  138. data/app/views/boxroom/folders/new.html.erb +6 -0
  139. data/app/views/boxroom/folders/show.html.erb +69 -0
  140. data/app/views/boxroom/groups/_form.html.erb +21 -0
  141. data/app/views/boxroom/groups/edit.html.erb +4 -0
  142. data/app/views/boxroom/groups/index.html.erb +42 -0
  143. data/app/views/boxroom/groups/new.html.erb +4 -0
  144. data/app/views/boxroom/permissions/_form.html.erb +46 -0
  145. data/app/views/boxroom/reset_password/_message.de.html.erb +2 -0
  146. data/app/views/boxroom/reset_password/_message.en.html.erb +2 -0
  147. data/app/views/boxroom/reset_password/_message.es.html.erb +2 -0
  148. data/app/views/boxroom/reset_password/_message.fr.html.erb +2 -0
  149. data/app/views/boxroom/reset_password/_message.it.html.erb +2 -0
  150. data/app/views/boxroom/reset_password/_message.nl.html.erb +2 -0
  151. data/app/views/boxroom/reset_password/_message.zh-CN.html.erb +2 -0
  152. data/app/views/boxroom/reset_password/edit.html.erb +30 -0
  153. data/app/views/boxroom/reset_password/new.html.erb +22 -0
  154. data/app/views/boxroom/search/show.html.erb +15 -0
  155. data/app/views/boxroom/sessions/new.html.erb +31 -0
  156. data/app/views/boxroom/share_links/index.html.erb +24 -0
  157. data/app/views/boxroom/share_links/new.html.erb +49 -0
  158. data/app/views/boxroom/shared/_footer.html.erb +9 -0
  159. data/app/views/boxroom/shared/_header.html.erb +45 -0
  160. data/app/views/boxroom/signup/edit.html.erb +42 -0
  161. data/app/views/boxroom/user_mailer/reset_password_email.de.text.erb +18 -0
  162. data/app/views/boxroom/user_mailer/reset_password_email.en.text.erb +17 -0
  163. data/app/views/boxroom/user_mailer/reset_password_email.es.text.erb +17 -0
  164. data/app/views/boxroom/user_mailer/reset_password_email.fr.text.erb +17 -0
  165. data/app/views/boxroom/user_mailer/reset_password_email.it.text.erb +17 -0
  166. data/app/views/boxroom/user_mailer/reset_password_email.nl.text.erb +17 -0
  167. data/app/views/boxroom/user_mailer/reset_password_email.zh-CN.text.erb +16 -0
  168. data/app/views/boxroom/user_mailer/share_link_email.de.text.erb +20 -0
  169. data/app/views/boxroom/user_mailer/share_link_email.en.text.erb +20 -0
  170. data/app/views/boxroom/user_mailer/share_link_email.es.text.erb +20 -0
  171. data/app/views/boxroom/user_mailer/share_link_email.fr.text.erb +20 -0
  172. data/app/views/boxroom/user_mailer/share_link_email.it.text.erb +20 -0
  173. data/app/views/boxroom/user_mailer/share_link_email.nl.text.erb +20 -0
  174. data/app/views/boxroom/user_mailer/share_link_email.zh-CN.text.erb +20 -0
  175. data/app/views/boxroom/user_mailer/signup_email.de.text.erb +9 -0
  176. data/app/views/boxroom/user_mailer/signup_email.en.text.erb +9 -0
  177. data/app/views/boxroom/user_mailer/signup_email.es.text.erb +9 -0
  178. data/app/views/boxroom/user_mailer/signup_email.fr.text.erb +9 -0
  179. data/app/views/boxroom/user_mailer/signup_email.it.text.erb +9 -0
  180. data/app/views/boxroom/user_mailer/signup_email.nl.text.erb +10 -0
  181. data/app/views/boxroom/user_mailer/signup_email.zh-CN.text.erb +8 -0
  182. data/app/views/boxroom/users/_form.html.erb +63 -0
  183. data/app/views/boxroom/users/edit.html.erb +4 -0
  184. data/app/views/boxroom/users/index.html.erb +68 -0
  185. data/app/views/boxroom/users/new.html.erb +4 -0
  186. data/app/views/layouts/boxroom/application.html.erb +37 -0
  187. data/config/locales/de.yml +414 -0
  188. data/config/locales/en.yml +407 -0
  189. data/config/locales/es.yml +403 -0
  190. data/config/locales/fr.yml +403 -0
  191. data/config/locales/it.yml +414 -0
  192. data/config/locales/nl.yml +408 -0
  193. data/config/locales/zh-CN.yml +406 -0
  194. data/config/routes.rb +44 -0
  195. data/db/migrate/20100930062939_boxroom_create_users.rb +20 -0
  196. data/db/migrate/20100930091426_boxroom_create_folders.rb +14 -0
  197. data/db/migrate/20100930091451_boxroom_create_groups.rb +12 -0
  198. data/db/migrate/20101002122244_boxroom_create_user_files.rb +17 -0
  199. data/db/migrate/20101005071402_boxroom_create_permissions.rb +16 -0
  200. data/db/migrate/20101005071508_boxroom_create_groups_users.rb +12 -0
  201. data/db/migrate/20110106045148_boxroom_drop_column_user_id_from_folders.rb +9 -0
  202. data/db/migrate/20110106045414_boxroom_drop_column_user_id_from_user_files.rb +9 -0
  203. data/db/migrate/20110529123402_boxroom_drop_column_access_key_from_users.rb +9 -0
  204. data/db/migrate/20110616215033_boxroom_create_share_links.rb +15 -0
  205. data/db/migrate/20120411075110_boxroom_add_column_signup_token_to_users.rb +8 -0
  206. data/db/migrate/20120411081345_boxroom_add_column_signup_token_expires_at_to_users.rb +7 -0
  207. data/db/migrate/20130626210927_boxroom_add_columns_message_user_id_to_share_links.rb +6 -0
  208. data/db/migrate/20130628082245_boxroom_populate_user_id_in_share_links.rb +9 -0
  209. data/lib/boxroom.rb +35 -0
  210. data/lib/boxroom/configuration.rb +18 -0
  211. data/lib/boxroom/engine.rb +9 -0
  212. data/lib/boxroom/version.rb +3 -0
  213. data/lib/paperclip/spoof_detector.rb +7 -0
  214. data/lib/tasks/boxroom_tasks.rake +4 -0
  215. metadata +481 -0
@@ -0,0 +1,44 @@
1
+ Boxroom::Engine.routes.draw do
2
+ get '/file_exists', to: 'files#exists'
3
+ get '/signin', to: 'sessions#new', as: 'signin'
4
+ delete '/signout', to: 'sessions#destroy'
5
+ get '/search', to: 'search#show', as: :search
6
+
7
+ # Resources
8
+ resources :admins, only: [:new, :create]
9
+ resources :sessions, only: [:new, :create, :destroy]
10
+ resources :reset_password, except: [:index, :show, :destroy]
11
+ resources :signup, only: [:edit, :update]
12
+ resources :groups, except: :show
13
+ resources :files, except: [:index, :new, :create]
14
+ resources :share_links, only: [:index, :show, :destroy]
15
+
16
+ resources :users, except: :show do
17
+ put :extend, on: :member
18
+ end
19
+
20
+ resources :clipboard, only: [:create, :destroy] do
21
+ post :copy, on: :member
22
+ post :move, on: :member
23
+ put :reset, on: :member
24
+ end
25
+
26
+ # Update a collection of permissions
27
+ resources :permissions, only: :update_multiple do
28
+ put :update_multiple, on: :collection
29
+ end
30
+
31
+ # Nested resources
32
+ resources :folders, :shallow => true, except: [:new, :create] do
33
+ resources :folders, only: [:new, :create]
34
+ resources :files, only: [:new, :create]
35
+ end
36
+
37
+ resources :files, :shallow => :true, only: :show do
38
+ resources :share_links, only: [:new, :create]
39
+ end
40
+
41
+ # You can have the root of your site routed with "root"
42
+ # just remember to delete public/index.html.
43
+ root to: 'folders#index'
44
+ end
@@ -0,0 +1,20 @@
1
+ class BoxroomCreateUsers < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_users do |t|
4
+ t.string :name
5
+ t.string :email
6
+ t.string :hashed_password
7
+ t.string :password_salt
8
+ t.boolean :is_admin
9
+ t.string :access_key
10
+ t.string :remember_token
11
+ t.string :reset_password_token
12
+ t.datetime :reset_password_token_expires_at
13
+ t.timestamps
14
+ end
15
+ end
16
+
17
+ def self.down
18
+ drop_table :boxroom_users
19
+ end
20
+ end
@@ -0,0 +1,14 @@
1
+ class BoxroomCreateFolders < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_folders do |t|
4
+ t.string :name
5
+ t.references :user
6
+ t.references :parent
7
+ t.timestamps
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ drop_table :boxroom_folders
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ class BoxroomCreateGroups < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_groups do |t|
4
+ t.string :name
5
+ t.timestamps
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :boxroom_groups
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ class BoxroomCreateUserFiles < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_user_files do |t|
4
+ t.string :attachment_file_name
5
+ t.string :attachment_content_type
6
+ t.integer :attachment_file_size
7
+ t.datetime :attachment_updated_at
8
+ t.references :folder
9
+ t.references :user
10
+ t.timestamps
11
+ end
12
+ end
13
+
14
+ def self.down
15
+ drop_table :boxroom_user_files
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ class BoxroomCreatePermissions < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_permissions do |t|
4
+ t.references :folder
5
+ t.references :group
6
+ t.boolean :can_create
7
+ t.boolean :can_read
8
+ t.boolean :can_update
9
+ t.boolean :can_delete
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :boxroom_permissions
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ class BoxroomCreateGroupsUsers < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_groups_users, :id => false do |t|
4
+ t.references :group
5
+ t.references :user
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :boxroom_groups_users
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ class BoxroomDropColumnUserIdFromFolders < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ remove_column :boxroom_folders, :user_id
4
+ end
5
+
6
+ def self.down
7
+ add_column :boxroom_folders, :user_id, :integer
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class BoxroomDropColumnUserIdFromUserFiles < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ remove_column :boxroom_user_files, :user_id
4
+ end
5
+
6
+ def self.down
7
+ add_column :boxroom_user_files, :user_id, :integer
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class BoxroomDropColumnAccessKeyFromUsers < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ remove_column :boxroom_users, :access_key
4
+ end
5
+
6
+ def self.down
7
+ add_column :boxroom_users, :access_key, :string
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ class BoxroomCreateShareLinks < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :boxroom_share_links do |t|
4
+ t.string :emails
5
+ t.string :link_token
6
+ t.datetime :link_expires_at
7
+ t.references :user_file
8
+ t.timestamps
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :boxroom_share_links
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ class BoxroomAddColumnSignupTokenToUsers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ change_table :boxroom_users do |t|
4
+ t.string :signup_token
5
+ t.index :signup_token
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ class BoxroomAddColumnSignupTokenExpiresAtToUsers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ change_table :boxroom_users do |t|
4
+ t.datetime :signup_token_expires_at
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ class BoxroomAddColumnsMessageUserIdToShareLinks < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :boxroom_share_links, :message, :text
4
+ add_column :boxroom_share_links, :user_id, :integer
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ class BoxroomPopulateUserIdInShareLinks < ActiveRecord::Migration[5.0]
2
+ def change
3
+ active_users = Boxroom::User.where.not(:name => nil)
4
+
5
+ if active_users.any? && Boxroom::ShareLink.any?
6
+ Boxroom::ShareLink.where(:user_id => nil).update_all(:user_id => active_users.first.id)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,35 @@
1
+ require 'boxroom/engine'
2
+ require 'dynamic_form'
3
+ require 'jquery-rails'
4
+ require 'jquery-fileupload-rails'
5
+ require 'acts_as_tree'
6
+ require 'paperclip'
7
+ require 'boxroom/configuration'
8
+ require 'paperclip/spoof_detector'
9
+ require 'bulma-rails'
10
+ require 'font-awesome-rails'
11
+
12
+ require 'cells/rails'
13
+ require 'cells-erb'
14
+ require 'trailblazer/cell'
15
+ require 'trailblazer-rails'
16
+
17
+ module Boxroom
18
+ RESTRICTED_CHARACTERS = /[&$+,\/:;=?@<>\[\]\{\}\|\\\^~%# ]/
19
+
20
+ class << self
21
+ attr_writer :configuration
22
+
23
+ def configuration
24
+ @configuration ||= Configuration.new
25
+ end
26
+
27
+ def reset
28
+ @configuration = Configuration.new
29
+ end
30
+
31
+ def configure
32
+ yield(configuration)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,18 @@
1
+ module Boxroom
2
+ class Configuration
3
+ attr_accessor :site_name, :logo, :show_footer, :show_users, :show_groups, :show_settings, :show_shared_files,
4
+ :sign_out_path, :uploads_path
5
+
6
+ def initialize
7
+ @site_name = 'Boxroom'
8
+ @logo = 'boxroom/logo.png'
9
+ @uploads_path = 'uploads'
10
+ @show_footer = true
11
+ @show_users = true
12
+ @show_groups = true
13
+ @show_settings = true
14
+ @show_shared_files = true
15
+ @sign_out_path = nil
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ module Boxroom
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Boxroom
4
+
5
+ initializer 'boxroom.assets.precompile' do |app|
6
+ app.config.assets.precompile += %w( boxroom/*.png boxroom/*.jpg boxroom/*.gif )
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module Boxroom
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,7 @@
1
+ module Paperclip
2
+ class MediaTypeSpoofDetector
3
+ def spoofed?
4
+ false
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :boxroom do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,481 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: boxroom
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Serge Koba
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 5.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 5.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: dynamic_form
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: acts_as_tree
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: paperclip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 5.2.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 5.2.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: bulma-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.6.2
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.6.2
83
+ - !ruby/object:Gem::Dependency
84
+ name: font-awesome-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: jquery-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
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: jquery-fileupload-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
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: trailblazer-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 2.1.0
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 2.1.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: cells-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.0.8
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.0.8
153
+ - !ruby/object:Gem::Dependency
154
+ name: cells-erb
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.1.0
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.1.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: trailblazer-cells
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.0.3
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.0.3
181
+ - !ruby/object:Gem::Dependency
182
+ name: sqlite3
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
+ - !ruby/object:Gem::Dependency
196
+ name: factory_bot_rails
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: byebug
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: database_cleaner
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ description: Rails file manager engine
238
+ email:
239
+ - s.koba@mobidev.biz
240
+ executables: []
241
+ extensions: []
242
+ extra_rdoc_files: []
243
+ files:
244
+ - MIT-LICENSE
245
+ - README.md
246
+ - Rakefile
247
+ - app/assets/config/boxroom_manifest.js
248
+ - app/assets/images/boxroom/clipboard.png
249
+ - app/assets/images/boxroom/clipboard_add.png
250
+ - app/assets/images/boxroom/copy.png
251
+ - app/assets/images/boxroom/delete.png
252
+ - app/assets/images/boxroom/edit.png
253
+ - app/assets/images/boxroom/exclamation.png
254
+ - app/assets/images/boxroom/extend.png
255
+ - app/assets/images/boxroom/failed.png
256
+ - app/assets/images/boxroom/file.png
257
+ - app/assets/images/boxroom/file_add.png
258
+ - app/assets/images/boxroom/fileicons/7z.png
259
+ - app/assets/images/boxroom/fileicons/ai.png
260
+ - app/assets/images/boxroom/fileicons/aif.png
261
+ - app/assets/images/boxroom/fileicons/aiff.png
262
+ - app/assets/images/boxroom/fileicons/audio.png
263
+ - app/assets/images/boxroom/fileicons/bz2.png
264
+ - app/assets/images/boxroom/fileicons/c.png
265
+ - app/assets/images/boxroom/fileicons/conf.png
266
+ - app/assets/images/boxroom/fileicons/cpp.png
267
+ - app/assets/images/boxroom/fileicons/cs.png
268
+ - app/assets/images/boxroom/fileicons/css.png
269
+ - app/assets/images/boxroom/fileicons/csv.png
270
+ - app/assets/images/boxroom/fileicons/divx.png
271
+ - app/assets/images/boxroom/fileicons/doc.png
272
+ - app/assets/images/boxroom/fileicons/docx.png
273
+ - app/assets/images/boxroom/fileicons/dot.png
274
+ - app/assets/images/boxroom/fileicons/fla.png
275
+ - app/assets/images/boxroom/fileicons/gif.png
276
+ - app/assets/images/boxroom/fileicons/gz.png
277
+ - app/assets/images/boxroom/fileicons/htm.png
278
+ - app/assets/images/boxroom/fileicons/html.png
279
+ - app/assets/images/boxroom/fileicons/image.png
280
+ - app/assets/images/boxroom/fileicons/java.png
281
+ - app/assets/images/boxroom/fileicons/jpeg.png
282
+ - app/assets/images/boxroom/fileicons/jpg.png
283
+ - app/assets/images/boxroom/fileicons/js.png
284
+ - app/assets/images/boxroom/fileicons/mdb.png
285
+ - app/assets/images/boxroom/fileicons/mdbx.png
286
+ - app/assets/images/boxroom/fileicons/mov.png
287
+ - app/assets/images/boxroom/fileicons/mp3.png
288
+ - app/assets/images/boxroom/fileicons/mpg.png
289
+ - app/assets/images/boxroom/fileicons/ogg.png
290
+ - app/assets/images/boxroom/fileicons/pdf.png
291
+ - app/assets/images/boxroom/fileicons/php.png
292
+ - app/assets/images/boxroom/fileicons/pl.png
293
+ - app/assets/images/boxroom/fileicons/png.png
294
+ - app/assets/images/boxroom/fileicons/ppt.png
295
+ - app/assets/images/boxroom/fileicons/pptx.png
296
+ - app/assets/images/boxroom/fileicons/ps.png
297
+ - app/assets/images/boxroom/fileicons/py.png
298
+ - app/assets/images/boxroom/fileicons/ram.png
299
+ - app/assets/images/boxroom/fileicons/rar.png
300
+ - app/assets/images/boxroom/fileicons/rb.png
301
+ - app/assets/images/boxroom/fileicons/rm.png
302
+ - app/assets/images/boxroom/fileicons/rtf.png
303
+ - app/assets/images/boxroom/fileicons/sql.png
304
+ - app/assets/images/boxroom/fileicons/swf.png
305
+ - app/assets/images/boxroom/fileicons/tar.png
306
+ - app/assets/images/boxroom/fileicons/tgz.png
307
+ - app/assets/images/boxroom/fileicons/txt.png
308
+ - app/assets/images/boxroom/fileicons/video.png
309
+ - app/assets/images/boxroom/fileicons/wav.png
310
+ - app/assets/images/boxroom/fileicons/wma.png
311
+ - app/assets/images/boxroom/fileicons/wmv.png
312
+ - app/assets/images/boxroom/fileicons/xls.png
313
+ - app/assets/images/boxroom/fileicons/xlsx.png
314
+ - app/assets/images/boxroom/fileicons/xml.png
315
+ - app/assets/images/boxroom/fileicons/xvid.png
316
+ - app/assets/images/boxroom/fileicons/zip.png
317
+ - app/assets/images/boxroom/folder.png
318
+ - app/assets/images/boxroom/folder_add.png
319
+ - app/assets/images/boxroom/group.png
320
+ - app/assets/images/boxroom/group_add.png
321
+ - app/assets/images/boxroom/group_grey.png
322
+ - app/assets/images/boxroom/information.png
323
+ - app/assets/images/boxroom/logo.png
324
+ - app/assets/images/boxroom/move.png
325
+ - app/assets/images/boxroom/permissions.png
326
+ - app/assets/images/boxroom/share.png
327
+ - app/assets/images/boxroom/spinner.gif
328
+ - app/assets/images/boxroom/tick.png
329
+ - app/assets/images/boxroom/user.png
330
+ - app/assets/images/boxroom/user_add.png
331
+ - app/assets/javascripts/boxroom/application.js.coffee
332
+ - app/assets/javascripts/boxroom/files.js.coffee
333
+ - app/assets/stylesheets/boxroom/application.scss
334
+ - app/concepts/boxroom/base_cell.rb
335
+ - app/concepts/boxroom/folder/cell/show.rb
336
+ - app/concepts/boxroom/folder/view/show.erb
337
+ - app/concepts/boxroom/search/contract/files_and_folders.rb
338
+ - app/concepts/boxroom/search/operations/files_and_folders.rb
339
+ - app/controllers/boxroom/admins_controller.rb
340
+ - app/controllers/boxroom/application_controller.rb
341
+ - app/controllers/boxroom/clipboard_controller.rb
342
+ - app/controllers/boxroom/files_controller.rb
343
+ - app/controllers/boxroom/folders_controller.rb
344
+ - app/controllers/boxroom/groups_controller.rb
345
+ - app/controllers/boxroom/permissions_controller.rb
346
+ - app/controllers/boxroom/reset_password_controller.rb
347
+ - app/controllers/boxroom/search_controller.rb
348
+ - app/controllers/boxroom/sessions_controller.rb
349
+ - app/controllers/boxroom/share_links_controller.rb
350
+ - app/controllers/boxroom/signup_controller.rb
351
+ - app/controllers/boxroom/users_controller.rb
352
+ - app/controllers/concerns/boxroom/base_controller.rb
353
+ - app/helpers/boxroom/application_helper.rb
354
+ - app/helpers/boxroom/folders_helper.rb
355
+ - app/jobs/boxroom/application_job.rb
356
+ - app/mailers/boxroom/application_mailer.rb
357
+ - app/mailers/boxroom/user_mailer.rb
358
+ - app/models/boxroom/application_record.rb
359
+ - app/models/boxroom/clipboard.rb
360
+ - app/models/boxroom/folder.rb
361
+ - app/models/boxroom/group.rb
362
+ - app/models/boxroom/permission.rb
363
+ - app/models/boxroom/permitted_params.rb
364
+ - app/models/boxroom/share_link.rb
365
+ - app/models/boxroom/user.rb
366
+ - app/models/boxroom/user_file.rb
367
+ - app/views/boxroom/admins/new.html.erb
368
+ - app/views/boxroom/clipboard/_clipboard_empty.de.html.erb
369
+ - app/views/boxroom/clipboard/_clipboard_empty.en.html.erb
370
+ - app/views/boxroom/clipboard/_clipboard_empty.es.html.erb
371
+ - app/views/boxroom/clipboard/_clipboard_empty.fr.html.erb
372
+ - app/views/boxroom/clipboard/_clipboard_empty.it.html.erb
373
+ - app/views/boxroom/clipboard/_clipboard_empty.nl.html.erb
374
+ - app/views/boxroom/clipboard/_clipboard_empty.zh-CN.html.erb
375
+ - app/views/boxroom/clipboard/_show.html.erb
376
+ - app/views/boxroom/files/edit.html.erb
377
+ - app/views/boxroom/files/new.html.erb
378
+ - app/views/boxroom/folders/_form.html.erb
379
+ - app/views/boxroom/folders/edit.html.erb
380
+ - app/views/boxroom/folders/new.html.erb
381
+ - app/views/boxroom/folders/show.html.erb
382
+ - app/views/boxroom/groups/_form.html.erb
383
+ - app/views/boxroom/groups/edit.html.erb
384
+ - app/views/boxroom/groups/index.html.erb
385
+ - app/views/boxroom/groups/new.html.erb
386
+ - app/views/boxroom/permissions/_form.html.erb
387
+ - app/views/boxroom/reset_password/_message.de.html.erb
388
+ - app/views/boxroom/reset_password/_message.en.html.erb
389
+ - app/views/boxroom/reset_password/_message.es.html.erb
390
+ - app/views/boxroom/reset_password/_message.fr.html.erb
391
+ - app/views/boxroom/reset_password/_message.it.html.erb
392
+ - app/views/boxroom/reset_password/_message.nl.html.erb
393
+ - app/views/boxroom/reset_password/_message.zh-CN.html.erb
394
+ - app/views/boxroom/reset_password/edit.html.erb
395
+ - app/views/boxroom/reset_password/new.html.erb
396
+ - app/views/boxroom/search/show.html.erb
397
+ - app/views/boxroom/sessions/new.html.erb
398
+ - app/views/boxroom/share_links/index.html.erb
399
+ - app/views/boxroom/share_links/new.html.erb
400
+ - app/views/boxroom/shared/_footer.html.erb
401
+ - app/views/boxroom/shared/_header.html.erb
402
+ - app/views/boxroom/signup/edit.html.erb
403
+ - app/views/boxroom/user_mailer/reset_password_email.de.text.erb
404
+ - app/views/boxroom/user_mailer/reset_password_email.en.text.erb
405
+ - app/views/boxroom/user_mailer/reset_password_email.es.text.erb
406
+ - app/views/boxroom/user_mailer/reset_password_email.fr.text.erb
407
+ - app/views/boxroom/user_mailer/reset_password_email.it.text.erb
408
+ - app/views/boxroom/user_mailer/reset_password_email.nl.text.erb
409
+ - app/views/boxroom/user_mailer/reset_password_email.zh-CN.text.erb
410
+ - app/views/boxroom/user_mailer/share_link_email.de.text.erb
411
+ - app/views/boxroom/user_mailer/share_link_email.en.text.erb
412
+ - app/views/boxroom/user_mailer/share_link_email.es.text.erb
413
+ - app/views/boxroom/user_mailer/share_link_email.fr.text.erb
414
+ - app/views/boxroom/user_mailer/share_link_email.it.text.erb
415
+ - app/views/boxroom/user_mailer/share_link_email.nl.text.erb
416
+ - app/views/boxroom/user_mailer/share_link_email.zh-CN.text.erb
417
+ - app/views/boxroom/user_mailer/signup_email.de.text.erb
418
+ - app/views/boxroom/user_mailer/signup_email.en.text.erb
419
+ - app/views/boxroom/user_mailer/signup_email.es.text.erb
420
+ - app/views/boxroom/user_mailer/signup_email.fr.text.erb
421
+ - app/views/boxroom/user_mailer/signup_email.it.text.erb
422
+ - app/views/boxroom/user_mailer/signup_email.nl.text.erb
423
+ - app/views/boxroom/user_mailer/signup_email.zh-CN.text.erb
424
+ - app/views/boxroom/users/_form.html.erb
425
+ - app/views/boxroom/users/edit.html.erb
426
+ - app/views/boxroom/users/index.html.erb
427
+ - app/views/boxroom/users/new.html.erb
428
+ - app/views/layouts/boxroom/application.html.erb
429
+ - config/locales/de.yml
430
+ - config/locales/en.yml
431
+ - config/locales/es.yml
432
+ - config/locales/fr.yml
433
+ - config/locales/it.yml
434
+ - config/locales/nl.yml
435
+ - config/locales/zh-CN.yml
436
+ - config/routes.rb
437
+ - db/migrate/20100930062939_boxroom_create_users.rb
438
+ - db/migrate/20100930091426_boxroom_create_folders.rb
439
+ - db/migrate/20100930091451_boxroom_create_groups.rb
440
+ - db/migrate/20101002122244_boxroom_create_user_files.rb
441
+ - db/migrate/20101005071402_boxroom_create_permissions.rb
442
+ - db/migrate/20101005071508_boxroom_create_groups_users.rb
443
+ - db/migrate/20110106045148_boxroom_drop_column_user_id_from_folders.rb
444
+ - db/migrate/20110106045414_boxroom_drop_column_user_id_from_user_files.rb
445
+ - db/migrate/20110529123402_boxroom_drop_column_access_key_from_users.rb
446
+ - db/migrate/20110616215033_boxroom_create_share_links.rb
447
+ - db/migrate/20120411075110_boxroom_add_column_signup_token_to_users.rb
448
+ - db/migrate/20120411081345_boxroom_add_column_signup_token_expires_at_to_users.rb
449
+ - db/migrate/20130626210927_boxroom_add_columns_message_user_id_to_share_links.rb
450
+ - db/migrate/20130628082245_boxroom_populate_user_id_in_share_links.rb
451
+ - lib/boxroom.rb
452
+ - lib/boxroom/configuration.rb
453
+ - lib/boxroom/engine.rb
454
+ - lib/boxroom/version.rb
455
+ - lib/paperclip/spoof_detector.rb
456
+ - lib/tasks/boxroom_tasks.rake
457
+ homepage: https://github.com/sergey-koba-mobidev/boxroom-engine
458
+ licenses:
459
+ - MIT
460
+ metadata: {}
461
+ post_install_message:
462
+ rdoc_options: []
463
+ require_paths:
464
+ - lib
465
+ required_ruby_version: !ruby/object:Gem::Requirement
466
+ requirements:
467
+ - - ">="
468
+ - !ruby/object:Gem::Version
469
+ version: '0'
470
+ required_rubygems_version: !ruby/object:Gem::Requirement
471
+ requirements:
472
+ - - ">="
473
+ - !ruby/object:Gem::Version
474
+ version: '0'
475
+ requirements: []
476
+ rubyforge_project:
477
+ rubygems_version: 2.5.2
478
+ signing_key:
479
+ specification_version: 4
480
+ summary: Rails file manager engine
481
+ test_files: []