spud_media 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Readme.markdown +10 -10
- data/app/assets/images/spud/admin/media/checkers.jpg +0 -0
- data/app/assets/javascripts/spud/admin/media.js +176 -0
- data/app/assets/libs/jcrop/css/Jcrop.gif +0 -0
- data/app/assets/libs/jcrop/css/jquery.Jcrop.css +86 -0
- data/app/assets/libs/jcrop/css/jquery.Jcrop.min.css +28 -0
- data/app/assets/libs/jcrop/js/jquery.Jcrop.js +1695 -0
- data/app/assets/libs/jcrop/js/jquery.Jcrop.min.js +22 -0
- data/app/assets/libs/jcrop/js/jquery.color.js +123 -0
- data/app/assets/libs/jcrop/js/jquery.min.js +4 -0
- data/app/assets/stylesheets/spud/admin/media.css +98 -0
- data/app/controllers/protected_media_controller.rb +2 -2
- data/app/controllers/spud/admin/media_controller.rb +19 -4
- data/app/models/spud_media.rb +115 -80
- data/app/views/layouts/spud/admin/media/detail.html.erb +3 -2
- data/app/views/spud/admin/media/edit.html.erb +50 -0
- data/app/views/spud/admin/media/index.html.erb +4 -1
- data/config/routes.rb +1 -0
- data/db/migrate/20120508132153_add_cropping_to_spud_media.rb +9 -0
- data/lib/spud_media/version.rb +1 -1
- metadata +34 -24
- data/app/assets/javascripts/spud/admin/media/application.js +0 -0
- data/app/assets/stylesheets/spud/admin/media/application.css +0 -3
data/app/models/spud_media.rb
CHANGED
@@ -1,101 +1,136 @@
|
|
1
1
|
class SpudMedia < ActiveRecord::Base
|
2
2
|
|
3
3
|
has_attached_file :attachment,
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
4
|
+
:storage => Spud::Media.paperclip_storage,
|
5
|
+
:s3_credentials => Spud::Media.s3_credentials,
|
6
|
+
:s3_permissions => lambda { |attachment, style|
|
7
|
+
attachment.instance.is_protected ? 'private' : 'public-read'
|
8
|
+
},
|
9
|
+
:path => Spud::Media.paperclip_storage == :s3 ? Spud::Media.storage_path : lambda { |attachment|
|
10
|
+
attachment.instance.is_protected ? Spud::Media.storage_path_protected : Spud::Media.storage_path
|
11
|
+
},
|
12
|
+
:url => Spud::Media.storage_url,
|
13
|
+
:styles => lambda { |attachment| attachment.instance.custom_style }
|
13
14
|
|
14
|
-
|
15
|
+
attr_accessible :attachment_content_type,:attachment_file_name,:attachment_file_size,:attachment, :is_protected, :crop_x, :crop_y, :crop_w, :crop_h, :crop_s
|
15
16
|
|
16
|
-
|
17
|
-
def image_from_type
|
18
|
-
if self.attachment_content_type.blank?
|
19
|
-
return "spud/admin/files_thumbs/dat_thumb.png"
|
20
|
-
end
|
17
|
+
validates_numericality_of :crop_x, :crop_y, :crop_w, :crop_h, :crop_s, :allow_nil => true
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
end
|
19
|
+
before_create :rename_file
|
20
|
+
before_update :validate_permissions
|
25
21
|
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
def rename_file
|
23
|
+
# remove periods and other unsafe characters from file name to make routing easier
|
24
|
+
extension = File.extname(attachment_file_name)
|
25
|
+
filename = attachment_file_name.chomp(extension).parameterize
|
26
|
+
attachment.instance_write :file_name, filename + extension
|
27
|
+
end
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
def image_from_type
|
30
|
+
if self.attachment_content_type.blank?
|
31
|
+
return "spud/admin/files_thumbs/dat_thumb.png"
|
32
|
+
|
33
|
+
elsif self.attachment_content_type.match(/jpeg|jpg/)
|
34
|
+
return "spud/admin/files_thumbs/jpg_thumb.png"
|
35
|
+
|
36
|
+
elsif self.attachment_content_type.match(/png/)
|
37
|
+
return "spud/admin/files_thumbs/png_thumb.png"
|
38
|
+
|
39
|
+
elsif self.attachment_content_type.match(/zip|tar|tar\.gz|gz/)
|
40
|
+
return "spud/admin/files_thumbs/zip_thumb.png"
|
41
|
+
|
42
|
+
elsif self.attachment_content_type.match(/xls|xlsx/)
|
43
|
+
return "spud/admin/files_thumbs/xls_thumb.png"
|
44
|
+
|
45
|
+
elsif self.attachment_content_type.match(/doc|docx/)
|
46
|
+
return "spud/admin/files_thumbs/doc_thumb.png"
|
47
|
+
|
48
|
+
elsif self.attachment_content_type.match(/ppt|pptx/)
|
49
|
+
return "spud/admin/files_thumbs/ppt_thumb.png"
|
50
|
+
|
51
|
+
elsif self.attachment_content_type.match(/txt|text/)
|
52
|
+
return "spud/admin/files_thumbs/txt_thumb.png"
|
53
|
+
|
54
|
+
elsif self.attachment_content_type.match(/pdf|ps/)
|
55
|
+
return "spud/admin/files_thumbs/pdf_thumb.png"
|
56
|
+
|
57
|
+
elsif self.attachment_content_type.match(/mp3|wav|aac/)
|
58
|
+
return "spud/admin/files_thumbs/mp3_thumb.png"
|
59
|
+
end
|
60
|
+
|
61
|
+
return "spud/admin/files_thumbs/dat_thumb.png"
|
62
|
+
end
|
33
63
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
return "spud/admin/files_thumbs/ppt_thumb.png"
|
42
|
-
end
|
43
|
-
if self.attachment_content_type.match(/txt|text/)
|
44
|
-
return "spud/admin/files_thumbs/txt_thumb.png"
|
45
|
-
end
|
46
|
-
if self.attachment_content_type.match(/pdf|ps/)
|
47
|
-
return "spud/admin/files_thumbs/pdf_thumb.png"
|
48
|
-
end
|
49
|
-
if self.attachment_content_type.match(/mp3|wav|aac/)
|
50
|
-
return "spud/admin/files_thumbs/mp3_thumb.png"
|
51
|
-
end
|
64
|
+
def is_image?
|
65
|
+
if self.attachment_content_type.match(/jpeg|jpg|png/)
|
66
|
+
return true
|
67
|
+
else
|
68
|
+
return false
|
69
|
+
end
|
70
|
+
end
|
52
71
|
|
53
|
-
|
54
|
-
|
72
|
+
def has_custom_crop?
|
73
|
+
return (crop_x && crop_y && crop_w && crop_h && crop_s)
|
74
|
+
end
|
55
75
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
return Paperclip::Interpolations.interpolate(Spud::Media.config.storage_url, attachment, 'original')
|
62
|
-
else
|
63
|
-
return attachment.url
|
64
|
-
end
|
76
|
+
def custom_style
|
77
|
+
if is_image? && has_custom_crop?
|
78
|
+
{:cropped => {:geometry => '', :convert_options => "-resize #{crop_s}% -crop #{crop_w}x#{crop_h}+#{crop_x}+#{crop_y}"}}
|
79
|
+
else
|
80
|
+
{}
|
65
81
|
end
|
82
|
+
end
|
66
83
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
end
|
84
|
+
# if you are using S3, attachment.url will automatically point to the S3 url
|
85
|
+
# protected files need to hit the rails middle-man first
|
86
|
+
# this method will provide the correct url for either case
|
87
|
+
def attachment_url(style=nil)
|
88
|
+
# defaults to cropped style if that style exists, otherwise use original
|
89
|
+
if !style
|
90
|
+
style = (is_image? && has_custom_crop?) ? 'cropped' : 'original'
|
75
91
|
end
|
92
|
+
if Spud::Media.paperclip_storage == :s3 && is_protected
|
93
|
+
return Paperclip::Interpolations.interpolate(Spud::Media.config.storage_url, attachment, style)
|
94
|
+
else
|
95
|
+
return attachment.url(style)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# If is_protected has changed, we need to make sure we are setting the appropriate permissions
|
100
|
+
# This means either moving the file in the filesystem or setting the appropriate ACL in S3
|
101
|
+
def validate_permissions
|
102
|
+
if Spud::Media.config.paperclip_storage == :filesystem
|
103
|
+
validate_permissions_filesystem
|
104
|
+
elsif Spud::Media.config.paperclip_storage == :s3
|
105
|
+
validate_permissions_s3
|
106
|
+
end
|
107
|
+
end
|
76
108
|
|
77
109
|
private
|
78
110
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
end
|
111
|
+
def validate_permissions_filesystem
|
112
|
+
if is_protected
|
113
|
+
old_path = Paperclip::Interpolations.interpolate(Spud::Media.config.storage_path, attachment, 'original')
|
114
|
+
new_path = Paperclip::Interpolations.interpolate(Spud::Media.config.storage_path_protected, attachment, 'original')
|
115
|
+
else
|
116
|
+
old_path = Paperclip::Interpolations.interpolate(Spud::Media.config.storage_path_protected, attachment, 'original')
|
117
|
+
new_path = Paperclip::Interpolations.interpolate(Spud::Media.config.storage_path, attachment, 'original')
|
118
|
+
end
|
119
|
+
new_base_dir = File.dirname(File.dirname(new_path))
|
120
|
+
old_base_dir= File.dirname(File.dirname(old_path))
|
121
|
+
if File.directory?(old_base_dir)
|
122
|
+
FileUtils.mv(old_base_dir, new_base_dir)
|
92
123
|
end
|
124
|
+
end
|
93
125
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
126
|
+
def validate_permissions_s3
|
127
|
+
if is_protected
|
128
|
+
attachment.s3_object(:original).acl = :private
|
129
|
+
attachment.s3_object(:cropped).acl = :private unless !has_custom_crop?
|
130
|
+
else
|
131
|
+
attachment.s3_object(:original).acl = :public_read
|
132
|
+
attachment.s3_object(:cropped).acl = :public_read unless !has_custom_crop?
|
100
133
|
end
|
134
|
+
end
|
135
|
+
|
101
136
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<%= error_messages_for(@media) %>
|
2
|
+
|
3
|
+
<div id="spud_media_cropper_toolbar">
|
4
|
+
<%= form_for @media, :url => spud_admin_medium_path(@media) do |f| %>
|
5
|
+
|
6
|
+
<div class="spud_media_cropper_toolbar_item">
|
7
|
+
<%= label_tag :x %>
|
8
|
+
<%= f.text_field :crop_x %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="spud_media_cropper_toolbar_item">
|
12
|
+
<%= label_tag :y %>
|
13
|
+
<%= f.text_field :crop_y %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div class="spud_media_cropper_toolbar_item">
|
17
|
+
<%= label_tag :width %>
|
18
|
+
<%= f.text_field :crop_w %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="spud_media_cropper_toolbar_item">
|
22
|
+
<%= label_tag :height %>
|
23
|
+
<%= f.text_field :crop_h %>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<div class="spud_media_cropper_toolbar_item">
|
27
|
+
<%= label_tag :scale, 'Size' %>
|
28
|
+
<%= f.hidden_field :crop_s %>
|
29
|
+
<a href="#" id="spud_media_cropper_resize_up"><i class="icon-plus"></i></a>
|
30
|
+
<a href="#" id="spud_media_cropper_resize_down"><i class="icon-minus"></i></a>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div id="spud_media_cropper_toolbar_actions">
|
34
|
+
<%= f.submit 'Crop', :id => 'spud_media_cropper_submit', :class => 'btn btn-mini btn-primary' %>
|
35
|
+
<%= link_to "Don't Crop", spud_admin_media_path, :class => 'btn btn-mini' %>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<div id="spud_media_cropper_outer">
|
41
|
+
<div id="spud_media_cropper">
|
42
|
+
<div id="spud_media_cropper_jcrop_container">
|
43
|
+
<%= image_tag @media.attachment_url(:original), :id => 'spud_media_cropper_image' %>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<script type="text/javascript">
|
49
|
+
$(window).load(Spud.Admin.Media.edit);
|
50
|
+
</script>
|
@@ -12,12 +12,15 @@
|
|
12
12
|
</span>
|
13
13
|
|
14
14
|
<span class="edit_controls">
|
15
|
+
<% if media.is_image? %>
|
16
|
+
<%= link_to 'Crop', edit_spud_admin_medium_path(media.id), :class => 'btn' %>
|
17
|
+
<% end %>
|
15
18
|
<% if media.is_protected %>
|
16
19
|
<%= link_to raw('<i class="icon-lock"></i> Protected'), set_access_spud_admin_medium_path(media.id, :protected => false), :method => :put, :class => 'btn' %>
|
17
20
|
<% else %>
|
18
21
|
<%= link_to 'Public', set_access_spud_admin_medium_path(media.id, :protected => true), :method => :put, :class => 'btn' %>
|
19
22
|
<% end %>
|
20
|
-
<%=link_to "Remove",spud_admin_medium_path(:id => media.id),:method => :delete,:class => 'btn btn-danger',:confirm => "Are you sure you want to remove this file?"%>
|
23
|
+
<%=link_to "Remove", spud_admin_medium_path(:id => media.id),:method => :delete,:class => 'btn btn-danger',:confirm => "Are you sure you want to remove this file?"%>
|
21
24
|
</span>
|
22
25
|
|
23
26
|
<br style="clear:both;"/>
|
data/config/routes.rb
CHANGED
@@ -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
|
data/lib/spud_media/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spud_media
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70312311481820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.2.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70312311481820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: spud_core
|
27
|
-
requirement: &
|
27
|
+
requirement: &70312311252840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: 0.9.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *70312311252840
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: paperclip
|
41
|
-
requirement: &
|
41
|
+
requirement: &70312311252020 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ! '>='
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
version: '0'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *70312311252020
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: mysql2
|
52
|
-
requirement: &
|
52
|
+
requirement: &70312311251640 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: '0'
|
58
58
|
type: :development
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *70312311251640
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: rspec
|
63
|
-
requirement: &
|
63
|
+
requirement: &70312311251180 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ! '>='
|
@@ -68,10 +68,10 @@ dependencies:
|
|
68
68
|
version: '0'
|
69
69
|
type: :development
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *70312311251180
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: rspec-rails
|
74
|
-
requirement: &
|
74
|
+
requirement: &70312311250760 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ! '>='
|
@@ -79,10 +79,10 @@ dependencies:
|
|
79
79
|
version: '0'
|
80
80
|
type: :development
|
81
81
|
prerelease: false
|
82
|
-
version_requirements: *
|
82
|
+
version_requirements: *70312311250760
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: factory_girl
|
85
|
-
requirement: &
|
85
|
+
requirement: &70312311250160 !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
88
88
|
- - =
|
@@ -90,10 +90,10 @@ dependencies:
|
|
90
90
|
version: 2.5.0
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
|
-
version_requirements: *
|
93
|
+
version_requirements: *70312311250160
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: mocha
|
96
|
-
requirement: &
|
96
|
+
requirement: &70312311249660 !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
99
|
- - =
|
@@ -101,10 +101,10 @@ dependencies:
|
|
101
101
|
version: 0.10.3
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
|
-
version_requirements: *
|
104
|
+
version_requirements: *70312311249660
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: database_cleaner
|
107
|
-
requirement: &
|
107
|
+
requirement: &70312311249200 !ruby/object:Gem::Requirement
|
108
108
|
none: false
|
109
109
|
requirements:
|
110
110
|
- - =
|
@@ -112,7 +112,7 @@ dependencies:
|
|
112
112
|
version: 0.7.1
|
113
113
|
type: :development
|
114
114
|
prerelease: false
|
115
|
-
version_requirements: *
|
115
|
+
version_requirements: *70312311249200
|
116
116
|
description: Spud Media allows you to upload files to your site and manage them in
|
117
117
|
the spud administrative panel. It also uses paperclip and supports s3 storage
|
118
118
|
email:
|
@@ -131,9 +131,17 @@ files:
|
|
131
131
|
- app/assets/images/spud/admin/files_thumbs/txt_thumb.png
|
132
132
|
- app/assets/images/spud/admin/files_thumbs/xls_thumb.png
|
133
133
|
- app/assets/images/spud/admin/files_thumbs/zip_thumb.png
|
134
|
+
- app/assets/images/spud/admin/media/checkers.jpg
|
134
135
|
- app/assets/images/spud/admin/media_thumb.png
|
135
136
|
- app/assets/images/spud/admin/media_thumb@2x.png
|
136
|
-
- app/assets/javascripts/spud/admin/media
|
137
|
+
- app/assets/javascripts/spud/admin/media.js
|
138
|
+
- app/assets/libs/jcrop/css/Jcrop.gif
|
139
|
+
- app/assets/libs/jcrop/css/jquery.Jcrop.css
|
140
|
+
- app/assets/libs/jcrop/css/jquery.Jcrop.min.css
|
141
|
+
- app/assets/libs/jcrop/js/jquery.color.js
|
142
|
+
- app/assets/libs/jcrop/js/jquery.Jcrop.js
|
143
|
+
- app/assets/libs/jcrop/js/jquery.Jcrop.min.js
|
144
|
+
- app/assets/libs/jcrop/js/jquery.min.js
|
137
145
|
- app/assets/libs/tiny_mce/plugins/spud_media/blank.htm
|
138
146
|
- app/assets/libs/tiny_mce/plugins/spud_media/css/template.css
|
139
147
|
- app/assets/libs/tiny_mce/plugins/spud_media/editor_plugin.js
|
@@ -141,7 +149,7 @@ files:
|
|
141
149
|
- app/assets/libs/tiny_mce/plugins/spud_media/js/template.js
|
142
150
|
- app/assets/libs/tiny_mce/plugins/spud_media/langs/en_dlg.js
|
143
151
|
- app/assets/libs/tiny_mce/plugins/spud_media/template.htm
|
144
|
-
- app/assets/stylesheets/spud/admin/media
|
152
|
+
- app/assets/stylesheets/spud/admin/media.css
|
145
153
|
- app/controllers/protected_media_controller.rb
|
146
154
|
- app/controllers/spud/admin/media_controller.rb
|
147
155
|
- app/helpers/protected_media_helper.rb
|
@@ -149,11 +157,13 @@ files:
|
|
149
157
|
- app/helpers/spud/user_sessions_helper.rb
|
150
158
|
- app/models/spud_media.rb
|
151
159
|
- app/views/layouts/spud/admin/media/detail.html.erb
|
160
|
+
- app/views/spud/admin/media/edit.html.erb
|
152
161
|
- app/views/spud/admin/media/index.html.erb
|
153
162
|
- app/views/spud/admin/media/new.html.erb
|
154
163
|
- config/routes.rb
|
155
164
|
- db/migrate/20120101194256_create_spud_media.rb
|
156
165
|
- db/migrate/20120501203325_add_protected_to_spud_media.rb
|
166
|
+
- db/migrate/20120508132153_add_cropping_to_spud_media.rb
|
157
167
|
- lib/spud_media/configuration.rb
|
158
168
|
- lib/spud_media/engine.rb
|
159
169
|
- lib/spud_media/version.rb
|
@@ -204,7 +214,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
204
214
|
version: '0'
|
205
215
|
segments:
|
206
216
|
- 0
|
207
|
-
hash:
|
217
|
+
hash: 1269224106861082199
|
208
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
219
|
none: false
|
210
220
|
requirements:
|
@@ -213,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
223
|
version: '0'
|
214
224
|
segments:
|
215
225
|
- 0
|
216
|
-
hash:
|
226
|
+
hash: 1269224106861082199
|
217
227
|
requirements: []
|
218
228
|
rubyforge_project:
|
219
229
|
rubygems_version: 1.8.10
|
File without changes
|