papermill 0.14.3 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/README.rdoc +125 -79
- data/TODO.txt +0 -2
- data/VERSION +1 -1
- data/app/controllers/papermill_controller.rb +41 -40
- data/app/views/papermill/_asset.html.erb +1 -1
- data/app/views/papermill/_form.html.erb +20 -13
- data/app/views/papermill/edit.html.erb +2 -7
- data/config/locales/papermill.yml +6 -0
- data/config/routes.rb +2 -2
- data/generators/papermill_initializer/USAGE +4 -0
- data/generators/papermill_initializer/papermill_initializer_generator.rb +15 -0
- data/generators/papermill_table/templates/migrate/papermill_migration.rb.erb +8 -3
- data/installation-template.txt +4 -4
- data/lib/{core_extensions.rb → extensions.rb} +23 -15
- data/lib/papermill.rb +11 -4
- data/lib/papermill/form_builder.rb +62 -49
- data/lib/papermill/papermill.rb +70 -0
- data/lib/papermill/papermill_asset.rb +57 -15
- data/lib/papermill/papermill_options.rb +125 -0
- data/public/papermill/README +13 -0
- data/public/papermill/images/delete.png +0 -0
- data/public/papermill/images/mass-delete.png +0 -0
- data/public/papermill/images/mass-edit.png +0 -0
- data/public/papermill/papermill.css +8 -2
- data/public/papermill/papermill.js +42 -12
- data/test/fixtures/12k.png +0 -0
- data/test/fixtures/50x50.png +0 -0
- data/test/fixtures/5k.png +0 -0
- data/test/fixtures/bad.png +1 -0
- data/test/fixtures/s3.yml +8 -0
- data/test/fixtures/text.txt +0 -0
- data/test/fixtures/twopage.pdf +0 -0
- data/test/papermill_test.rb +109 -19
- metadata +19 -5
- data/lib/papermill/papermill_module.rb +0 -219
@@ -0,0 +1,125 @@
|
|
1
|
+
# Do not move or rename this file.
|
2
|
+
# It MUST stand in your RAILS_ROOT/config/initializer folder
|
3
|
+
# It is explicitely early-loaded by Papermill
|
4
|
+
# Papermill::OPTIONS constant needs to be set before PapermillAsset is loaded, and PapermillAsset cannot be lazy-loaded
|
5
|
+
|
6
|
+
module Papermill
|
7
|
+
|
8
|
+
# All these options will be used as defaults. You can change them :
|
9
|
+
#
|
10
|
+
# * here
|
11
|
+
#
|
12
|
+
# * in your association. Ex :
|
13
|
+
# class Article < ActiveRecord::Base
|
14
|
+
# papermill :diaporama, {
|
15
|
+
# :class_name => "MyAssetClass",
|
16
|
+
# :inline_css => false,
|
17
|
+
# :thumbnail => {:width => 150},
|
18
|
+
# ...
|
19
|
+
# }
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# * in your form helper call. Ex :
|
23
|
+
# form.image_upload :diaporama, :class_name => "MyAssetClass", :thumbnail => {:width => 150}, :inline_css => false
|
24
|
+
#
|
25
|
+
#
|
26
|
+
# FormHelper options-hash merges with papermill declaration option-hash that merges with this Papermill::OPTIONS hash
|
27
|
+
# Merges are recursive (for :gallery, :thumbnail and :swfupload sub-hashs)
|
28
|
+
|
29
|
+
unless defined?(OPTIONS)
|
30
|
+
OPTIONS = {
|
31
|
+
# Associated PapermillAsset subclass
|
32
|
+
:class_name => "PapermillAsset",
|
33
|
+
|
34
|
+
# Helper will generates some inline css styling. You can use it to scaffold, then copy the lines you need in your application css and set it to false.
|
35
|
+
:inline_css => true,
|
36
|
+
|
37
|
+
# SwfUpload will only let the user upload images.
|
38
|
+
:images_only => false,
|
39
|
+
|
40
|
+
# Dashboard is only for galleries
|
41
|
+
# You can remove/change order of HTML elements.
|
42
|
+
# See below for dashboard
|
43
|
+
:form_helper_elements => [:upload_button, :container, :dashboard],
|
44
|
+
|
45
|
+
# Dashboard elements
|
46
|
+
# You can remove/change order of HTML elements.
|
47
|
+
:dashboard => [:mass_edit, :mass_delete],
|
48
|
+
|
49
|
+
# Attributes editable at once for all assets in a gallery
|
50
|
+
:mass_editable_fields => ["title", "copyright", "description"],
|
51
|
+
|
52
|
+
# FormHelper gallery options
|
53
|
+
# If :inline_css is true, css will be generated automatically and added through @content_for_papermill_inline_css (papermill_stylesheet_tag includes it)
|
54
|
+
# Great for quick admin scaffolding.
|
55
|
+
|
56
|
+
:gallery => {
|
57
|
+
# override calculated gallery width. Ex: "auto"
|
58
|
+
:width => nil,
|
59
|
+
# override calculated gallery height
|
60
|
+
:height => nil,
|
61
|
+
# Number of columns and lines in a gallery
|
62
|
+
:columns => 8,
|
63
|
+
:lines => 2,
|
64
|
+
# vertical/horizontal padding/margin around each thumbnails
|
65
|
+
:vpadding => 0,
|
66
|
+
:hpadding => 0,
|
67
|
+
:vmargin => 1,
|
68
|
+
:hmargin => 1,
|
69
|
+
# border around thumbnails
|
70
|
+
:border_thickness => 2
|
71
|
+
},
|
72
|
+
|
73
|
+
# FormHelper thumbnail's information.
|
74
|
+
# Set :width OR :height to nil to use aspect_ratio value. Remember that 4/3 == 1 => Use : 4.0/3
|
75
|
+
# You can override computed ImageMagick transformation strings that defaults to "#{:width}x#{:height}>" by setting a value to :style
|
76
|
+
# Needed if you set :aliases_only to true
|
77
|
+
|
78
|
+
:thumbnail => {
|
79
|
+
:width => 100,
|
80
|
+
:height => 100,
|
81
|
+
:aspect_ratio => nil,
|
82
|
+
:style => nil
|
83
|
+
},
|
84
|
+
|
85
|
+
# Options passed on to SWFUpload.
|
86
|
+
# To remove an option when overriding, set it to nil.
|
87
|
+
|
88
|
+
:swfupload => {
|
89
|
+
:flash_url => '/papermill/swfupload.swf',
|
90
|
+
:button_image_url => '/papermill/images/upload-blank.png',
|
91
|
+
:button_width => 61,
|
92
|
+
:button_height => 22,
|
93
|
+
:button_text => %{<span class="button-text">#{I18n.t("papermill.upload-button-wording")}</span>},
|
94
|
+
:button_text_style => %{.button-text { font-size: 12pt; font-weight: bold; }},
|
95
|
+
:button_text_top_padding => 4,
|
96
|
+
:button_text_left_padding => 4,
|
97
|
+
:debug => false,
|
98
|
+
:prevent_swf_caching => true,
|
99
|
+
:file_size_limit_mb => 10.megabytes
|
100
|
+
},
|
101
|
+
|
102
|
+
# APPLICATION WIDE PARAMETERS
|
103
|
+
# Do not change these in your model declaration or form helper call.
|
104
|
+
|
105
|
+
# Default named_scope name for catch-all :papermill declaration
|
106
|
+
:base_association_name => :assets,
|
107
|
+
|
108
|
+
# Set to true to require aliases in all url/path
|
109
|
+
# Don't forget to give an alias value to options[:thumbnail][:style] if true!
|
110
|
+
:alias_only => false,
|
111
|
+
|
112
|
+
# Needed if :alias_only
|
113
|
+
:aliases => {
|
114
|
+
# 'example' => "100x100#",
|
115
|
+
# 'example2' => {:geometry => "100x100#"}
|
116
|
+
},
|
117
|
+
|
118
|
+
# path to the root of your public directory (from NGINX/Apache pov)
|
119
|
+
:public_root => ":rails_root/public",
|
120
|
+
|
121
|
+
# added to :public_root as the root folder for all papermill assets
|
122
|
+
:papermill_prefix => "system/papermill"
|
123
|
+
}
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
DO NOT !!
|
2
|
+
|
3
|
+
Modify files in this folder, they are generated by papermill
|
4
|
+
|
5
|
+
|
6
|
+
DO !!
|
7
|
+
|
8
|
+
Load them before your own and override them in your application.<js|css>
|
9
|
+
|
10
|
+
And each time you update Papermill's gem :
|
11
|
+
|
12
|
+
cd my_rails_app
|
13
|
+
./script/generate papermill_assets
|
Binary file
|
Binary file
|
Binary file
|
@@ -13,13 +13,17 @@
|
|
13
13
|
#papermill-box .left-cell {font-weight:bold; padding-right:10px; text-align:right;}
|
14
14
|
|
15
15
|
.papermill { overflow:hidden; }
|
16
|
-
.papermill a:hover { background:none; color:inherit; }
|
17
16
|
.papermill a img { border:0px; }
|
18
17
|
.papermill li:hover { border-color:blue; }
|
19
18
|
.papermill li a { display:block; }
|
20
19
|
.papermill .progress { display:block; border:1px solid #C2E3EF; text-align:left; height:6px; }
|
21
20
|
.papermill .progress span { background:#7BB963; height:6px; width:0; display:block; }
|
22
21
|
|
22
|
+
.papermill .dashboard li { float:left; margin-right:10px; margin-top:3px; }
|
23
|
+
.papermill .dashboard li a { float:left; padding-top:3px; padding-right:3px; padding-left:20px; }
|
24
|
+
.papermill .dashboard li.mass_edit a { background:transparent url(images/mass-edit.png) no-repeat top left; }
|
25
|
+
.papermill .dashboard li.mass_delete a { background:transparent url(images/mass-delete.png) no-repeat top left; }
|
26
|
+
|
23
27
|
.papermill-thumb-container { position:relative; border:5px solid #EEE; padding:4px; overflow:hidden; }
|
24
28
|
.papermill-thumb-container li { border:0px solid transparent; min-height:25px; min-width:25px; display:block; float:left; position:relative; }
|
25
29
|
.papermill-thumb-container li span { display:block; }
|
@@ -36,9 +40,11 @@
|
|
36
40
|
.papermill-asset-container li .progress { float:left; margin-top:6px; margin-left:5px; width:100px; }
|
37
41
|
.papermill-asset-container li .delete { float:left; margin-top:2px; margin-right:5px; }
|
38
42
|
|
43
|
+
.papermill-thumb-container.papermill-multiple-items li { cursor:move; }
|
44
|
+
|
39
45
|
.papermill-asset-container.papermill-multiple-items { padding-left:10px; border-left:5px solid #EEE; min-height:44px; }
|
40
46
|
.papermill-asset-container.papermill-multiple-items li { cursor:row-resize; }
|
41
|
-
|
47
|
+
|
42
48
|
.papermill-asset-container.papermill-unique-item { padding-left:5px; min-height:22px; }
|
43
49
|
|
44
50
|
/* Using formtastic? Move this to your formtastic_changes.css to make it cleaner : */
|
@@ -1,10 +1,17 @@
|
|
1
|
-
popup = function(
|
2
|
-
window.open (
|
1
|
+
popup = function(url) {
|
2
|
+
window.open (url + "?with_jquery=true", "Papermill", config='height=580, width=870, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no')
|
3
|
+
}
|
4
|
+
|
5
|
+
close_popup = function(source) {
|
6
|
+
source.close();
|
3
7
|
}
|
4
8
|
|
5
9
|
|
6
10
|
/*
|
7
|
-
If you have a popup library,
|
11
|
+
If you have a popup library, OVERRIDE popup and close_popup in your application.js
|
12
|
+
You'll need jQuery loaded, so specify with_jquery=true if you load edit in an iframe or a true popup.
|
13
|
+
You can specify a layout as well, with layout=application in your URL.
|
14
|
+
|
8
15
|
|
9
16
|
* e.g. facebox :
|
10
17
|
|
@@ -16,25 +23,32 @@ popup = function(url) {
|
|
16
23
|
})
|
17
24
|
return false;
|
18
25
|
}
|
26
|
+
close_popup = function(source) {
|
27
|
+
jQuery(document).trigger('close.facebox');
|
28
|
+
}
|
19
29
|
|
20
30
|
* e.g. Shadowbox :
|
21
31
|
|
22
32
|
popup = function(url) {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
});
|
30
|
-
}
|
33
|
+
Shadowbox.open({
|
34
|
+
content: url + "?with_jquery=true",
|
35
|
+
player: "iframe",
|
36
|
+
width: 870,
|
37
|
+
height: 580
|
38
|
+
});
|
31
39
|
return false;
|
32
40
|
}
|
41
|
+
|
42
|
+
close_popup = function(source) {
|
43
|
+
Shadowbox.close();
|
44
|
+
}
|
45
|
+
|
33
46
|
*/
|
34
47
|
|
35
48
|
notify = function(message, type) {
|
36
49
|
if(type != "notice") { alert(type + ": " + message) }
|
37
50
|
}
|
51
|
+
|
38
52
|
/*
|
39
53
|
If you have a notification library, override notify
|
40
54
|
|
@@ -120,4 +134,20 @@ var Upload = {
|
|
120
134
|
file_queue_error: function(file, error_code, message) {
|
121
135
|
upload_error(file, error_code, message)
|
122
136
|
}
|
123
|
-
}
|
137
|
+
}
|
138
|
+
|
139
|
+
modify_all = function(papermill_id) {
|
140
|
+
container = jQuery("#" + papermill_id)[0];
|
141
|
+
attribute_name = jQuery("#batch_" + papermill_id)[0].value
|
142
|
+
attribute_wording = jQuery("#batch_" + papermill_id + " option:selected").text();
|
143
|
+
value = prompt(attribute_wording + ":")
|
144
|
+
if(value != null) {
|
145
|
+
jQuery.ajax({async:true, data:jQuery(container).sortable('serialize'), dataType:'script', type:'post', url:'/papermill/mass_edit?attribute=' + attribute_name + "&value=" + value})
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
mass_delete = function(papermill_id, wording) {
|
150
|
+
if(confirm(wording)){
|
151
|
+
jQuery.ajax({async:true, data:jQuery('#' + papermill_id).sortable('serialize'), dataType:'script', type:'post', url:'/papermill/mass_delete'})
|
152
|
+
}
|
153
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
This is not an image.
|
File without changes
|
Binary file
|
data/test/papermill_test.rb
CHANGED
@@ -4,44 +4,134 @@ require 'rubygems'
|
|
4
4
|
gem 'rails'
|
5
5
|
require 'active_record'
|
6
6
|
require 'action_view'
|
7
|
-
require
|
8
|
-
|
7
|
+
require 'active_support'
|
8
|
+
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/info.log")
|
9
|
+
RAILS_ROOT = File.join( File.dirname(__FILE__), "../../../.." )
|
10
|
+
|
11
|
+
|
12
|
+
require File.join(File.dirname(__FILE__), '../init.rb')
|
13
|
+
|
14
|
+
module Papermill
|
15
|
+
OPTIONS = OPTIONS.merge(
|
16
|
+
:aliases => {
|
17
|
+
'tall' => :"1000x1000",
|
18
|
+
:small => "100x100",
|
19
|
+
:hashed_style => {:geometry => "100x100"}
|
20
|
+
})
|
21
|
+
end
|
22
|
+
|
23
|
+
|
9
24
|
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => "test.sqlite3")
|
10
25
|
ActiveRecord::Schema.define(:version => 1) do
|
11
|
-
create_table :papermill_assets do |t|
|
26
|
+
create_table :papermill_assets, :force => true do |t|
|
12
27
|
t.string :title, :file_file_name, :file_content_type, :assetable_type, :assetable_key, :type
|
13
28
|
t.integer :file_file_size, :position, :assetable_id
|
14
29
|
t.timestamps
|
15
30
|
end
|
16
31
|
|
17
|
-
create_table :articles do |t|
|
18
|
-
t.string :
|
19
|
-
t.timestamps
|
32
|
+
create_table :articles, :force => true do |t|
|
33
|
+
t.string :type
|
20
34
|
end
|
21
35
|
end
|
22
36
|
|
37
|
+
|
38
|
+
|
23
39
|
class MyAsset < PapermillAsset
|
24
40
|
end
|
25
41
|
|
26
|
-
class
|
42
|
+
class Article < ActiveRecord::Base
|
27
43
|
def self.table_name
|
28
44
|
:articles
|
29
45
|
end
|
30
|
-
|
31
|
-
papermill :class_name => MyAsset
|
46
|
+
papermill
|
47
|
+
papermill :my_assets, :class_name => "MyAsset"
|
32
48
|
end
|
33
49
|
|
34
|
-
class ArticleSpecificAssociations < ActiveRecord::Base
|
35
|
-
def self.table_name
|
36
|
-
:articles
|
37
|
-
end
|
38
|
-
|
39
|
-
papermill :my_assets, :class_name => MyAsset
|
40
|
-
end
|
41
50
|
|
42
51
|
class PapermillTest < Test::Unit::TestCase
|
43
|
-
|
44
|
-
|
45
|
-
|
52
|
+
@article = Article.create!
|
53
|
+
@decoy_article = Article.create!
|
54
|
+
@file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb')
|
55
|
+
PapermillAsset.create!(:Filedata => @file, :assetable => @article, :assetable_key => "asset1", :position => 2)
|
56
|
+
PapermillAsset.create!(:Filedata => @file, :assetable => @article, :assetable_key => "asset1", :position => 1)
|
57
|
+
MyAsset.create!(:Filedata => @file, :assetable => @article, :assetable_key => "my_assets")
|
58
|
+
MyAsset.create!(:Filedata => @file, :assetable => @article, :assetable_key => "my_assets")
|
59
|
+
MyAsset.create!(:Filedata => @file, :assetable => @decoy_article, :assetable_key => "my_assets")
|
60
|
+
|
61
|
+
def initialize(*args)
|
62
|
+
super
|
63
|
+
@file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb')
|
64
|
+
|
65
|
+
@article = Article.find 1
|
66
|
+
@decoy_article = Article.find 2
|
67
|
+
|
68
|
+
@asset1 = PapermillAsset.find 1
|
69
|
+
@asset2 = PapermillAsset.find 2
|
70
|
+
@asset3 = PapermillAsset.find 3
|
71
|
+
@asset4 = PapermillAsset.find 4
|
72
|
+
@asset5 = PapermillAsset.find 5
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_namedscopes_for_specific_associations
|
76
|
+
assert_equal @article.my_assets.map(&:id), [3,4]
|
77
|
+
assert_equal @article.my_assets(:order => "position DESC").map(&:id), [4,3]
|
78
|
+
assert_equal @article.my_assets(:order => "position DESC", :limit => 1).map(&:id), [4]
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_namedscope_for_global_associations_and_default_order
|
82
|
+
assert_equal @article.assets(:asset1).map(&:id), [2,1]
|
83
|
+
assert_equal @article.assets(:asset1, :order => "position DESC").map(&:id), [1,2]
|
84
|
+
assert_equal @article.assets(:asset1, :order => "position DESC", :limit => 1).map(&:id), [1]
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_id_partition
|
88
|
+
assert_equal @asset1.id_partition, "000/000/001"
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_name
|
92
|
+
assert_equal @asset1.name, "5k.png"
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_width
|
96
|
+
assert_equal @asset1.width, 434.0
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_height
|
100
|
+
assert_equal @asset1.height, 66.0
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_size
|
104
|
+
assert_equal @asset1.size, 4456
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_url
|
108
|
+
assert_equal @asset1.url, "/system/papermill/000/000/001/original/5k.png"
|
109
|
+
assert_equal @asset1.url("400x300#"), "/system/papermill/000/000/001/400x300%23/5k.png"
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_path
|
113
|
+
assert_equal @asset1.path, "./test/../../../../public/system/papermill/000/000/001/original/5k.png"
|
114
|
+
assert_equal @asset1.path("400x300#"), "./test/../../../../public/system/papermill/000/000/001/400x300#/5k.png"
|
115
|
+
end
|
116
|
+
|
117
|
+
def test_content_type
|
118
|
+
assert_equal @file.get_content_type, "image/png"
|
119
|
+
assert_equal @asset1.content_type, "image/png"
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_is_image
|
123
|
+
assert @asset1.image?
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_compute_style
|
127
|
+
assert_equal PapermillAsset.compute_style(:tall), :geometry => "1000x1000"
|
128
|
+
assert_equal PapermillAsset.compute_style("tall"), :geometry => "1000x1000"
|
129
|
+
assert_equal PapermillAsset.compute_style(:small), :geometry => "100x100"
|
130
|
+
assert_equal PapermillAsset.compute_style("small"), :geometry => "100x100"
|
131
|
+
assert_equal PapermillAsset.compute_style("hashed_style"), :geometry => "100x100"
|
132
|
+
assert_equal PapermillAsset.compute_style("100x100"), :geometry => "100x100"
|
133
|
+
assert_equal PapermillAsset.compute_style(:"100x100"), :geometry => "100x100"
|
134
|
+
Papermill::options[:alias_only] = true
|
135
|
+
assert_equal PapermillAsset.compute_style("100x100"), false
|
46
136
|
end
|
47
137
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papermill
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Benoit B\xC3\xA9n\xC3\xA9zech"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-13 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -47,22 +47,28 @@ files:
|
|
47
47
|
- config/routes.rb
|
48
48
|
- generators/papermill_assets/USAGE
|
49
49
|
- generators/papermill_assets/papermill_assets_generator.rb
|
50
|
+
- generators/papermill_initializer/USAGE
|
51
|
+
- generators/papermill_initializer/papermill_initializer_generator.rb
|
50
52
|
- generators/papermill_table/USAGE
|
51
53
|
- generators/papermill_table/papermill_table_generator.rb
|
52
54
|
- generators/papermill_table/templates/migrate/papermill_migration.rb.erb
|
53
55
|
- init.rb
|
54
56
|
- install.rb
|
55
57
|
- installation-template.txt
|
56
|
-
- lib/
|
58
|
+
- lib/extensions.rb
|
57
59
|
- lib/papermill.rb
|
58
60
|
- lib/papermill/form_builder.rb
|
61
|
+
- lib/papermill/papermill.rb
|
59
62
|
- lib/papermill/papermill_asset.rb
|
60
63
|
- lib/papermill/papermill_helper.rb
|
61
|
-
- lib/papermill/
|
64
|
+
- lib/papermill/papermill_options.rb
|
62
65
|
- public/.DS_Store
|
66
|
+
- public/papermill/README
|
63
67
|
- public/papermill/images/background.png
|
64
68
|
- public/papermill/images/container-background.jpg
|
65
69
|
- public/papermill/images/delete.png
|
70
|
+
- public/papermill/images/mass-delete.png
|
71
|
+
- public/papermill/images/mass-edit.png
|
66
72
|
- public/papermill/images/upload-blank.png
|
67
73
|
- public/papermill/images/upload.png
|
68
74
|
- public/papermill/papermill.css
|
@@ -71,6 +77,14 @@ files:
|
|
71
77
|
- public/papermill/swfupload.swf
|
72
78
|
- rails/init.rb
|
73
79
|
- tasks/papermill_tasks.rake
|
80
|
+
- test/fixtures/12k.png
|
81
|
+
- test/fixtures/50x50.png
|
82
|
+
- test/fixtures/5k.png
|
83
|
+
- test/fixtures/bad.png
|
84
|
+
- test/fixtures/s3.yml
|
85
|
+
- test/fixtures/text.txt
|
86
|
+
- test/fixtures/twopage.pdf
|
87
|
+
- test/papermill_test.rb
|
74
88
|
- uninstall.rb
|
75
89
|
has_rdoc: true
|
76
90
|
homepage: http://github.com/bbenezech/papermill
|
@@ -96,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
110
|
requirements: []
|
97
111
|
|
98
112
|
rubyforge_project:
|
99
|
-
rubygems_version: 1.3.
|
113
|
+
rubygems_version: 1.3.5
|
100
114
|
signing_key:
|
101
115
|
specification_version: 3
|
102
116
|
summary: Paperclip Swfupload UploadHelper wrapper
|