tb_media 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +28 -0
  4. data/Readme.markdown +73 -0
  5. data/app/assets/images/spud/admin/files_thumbs/dat_thumb.png +0 -0
  6. data/app/assets/images/spud/admin/files_thumbs/doc_thumb.png +0 -0
  7. data/app/assets/images/spud/admin/files_thumbs/jpg_thumb.png +0 -0
  8. data/app/assets/images/spud/admin/files_thumbs/mp3_thumb.png +0 -0
  9. data/app/assets/images/spud/admin/files_thumbs/pdf_thumb.png +0 -0
  10. data/app/assets/images/spud/admin/files_thumbs/png_thumb.png +0 -0
  11. data/app/assets/images/spud/admin/files_thumbs/ppt_thumb.png +0 -0
  12. data/app/assets/images/spud/admin/files_thumbs/txt_thumb.png +0 -0
  13. data/app/assets/images/spud/admin/files_thumbs/xls_thumb.png +0 -0
  14. data/app/assets/images/spud/admin/files_thumbs/zip_thumb.png +0 -0
  15. data/app/assets/images/spud/admin/media/checkers.jpg +0 -0
  16. data/app/assets/images/spud/admin/media_thumb.png +0 -0
  17. data/app/assets/images/spud/admin/media_thumb@2x.png +0 -0
  18. data/app/assets/images/spud/admin/media_tiny.png +0 -0
  19. data/app/assets/javascripts/spud/admin/media/application.js +175 -0
  20. data/app/assets/javascripts/spud/admin/media/picker.js +219 -0
  21. data/app/assets/javascripts/spud/admin/media/plugin.js +99 -0
  22. data/app/assets/libs/jcrop/css/Jcrop.gif +0 -0
  23. data/app/assets/libs/jcrop/css/jquery.Jcrop.css +165 -0
  24. data/app/assets/libs/jcrop/css/jquery.Jcrop.min.css +29 -0
  25. data/app/assets/libs/jcrop/js/jquery.Jcrop.js +1694 -0
  26. data/app/assets/libs/jcrop/js/jquery.Jcrop.min.js +22 -0
  27. data/app/assets/libs/jcrop/js/jquery.color.js +661 -0
  28. data/app/assets/libs/jcrop/js/jquery.min.js +4 -0
  29. data/app/assets/libs/tiny_mce/plugins/spud_media/blank.htm +12 -0
  30. data/app/assets/libs/tiny_mce/plugins/spud_media/css/template.css +23 -0
  31. data/app/assets/libs/tiny_mce/plugins/spud_media/editor_plugin.js +1 -0
  32. data/app/assets/libs/tiny_mce/plugins/spud_media/editor_plugin_src.js +159 -0
  33. data/app/assets/libs/tiny_mce/plugins/spud_media/js/template.js +106 -0
  34. data/app/assets/libs/tiny_mce/plugins/spud_media/langs/en_dlg.js +1 -0
  35. data/app/assets/libs/tiny_mce/plugins/spud_media/template.htm +31 -0
  36. data/app/assets/stylesheets/spud/admin/media/application.css +103 -0
  37. data/app/assets/stylesheets/spud/admin/media/plugin.css +154 -0
  38. data/app/controllers/protected_media_controller.rb +26 -0
  39. data/app/controllers/spud/admin/media_controller.rb +73 -0
  40. data/app/controllers/spud/admin/media_picker_controller.rb +28 -0
  41. data/app/helpers/protected_media_helper.rb +3 -0
  42. data/app/helpers/spud/admin/users_helper.rb +2 -0
  43. data/app/helpers/spud/user_sessions_helper.rb +2 -0
  44. data/app/models/spud_media.rb +154 -0
  45. data/app/views/spud/admin/media/edit.html.erb +50 -0
  46. data/app/views/spud/admin/media/index.html.erb +37 -0
  47. data/app/views/spud/admin/media/new.html.erb +26 -0
  48. data/app/views/spud/admin/media_picker/_media.html.erb +19 -0
  49. data/app/views/spud/admin/media_picker/create.html.erb +1 -0
  50. data/app/views/spud/admin/media_picker/create.js.erb +1 -0
  51. data/app/views/spud/admin/media_picker/index.html.erb +103 -0
  52. data/config/routes.rb +13 -0
  53. data/db/migrate/20120101194256_create_spud_media.rb +11 -0
  54. data/db/migrate/20120501203325_add_protected_to_spud_media.rb +6 -0
  55. data/db/migrate/20120508132153_add_cropping_to_spud_media.rb +9 -0
  56. data/lib/spud_media/configuration.rb +11 -0
  57. data/lib/spud_media/engine.rb +16 -0
  58. data/lib/spud_media/version.rb +5 -0
  59. data/lib/tasks/spud_media_tasks.rake +15 -0
  60. data/lib/tb_media.rb +6 -0
  61. metadata +257 -0
@@ -0,0 +1,103 @@
1
+ <html>
2
+ <head>
3
+ <title>Spud Media Picker</title>
4
+ <%= stylesheet_link_tag *Spud::Core.config.admin_stylesheets %>
5
+ <%= javascript_include_tag *Spud::Core.config.admin_javascripts %>
6
+ <%= javascript_include_tag 'tiny_mce/tiny_mce_popup' %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body class="spud_media_picker">
10
+
11
+ <div class="spud_media_picker_container">
12
+
13
+ <div class="spud_media_picker_tabs">
14
+ <a class="spud_media_picker_tab" href="#spud_media_picker_tab_upload">Upload</a>
15
+ <a class="spud_media_picker_tab" href="#spud_media_picker_tab_choose">Choose</a>
16
+ <a class="spud_media_picker_tab" href="#spud_media_picker_tab_advanced">Advanced</a>
17
+ </div>
18
+
19
+ <div class="spud_media_picker_tab_body spud_media_picker_tab_upload">
20
+ <%= form_for :spud_media, :html => {:class => 'spud_media_picker_upload_form', :target => 'spud_media_picker_upload_target'} do |f| %>
21
+ <%= f.label :attachment, 'Upload New File' %>
22
+ <%= f.file_field :attachment%>
23
+ <div class="progress progress-striped active spud_media_picker_upload_progress">
24
+ <div class="bar"></div>
25
+ </div>
26
+ <div class="spud_media_picker_buttons">
27
+ <%= f.submit 'Upload', :class => 'btn btn-mini btn-primary spud_media_picker_tab_upload_submit' %>
28
+ <%= link_to 'Cancel', '#', :class => 'btn btn-mini spud_media_picker_button_cancel' %>
29
+ </div>
30
+ <% end %>
31
+ </div>
32
+
33
+ <div class="spud_media_picker_tab_body spud_media_picker_tab_choose">
34
+ <div class="spud_media_picker_list">
35
+ <%= render :partial => 'media', :collection => @media %>
36
+ </div>
37
+ <div class="spud_media_picker_details">
38
+ <img src="" class="spud_media_picker_details_thumb" />
39
+ <ul class="spud_media_picker_details_meta">
40
+ <li>File Name: <span class="spud_media_picker_details_name"></span></li>
41
+ <li>File Size: <span class="spud_media_picker_details_size"></span></li>
42
+ <li>Last Modified: <span class="spud_media_picker_details_lastmod"></span></li>
43
+ <li>Protected: <span class="spud_media_picker_details_protected"></span></li>
44
+ </ul>
45
+ </div>
46
+ <div class="spud_media_picker_buttons">
47
+ <%= link_to 'Use Selected', '#', :class => 'btn btn-mini btn-primary spud_media_picker_button_use_selected' %>
48
+ <%= link_to 'Cancel', '#', :class => 'btn btn-mini spud_media_picker_button_cancel' %>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="spud_media_picker_tab_body spud_media_picker_tab_advanced">
53
+ <div class="spud_media_picker_option spud_media_picker_option_selected_file">
54
+ <label>Selected File:</label>
55
+ <input name="spud_media_picker_option_selected_file" type="text" disabled="disabled" />
56
+ </div>
57
+ <div class="spud_media_picker_option spud_media_picker_option_type">
58
+ <label>Media Type:</label>
59
+ <input name="spud_media_picker_option_type" type="text" disabled="disabled" />
60
+ </div>
61
+ <div class="spud_media_picker_option spud_media_picker_option_target">
62
+ <label>Open Link In:</label>
63
+ <select name="spud_media_picker_option_target">
64
+ <option value="">Same Window</option>
65
+ <option value="_blank">New Window</option>
66
+ </select>
67
+ </div>
68
+ <div class="spud_media_picker_option spud_media_picker_option_text">
69
+ <label>Link Text:</label>
70
+ <input name="spud_media_picker_option_text" type="text" />
71
+ </div>
72
+ <div class="spud_media_picker_option spud_media_picker_option_float">
73
+ <label>Float Image:</label>
74
+ <select name="spud_media_picker_option_float">
75
+ <option value="none">Normal</option>
76
+ <option value="left">Left</option>
77
+ <option value="right">Right</option>
78
+ </select>
79
+ </div>
80
+ <div class="spud_media_picker_option spud_media_picker_option_title">
81
+ <label>Title:</label>
82
+ <input name="spud_media_picker_option_title" type="text" />
83
+ </div>
84
+ <div class="spud_media_picker_option spud_media_picker_option_dimensions">
85
+ <label>Dimensions:</label>
86
+ <input name="spud_media_picker_option_dimension_w" type="text" placeholder="auto" /> px by <input name="spud_media_picker_option_dimension_h" type="text" placeholder="auto" /> px
87
+ </div>
88
+ <div class="spud_media_picker_buttons">
89
+ <%= link_to 'Insert', '#', :class => 'btn btn-mini btn-primary spud_media_picker_button_insert' %>
90
+ <%= link_to 'Cancel', '#', :class => 'btn btn-mini spud_media_picker_button_cancel' %>
91
+ </div>
92
+ </div>
93
+
94
+ </div>
95
+
96
+ <iframe id="spud_media_picker_upload_target" name="spud_media_picker_upload_target" style="display:none;"></iframe>
97
+
98
+ <script>
99
+ $(document).ready(spud.admin.mediapicker.init);
100
+ </script>
101
+
102
+ </body>
103
+ </html>
data/config/routes.rb ADDED
@@ -0,0 +1,13 @@
1
+ Rails.application.routes.draw do
2
+ namespace :spud do
3
+ namespace :admin do
4
+ resources :media do
5
+ put 'set_access', :on => :member
6
+ end
7
+ resources :media_picker, :only => [:index, :create]
8
+ end
9
+ end
10
+
11
+ #get '/media/protected/:id/:style/:filename' => 'ProtectedMedia#show', :as => 'protected_media'
12
+ get Spud::Media.config.storage_url => 'ProtectedMedia#show', :as => 'protected_media'
13
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSpudMedia < ActiveRecord::Migration
2
+ def change
3
+ create_table :spud_media do |t|
4
+ t.string :attachment_content_type
5
+ t.integer :attachment_file_size
6
+ t.string :attachment_file_name
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ class AddProtectedToSpudMedia < ActiveRecord::Migration
2
+ def change
3
+ add_column :spud_media, :is_protected, :boolean, :default => false
4
+ add_column :spud_media, :attachment_updated_at, :datetime
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ class AddCroppingToSpudMedia < ActiveRecord::Migration
2
+ def change
3
+ add_column :spud_media, :crop_x, :int, :default => 0
4
+ add_column :spud_media, :crop_y, :int, :default => 0
5
+ add_column :spud_media, :crop_w, :int
6
+ add_column :spud_media, :crop_h, :int
7
+ add_column :spud_media, :crop_s, :int, :default => 100
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Spud
2
+ module Media
3
+ include ActiveSupport::Configurable
4
+ config_accessor :paperclip_storage,:s3_credentials,:storage_path,:storage_path_protected,:storage_url
5
+ self.paperclip_storage = :filesystem
6
+ self.s3_credentials = "#{Rails.root}/config/s3.yml"
7
+ self.storage_path = "public/system/spud_media/:id/:style/:basename.:extension"
8
+ self.storage_path_protected = "public/system/spud_media_protected/:id/:style/:basename.:extension"
9
+ self.storage_url = "/system/spud_media/:id/:style/:basename.:extension"
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ require 'tb_core'
2
+ require 'paperclip'
3
+ module Spud
4
+ module Media
5
+ class Engine < Rails::Engine
6
+ engine_name :tb_media
7
+ initializer :admin do
8
+ Spud::Core.append_admin_javascripts('spud/admin/media/application')
9
+ Spud::Core.append_admin_stylesheets('spud/admin/media/application')
10
+ Spud::Core.configure do |config|
11
+ config.admin_applications += [{:name => "Media",:thumbnail => "spud/admin/media_thumb.png",:url => "/spud/admin/media",:order => 3,:retina => true}]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ module Spud
2
+ module Media
3
+ VERSION = "1.0"
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ # desc "Explaining what the task does"
2
+ # task :spud_media do
3
+ # # Task goes here
4
+ # end
5
+
6
+ namespace :spud_media do
7
+
8
+ desc "Validate that all media files have the proper permission settings"
9
+ task :validate_permissions => :environment do
10
+ SpudMedia.find_each do |m|
11
+ m.validate_permissions
12
+ end
13
+ end
14
+
15
+ end
data/lib/tb_media.rb ADDED
@@ -0,0 +1,6 @@
1
+ module Spud
2
+ module Media
3
+ require 'spud_media/configuration'
4
+ require 'spud_media/engine' if defined?(Rails)
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,257 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tb_media
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ platform: ruby
6
+ authors:
7
+ - Greg Woods
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-06-19 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: 3.2.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: tb_core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: paperclip
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: mysql2
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.3.11
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.3.11
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 2.8.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 2.8.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 2.8.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 2.8.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: shoulda
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 3.0.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 3.0.1
111
+ - !ruby/object:Gem::Dependency
112
+ name: factory_girl
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 2.5.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 2.5.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: mocha
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 0.10.3
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: 0.10.3
139
+ - !ruby/object:Gem::Dependency
140
+ name: database_cleaner
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 0.7.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 0.7.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: 0.6.4
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: 0.6.4
167
+ description: Spud Media allows you to upload files to your site and manage them in
168
+ the spud administrative panel. It also uses paperclip and supports s3 storage
169
+ email:
170
+ - greg@westlakedesign.com
171
+ executables: []
172
+ extensions: []
173
+ extra_rdoc_files: []
174
+ files:
175
+ - app/assets/images/spud/admin/files_thumbs/dat_thumb.png
176
+ - app/assets/images/spud/admin/files_thumbs/doc_thumb.png
177
+ - app/assets/images/spud/admin/files_thumbs/jpg_thumb.png
178
+ - app/assets/images/spud/admin/files_thumbs/mp3_thumb.png
179
+ - app/assets/images/spud/admin/files_thumbs/pdf_thumb.png
180
+ - app/assets/images/spud/admin/files_thumbs/png_thumb.png
181
+ - app/assets/images/spud/admin/files_thumbs/ppt_thumb.png
182
+ - app/assets/images/spud/admin/files_thumbs/txt_thumb.png
183
+ - app/assets/images/spud/admin/files_thumbs/xls_thumb.png
184
+ - app/assets/images/spud/admin/files_thumbs/zip_thumb.png
185
+ - app/assets/images/spud/admin/media/checkers.jpg
186
+ - app/assets/images/spud/admin/media_thumb.png
187
+ - app/assets/images/spud/admin/media_thumb@2x.png
188
+ - app/assets/images/spud/admin/media_tiny.png
189
+ - app/assets/javascripts/spud/admin/media/application.js
190
+ - app/assets/javascripts/spud/admin/media/picker.js
191
+ - app/assets/javascripts/spud/admin/media/plugin.js
192
+ - app/assets/libs/jcrop/css/Jcrop.gif
193
+ - app/assets/libs/jcrop/css/jquery.Jcrop.css
194
+ - app/assets/libs/jcrop/css/jquery.Jcrop.min.css
195
+ - app/assets/libs/jcrop/js/jquery.color.js
196
+ - app/assets/libs/jcrop/js/jquery.Jcrop.js
197
+ - app/assets/libs/jcrop/js/jquery.Jcrop.min.js
198
+ - app/assets/libs/jcrop/js/jquery.min.js
199
+ - app/assets/libs/tiny_mce/plugins/spud_media/blank.htm
200
+ - app/assets/libs/tiny_mce/plugins/spud_media/css/template.css
201
+ - app/assets/libs/tiny_mce/plugins/spud_media/editor_plugin.js
202
+ - app/assets/libs/tiny_mce/plugins/spud_media/editor_plugin_src.js
203
+ - app/assets/libs/tiny_mce/plugins/spud_media/js/template.js
204
+ - app/assets/libs/tiny_mce/plugins/spud_media/langs/en_dlg.js
205
+ - app/assets/libs/tiny_mce/plugins/spud_media/template.htm
206
+ - app/assets/stylesheets/spud/admin/media/application.css
207
+ - app/assets/stylesheets/spud/admin/media/plugin.css
208
+ - app/controllers/protected_media_controller.rb
209
+ - app/controllers/spud/admin/media_controller.rb
210
+ - app/controllers/spud/admin/media_picker_controller.rb
211
+ - app/helpers/protected_media_helper.rb
212
+ - app/helpers/spud/admin/users_helper.rb
213
+ - app/helpers/spud/user_sessions_helper.rb
214
+ - app/models/spud_media.rb
215
+ - app/views/spud/admin/media/edit.html.erb
216
+ - app/views/spud/admin/media/index.html.erb
217
+ - app/views/spud/admin/media/new.html.erb
218
+ - app/views/spud/admin/media_picker/_media.html.erb
219
+ - app/views/spud/admin/media_picker/create.html.erb
220
+ - app/views/spud/admin/media_picker/create.js.erb
221
+ - app/views/spud/admin/media_picker/index.html.erb
222
+ - config/routes.rb
223
+ - db/migrate/20120101194256_create_spud_media.rb
224
+ - db/migrate/20120501203325_add_protected_to_spud_media.rb
225
+ - db/migrate/20120508132153_add_cropping_to_spud_media.rb
226
+ - lib/spud_media/configuration.rb
227
+ - lib/spud_media/engine.rb
228
+ - lib/spud_media/version.rb
229
+ - lib/tasks/spud_media_tasks.rake
230
+ - lib/tb_media.rb
231
+ - MIT-LICENSE
232
+ - Rakefile
233
+ - Readme.markdown
234
+ homepage: http://bitbucket.org/westlakedesign/tb_media
235
+ licenses: []
236
+ metadata: {}
237
+ post_install_message:
238
+ rdoc_options: []
239
+ require_paths:
240
+ - lib
241
+ required_ruby_version: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ! '>='
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ required_rubygems_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ! '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ requirements: []
252
+ rubyforge_project:
253
+ rubygems_version: 2.0.3
254
+ signing_key:
255
+ specification_version: 4
256
+ summary: Spud File upload/management module
257
+ test_files: []