paperclip_database 1.0.5 → 2.0.0
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.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +15 -12
- data/Appraisals +28 -78
- data/Gemfile +2 -0
- data/README.md +10 -17
- data/features/basic_integration.feature +6 -2
- data/features/step_definitions/rails_steps.rb +74 -32
- data/features/support/rails.rb +8 -4
- data/gemfiles/{rails30_paperclip25.gemfile → rails30_paperclip23.gemfile} +1 -1
- data/gemfiles/{rails30_paperclip31.gemfile → rails30_paperclip2x.gemfile} +1 -1
- data/gemfiles/{rails30_paperclip26.gemfile → rails30_paperclip3x.gemfile} +1 -1
- data/gemfiles/{rails31_paperclip25.gemfile → rails31_paperclip23.gemfile} +1 -1
- data/gemfiles/{rails31_paperclip31.gemfile → rails31_paperclip2x.gemfile} +1 -1
- data/gemfiles/{rails31_paperclip26.gemfile → rails31_paperclip3x.gemfile} +1 -1
- data/gemfiles/{rails32_paperclip25.gemfile → rails32_paperclip23.gemfile} +1 -1
- data/gemfiles/{rails32_paperclip31.gemfile → rails32_paperclip2x.gemfile} +1 -1
- data/gemfiles/{rails32_paperclip26.gemfile → rails32_paperclip3x.gemfile} +1 -1
- data/gemfiles/{rails2_paperclip27.gemfile → rails40_paperclip34.gemfile} +2 -2
- data/gemfiles/{rails2_legacy.gemfile → rails40_paperclip3x.gemfile} +2 -2
- data/lib/paperclip/storage/database.rb +40 -33
- data/lib/paperclip_database/version.rb +1 -1
- data/paperclip_database.gemspec +3 -5
- metadata +56 -74
- data/.rvmrc +0 -1
- data/gemfiles/rails2_paperclip25.gemfile +0 -9
- data/gemfiles/rails2_paperclip26.gemfile +0 -9
- data/gemfiles/rails30_paperclip27.gemfile +0 -9
- data/gemfiles/rails30_paperclip32.gemfile +0 -9
- data/gemfiles/rails31_paperclip27.gemfile +0 -9
- data/gemfiles/rails31_paperclip32.gemfile +0 -9
- data/gemfiles/rails32_paperclip27.gemfile +0 -9
- data/gemfiles/rails32_paperclip32.gemfile +0 -9
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 09d3aa4732581467b9fc42956a01b056ed8886f4
|
|
4
|
+
data.tar.gz: b6c7a2b6dc89f0b4cf417026c211b27c3a1f3099
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 0d4e3af513f1d0f97e07338ed3ad9f88bb4c452b4b5d06b124190b5e3b57873936ad55ac2693abc8c8d9366ae772849a31b90ea91abaa169d4b737ccce3f1127
|
|
7
|
+
data.tar.gz: 30e43365c0bd6612037944d90332da8285426a8f2930216ee2d1a6b7aa3b51cb0f68bbc8d1701c09f777982f3afa00aabc3cb07404ac85380487777501eeb8be
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.9.3-p448
|
data/.travis.yml
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
language: ruby
|
|
2
2
|
rvm:
|
|
3
|
-
- 1.9.2
|
|
4
3
|
- 1.9.3
|
|
4
|
+
- 2.0.0
|
|
5
5
|
gemfile:
|
|
6
|
-
- gemfiles/
|
|
7
|
-
- gemfiles/
|
|
8
|
-
- gemfiles/
|
|
9
|
-
- gemfiles/
|
|
10
|
-
- gemfiles/
|
|
11
|
-
- gemfiles/
|
|
12
|
-
- gemfiles/
|
|
13
|
-
- gemfiles/
|
|
14
|
-
- gemfiles/
|
|
15
|
-
- gemfiles/
|
|
16
|
-
- gemfiles/
|
|
6
|
+
- gemfiles/rails30_paperclip23.gemfile
|
|
7
|
+
- gemfiles/rails30_paperclip2x.gemfile
|
|
8
|
+
- gemfiles/rails30_paperclip30.gemfile
|
|
9
|
+
- gemfiles/rails30_paperclip3x.gemfile
|
|
10
|
+
- gemfiles/rails31_paperclip23.gemfile
|
|
11
|
+
- gemfiles/rails31_paperclip2x.gemfile
|
|
12
|
+
- gemfiles/rails31_paperclip30.gemfile
|
|
13
|
+
- gemfiles/rails31_paperclip3x.gemfile
|
|
14
|
+
- gemfiles/rails32_paperclip23.gemfile
|
|
15
|
+
- gemfiles/rails32_paperclip2x.gemfile
|
|
16
|
+
- gemfiles/rails32_paperclip30.gemfile
|
|
17
|
+
- gemfiles/rails32_paperclip3x.gemfile
|
|
18
|
+
- gemfiles/rails40_paperclip34.gemfile
|
|
19
|
+
- gemfiles/rails40_paperclip3x.gemfile
|
data/Appraisals
CHANGED
|
@@ -1,46 +1,15 @@
|
|
|
1
1
|
#-*- ruby -*-
|
|
2
|
-
appraise "rails2_legacy" do
|
|
3
|
-
gem "rails", "~> 2.3"
|
|
4
|
-
gem "paperclip", "~> 2.3.1"
|
|
5
|
-
gem "paperclip_database", :path => "../"
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
appraise "rails2_paperclip25" do
|
|
9
|
-
gem "rails", "~> 2.3.0"
|
|
10
|
-
gem "paperclip", "~> 2.5.0"
|
|
11
|
-
gem "paperclip_database", :path => "../"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
appraise "rails2_paperclip26" do
|
|
15
|
-
gem "rails", "~> 2.3.0"
|
|
16
|
-
gem "paperclip", "~> 2.6.0"
|
|
17
|
-
gem "paperclip_database", :path => "../"
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
appraise "rails2_paperclip27" do
|
|
21
|
-
gem "rails", "~> 2.3.0"
|
|
22
|
-
gem "paperclip", "~> 2.7.0"
|
|
23
|
-
gem "paperclip_database", :path => "../"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
|
|
27
2
|
## Rails 3.0
|
|
28
3
|
|
|
29
|
-
appraise "
|
|
30
|
-
gem "rails", "~> 3.0.0"
|
|
31
|
-
gem "paperclip", "~> 2.5.0"
|
|
32
|
-
gem "paperclip_database", :path => "../"
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
appraise "rails30_paperclip26" do
|
|
4
|
+
appraise "rails30_paperclip23" do
|
|
36
5
|
gem "rails", "~> 3.0.0"
|
|
37
|
-
gem "paperclip", "~> 2.
|
|
6
|
+
gem "paperclip", "~> 2.3.0"
|
|
38
7
|
gem "paperclip_database", :path => "../"
|
|
39
8
|
end
|
|
40
9
|
|
|
41
|
-
appraise "
|
|
10
|
+
appraise "rails30_paperclip2x" do
|
|
42
11
|
gem "rails", "~> 3.0.0"
|
|
43
|
-
gem "paperclip", "~> 2.
|
|
12
|
+
gem "paperclip", "~> 2.3"
|
|
44
13
|
gem "paperclip_database", :path => "../"
|
|
45
14
|
end
|
|
46
15
|
|
|
@@ -50,36 +19,23 @@ appraise "rails30_paperclip30" do
|
|
|
50
19
|
gem "paperclip_database", :path => "../"
|
|
51
20
|
end
|
|
52
21
|
|
|
53
|
-
appraise "
|
|
22
|
+
appraise "rails30_paperclip3x" do
|
|
54
23
|
gem "rails", "~> 3.0.0"
|
|
55
|
-
gem "paperclip", "~> 3.
|
|
24
|
+
gem "paperclip", "~> 3.0"
|
|
56
25
|
gem "paperclip_database", :path => "../"
|
|
57
26
|
end
|
|
58
27
|
|
|
59
|
-
appraise "rails30_paperclip32" do
|
|
60
|
-
gem "rails", "~> 3.0.0"
|
|
61
|
-
gem "paperclip", "~> 3.2.0"
|
|
62
|
-
gem "paperclip_database", :path => "../"
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
|
|
66
28
|
## Rails 3.1
|
|
67
29
|
|
|
68
|
-
appraise "
|
|
69
|
-
gem "rails", "~> 3.1.0"
|
|
70
|
-
gem "paperclip", "~> 2.5.0"
|
|
71
|
-
gem "paperclip_database", :path => "../"
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
appraise "rails31_paperclip26" do
|
|
30
|
+
appraise "rails31_paperclip23" do
|
|
75
31
|
gem "rails", "~> 3.1.0"
|
|
76
|
-
gem "paperclip", "~> 2.
|
|
32
|
+
gem "paperclip", "~> 2.3.0"
|
|
77
33
|
gem "paperclip_database", :path => "../"
|
|
78
34
|
end
|
|
79
35
|
|
|
80
|
-
appraise "
|
|
36
|
+
appraise "rails31_paperclip2x" do
|
|
81
37
|
gem "rails", "~> 3.1.0"
|
|
82
|
-
gem "paperclip", "~> 2.
|
|
38
|
+
gem "paperclip", "~> 2.3"
|
|
83
39
|
gem "paperclip_database", :path => "../"
|
|
84
40
|
end
|
|
85
41
|
|
|
@@ -89,36 +45,23 @@ appraise "rails31_paperclip30" do
|
|
|
89
45
|
gem "paperclip_database", :path => "../"
|
|
90
46
|
end
|
|
91
47
|
|
|
92
|
-
appraise "
|
|
93
|
-
gem "rails", "~> 3.1.0"
|
|
94
|
-
gem "paperclip", "~> 3.1.0"
|
|
95
|
-
gem "paperclip_database", :path => "../"
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
appraise "rails31_paperclip32" do
|
|
48
|
+
appraise "rails31_paperclip3x" do
|
|
99
49
|
gem "rails", "~> 3.1.0"
|
|
100
|
-
gem "paperclip", "~> 3.
|
|
50
|
+
gem "paperclip", "~> 3.0"
|
|
101
51
|
gem "paperclip_database", :path => "../"
|
|
102
52
|
end
|
|
103
53
|
|
|
104
|
-
|
|
105
54
|
## Rails 3.2
|
|
106
55
|
|
|
107
|
-
appraise "
|
|
108
|
-
gem "rails", "~> 3.2.0"
|
|
109
|
-
gem "paperclip", "~> 2.5.0"
|
|
110
|
-
gem "paperclip_database", :path => "../"
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
appraise "rails32_paperclip26" do
|
|
56
|
+
appraise "rails32_paperclip23" do
|
|
114
57
|
gem "rails", "~> 3.2.0"
|
|
115
|
-
gem "paperclip", "~> 2.
|
|
58
|
+
gem "paperclip", "~> 2.3.0"
|
|
116
59
|
gem "paperclip_database", :path => "../"
|
|
117
60
|
end
|
|
118
61
|
|
|
119
|
-
appraise "
|
|
62
|
+
appraise "rails32_paperclip2x" do
|
|
120
63
|
gem "rails", "~> 3.2.0"
|
|
121
|
-
gem "paperclip", "~> 2.
|
|
64
|
+
gem "paperclip", "~> 2.3"
|
|
122
65
|
gem "paperclip_database", :path => "../"
|
|
123
66
|
end
|
|
124
67
|
|
|
@@ -128,16 +71,23 @@ appraise "rails32_paperclip30" do
|
|
|
128
71
|
gem "paperclip_database", :path => "../"
|
|
129
72
|
end
|
|
130
73
|
|
|
131
|
-
appraise "
|
|
74
|
+
appraise "rails32_paperclip3x" do
|
|
132
75
|
gem "rails", "~> 3.2.0"
|
|
133
|
-
gem "paperclip", "~> 3.
|
|
76
|
+
gem "paperclip", "~> 3.0"
|
|
134
77
|
gem "paperclip_database", :path => "../"
|
|
135
78
|
end
|
|
136
79
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
80
|
+
## Rails 4.0
|
|
81
|
+
|
|
82
|
+
appraise "rails40_paperclip34" do
|
|
83
|
+
gem "rails", "~> 4.0.0"
|
|
84
|
+
gem "paperclip", "~> 3.4.0"
|
|
140
85
|
gem "paperclip_database", :path => "../"
|
|
141
86
|
end
|
|
142
87
|
|
|
88
|
+
appraise "rails40_paperclip3x" do
|
|
89
|
+
gem "rails", "~> 4.0.0"
|
|
90
|
+
gem "paperclip", "~> 3.0"
|
|
91
|
+
gem "paperclip_database", :path => "../"
|
|
92
|
+
end
|
|
143
93
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
Paperclip Database Storage
|
|
2
2
|
==========================
|
|
3
3
|
|
|
4
|
-
[](http://travis-ci.org/softace/paperclip_database)
|
|
4
|
+
[](http://travis-ci.org/softace/paperclip_database)
|
|
5
|
+
[](https://gemnasium.com/softace/paperclip_database)
|
|
6
|
+
[](https://codeclimate.com/github/softace/paperclip_database)
|
|
5
7
|
|
|
6
8
|
Paperclip Database Storage is an additional storage option for
|
|
7
9
|
Paperclip. It give you the opportunity to store your paperclip binary
|
|
@@ -12,6 +14,10 @@ Requirements
|
|
|
12
14
|
|
|
13
15
|
`paperclip_database` depends on `paperclip`
|
|
14
16
|
|
|
17
|
+
It is recommended to use the
|
|
18
|
+
[trim_blobs](https://github.com/softace/trim_blobs) gem to limit the
|
|
19
|
+
logging of BLOB data in your logfiles.
|
|
20
|
+
|
|
15
21
|
Installation
|
|
16
22
|
------------
|
|
17
23
|
|
|
@@ -20,7 +26,7 @@ should be used in your app.
|
|
|
20
26
|
|
|
21
27
|
Include the gem in your Gemfile:
|
|
22
28
|
|
|
23
|
-
gem "paperclip_database", "~>
|
|
29
|
+
gem "paperclip_database", "~> 2.0"
|
|
24
30
|
|
|
25
31
|
Or, if you want to get the latest, you can get master from the main
|
|
26
32
|
paperclip repository:
|
|
@@ -33,20 +39,11 @@ to specify the master branch if you want to use them. This README is
|
|
|
33
39
|
probably ahead of the latest released version, if you're reading it on
|
|
34
40
|
GitHub.
|
|
35
41
|
|
|
36
|
-
For rails 2 you should add this to snippet to your environment.
|
|
37
|
-
|
|
38
|
-
# In config/environment.rb
|
|
39
|
-
...
|
|
40
|
-
Rails::Initializer.run do |config|
|
|
41
|
-
...
|
|
42
|
-
config.gem "paperclip", :version => "~> 2.5"
|
|
43
|
-
...
|
|
44
|
-
end
|
|
45
|
-
|
|
46
42
|
Supported Versions
|
|
47
43
|
------------------
|
|
48
44
|
|
|
49
|
-
|
|
45
|
+
As of version 2.0, Rails 2 is no longer supported.
|
|
46
|
+
Supported version are rails >= 3.0 and paperclip version >= 2.5
|
|
50
47
|
|
|
51
48
|
Quick Start
|
|
52
49
|
-----------
|
|
@@ -72,10 +69,6 @@ In your model:
|
|
|
72
69
|
There is a migration generator that will create a basic migration for
|
|
73
70
|
the extra table.
|
|
74
71
|
|
|
75
|
-
On the console (rails 2):
|
|
76
|
-
|
|
77
|
-
./script/generate paperclip_database User avatar
|
|
78
|
-
|
|
79
72
|
On the console (rails 3):
|
|
80
73
|
|
|
81
74
|
bundle exec ./script/rails generate paperclip_database:migration User avatar
|
|
@@ -7,6 +7,7 @@ Feature: Rails integration
|
|
|
7
7
|
And I run a migration
|
|
8
8
|
And I update my new user view to include the file upload field
|
|
9
9
|
And I update my user view to include the attachment
|
|
10
|
+
And I allow the attachment to be submitted
|
|
10
11
|
|
|
11
12
|
Scenario: Database integration test
|
|
12
13
|
Given I add this snippet to the User model:
|
|
@@ -15,10 +16,9 @@ Feature: Rails integration
|
|
|
15
16
|
:storage => :database,
|
|
16
17
|
:database_table => :user_attachments,
|
|
17
18
|
:url => '/user_attachment_views/:id?style=:style'
|
|
18
|
-
attr_accessible :name, :attachment
|
|
19
19
|
"""
|
|
20
20
|
And I run a "scaffold" generator to generate a "UserAttachmentView" scaffold with ""
|
|
21
|
-
Given I
|
|
21
|
+
Given I replace /^ def show$.*?^ end$/ with this snippet in the "user_attachment_views" controller:
|
|
22
22
|
"""
|
|
23
23
|
def show
|
|
24
24
|
style = params[:style] ? params[:style] : 'original'
|
|
@@ -28,6 +28,10 @@ Feature: Rails integration
|
|
|
28
28
|
:type => record.attachment_content_type
|
|
29
29
|
end
|
|
30
30
|
"""
|
|
31
|
+
Given I replace /before_action :set_user_attachment_view.*?$/ with this snippet in the "user_attachment_views" controller:
|
|
32
|
+
"""
|
|
33
|
+
"""
|
|
34
|
+
|
|
31
35
|
And I run a "paperclip_database:migration" generator to create storage for paperclip "attachment" to the "User" model
|
|
32
36
|
And I run a migration
|
|
33
37
|
And I start the rails application
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Given /^I generate a new rails application$/ do
|
|
2
2
|
steps %{
|
|
3
|
-
When I run `bundle exec #{new_application_command
|
|
3
|
+
When I successfully run `bundle exec #{new_application_command(APP_NAME)}`
|
|
4
4
|
And I cd to "#{APP_NAME}"
|
|
5
5
|
And I turn off class caching
|
|
6
|
+
And I fix the application.rb for 3.0.12
|
|
6
7
|
And I write to "Gemfile" with:
|
|
7
8
|
"""
|
|
8
9
|
source "http://rubygems.org"
|
|
@@ -12,12 +13,58 @@ Given /^I generate a new rails application$/ do
|
|
|
12
13
|
gem "gherkin"
|
|
13
14
|
gem "paperclip", "#{paperclip_version}"
|
|
14
15
|
"""
|
|
16
|
+
And I remove turbolinks
|
|
17
|
+
And I empty the application.js file
|
|
15
18
|
And I configure the application to use "paperclip_database" from this project
|
|
16
19
|
And I reset Bundler environment variable
|
|
17
20
|
And I successfully run `bundle install --local`
|
|
18
21
|
}
|
|
19
22
|
end
|
|
20
23
|
|
|
24
|
+
Given "I fix the application.rb for 3.0.12" do
|
|
25
|
+
##See https://github.com/rails/rails/issues/9619
|
|
26
|
+
in_current_dir do
|
|
27
|
+
File.open("config/application.rb", "a") do |f|
|
|
28
|
+
f << "ActionController::Base.config.relative_url_root = ''"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Given "I allow the attachment to be submitted" do
|
|
34
|
+
in_current_dir do
|
|
35
|
+
if framework_major_version == 3
|
|
36
|
+
transform_file("app/models/user.rb") do |content|
|
|
37
|
+
content.gsub("attr_accessible :name",
|
|
38
|
+
"attr_accessible :name, :attachment")
|
|
39
|
+
end
|
|
40
|
+
else
|
|
41
|
+
transform_file("app/controllers/users_controller.rb") do |content|
|
|
42
|
+
content.gsub("params.require(:user).permit(:name)",
|
|
43
|
+
"params.require(:user).permit!")
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
Given "I remove turbolinks" do
|
|
50
|
+
in_current_dir do
|
|
51
|
+
transform_file("app/assets/javascripts/application.js") do |content|
|
|
52
|
+
content.gsub("//= require turbolinks", "")
|
|
53
|
+
end
|
|
54
|
+
transform_file("app/views/layouts/application.html.erb") do |content|
|
|
55
|
+
content.gsub(', "data-turbolinks-track" => true', "")
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
Given "I empty the application.js file" do
|
|
61
|
+
in_current_dir do
|
|
62
|
+
transform_file("app/assets/javascripts/application.js") do |content|
|
|
63
|
+
""
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
21
68
|
Given /^I run a "(.*?)" generator to generate a "(.*?)" scaffold with "(.*?)"$/ do |generator_name, model_name, attributes|
|
|
22
69
|
step %[I successfully run `bundle exec #{generator_command} #{generator_name} #{model_name} #{attributes}`]
|
|
23
70
|
end
|
|
@@ -38,33 +85,18 @@ Given /^I run a migration$/ do
|
|
|
38
85
|
end
|
|
39
86
|
|
|
40
87
|
Given /^I update my new user view to include the file upload field$/ do
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<%=
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
else
|
|
55
|
-
steps %{
|
|
56
|
-
Given I overwrite "app/views/users/new.html.erb" with:
|
|
57
|
-
"""
|
|
58
|
-
<% form_for @user, :html => { :multipart => true } do |f| %>
|
|
59
|
-
<%= f.label :name %>
|
|
60
|
-
<%= f.text_field :name %>
|
|
61
|
-
<%= f.label :attachment %>
|
|
62
|
-
<%= f.file_field :attachment %>
|
|
63
|
-
<%= submit_tag "Submit" %>
|
|
64
|
-
<% end %>
|
|
65
|
-
"""
|
|
66
|
-
}
|
|
67
|
-
end
|
|
88
|
+
steps %{
|
|
89
|
+
Given I overwrite "app/views/users/new.html.erb" with:
|
|
90
|
+
"""
|
|
91
|
+
<%= form_for @user, :html => { :multipart => true } do |f| %>
|
|
92
|
+
<%= f.label :name %>
|
|
93
|
+
<%= f.text_field :name %>
|
|
94
|
+
<%= f.label :attachment %>
|
|
95
|
+
<%= f.file_field :attachment %>
|
|
96
|
+
<%= submit_tag "Submit" %>
|
|
97
|
+
<% end %>
|
|
98
|
+
"""
|
|
99
|
+
}
|
|
68
100
|
end
|
|
69
101
|
|
|
70
102
|
Given /^I update my user view to include the attachment$/ do
|
|
@@ -85,11 +117,11 @@ Given /^I add this snippet to the User model:$/ do |snippet|
|
|
|
85
117
|
end
|
|
86
118
|
end
|
|
87
119
|
|
|
88
|
-
Given /^I
|
|
89
|
-
file_name = "app/controllers/#{controller_name}_controller.rb"
|
|
120
|
+
Given /^I replace \/(.*?)\/ with this snippet in the "(.*?)" controller:$/ do |pattern, controller_name, snippet|
|
|
90
121
|
in_current_dir do
|
|
91
|
-
|
|
92
|
-
|
|
122
|
+
transform_file("app/controllers/#{controller_name}_controller.rb") do |content|
|
|
123
|
+
content.gsub(Regexp.new(pattern, Regexp::MULTILINE), snippet)
|
|
124
|
+
end
|
|
93
125
|
end
|
|
94
126
|
end
|
|
95
127
|
|
|
@@ -198,6 +230,16 @@ module FileHelpers
|
|
|
198
230
|
File.open("Gemfile", 'w'){ |file| file.write(gemfile) }
|
|
199
231
|
end
|
|
200
232
|
end
|
|
233
|
+
|
|
234
|
+
def transform_file(filename)
|
|
235
|
+
if File.exists?(filename)
|
|
236
|
+
content = File.read(filename)
|
|
237
|
+
File.open(filename, "w") do |f|
|
|
238
|
+
content = yield(content)
|
|
239
|
+
f.write(content)
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
end
|
|
201
243
|
end
|
|
202
244
|
|
|
203
245
|
World(FileHelpers)
|
data/features/support/rails.rb
CHANGED
|
@@ -31,16 +31,20 @@ module RailsCommandHelpers
|
|
|
31
31
|
@framework_version ||= `rails -v`[/^Rails (.+)$/, 1]
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
def
|
|
35
|
-
framework_version
|
|
34
|
+
def framework_major_version
|
|
35
|
+
framework_version.split(".").first.to_i
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def new_application_command(app_name)
|
|
39
|
+
framework_major_version >= 3 ? "rails new #{app_name} --skip-sprockets --skip-javascript --skip-bundle" : "rails"
|
|
36
40
|
end
|
|
37
41
|
|
|
38
42
|
def generator_command
|
|
39
|
-
|
|
43
|
+
framework_major_version >= 3 ? "rails generate" : "script/generate"
|
|
40
44
|
end
|
|
41
45
|
|
|
42
46
|
def runner_command
|
|
43
|
-
|
|
47
|
+
framework_major_version >= 3 ? "rails runner" : "script/runner"
|
|
44
48
|
end
|
|
45
49
|
|
|
46
50
|
def rails2_generator_name(rails3_generator_name)
|
|
@@ -1,61 +1,61 @@
|
|
|
1
1
|
module Paperclip
|
|
2
2
|
module Storage
|
|
3
3
|
# Store files in a database.
|
|
4
|
-
#
|
|
4
|
+
#
|
|
5
5
|
# Usage is identical to the file system storage version, except:
|
|
6
|
-
#
|
|
6
|
+
#
|
|
7
7
|
# 1. In your model specify the "database" storage option; for example:
|
|
8
8
|
# has_attached_file :avatar, :storage => :database
|
|
9
|
-
#
|
|
9
|
+
#
|
|
10
10
|
# The files will be stored in a new database table named with the plural attachment name
|
|
11
11
|
# by default, "avatars" in this example.
|
|
12
|
-
#
|
|
12
|
+
#
|
|
13
13
|
# 2. You need to create this new storage table with at least these columns:
|
|
14
14
|
# - file_contents
|
|
15
15
|
# - style
|
|
16
16
|
# - the primary key for the parent model (e.g. user_id)
|
|
17
|
-
#
|
|
17
|
+
#
|
|
18
18
|
# Note the "binary" migration will not work for the LONGBLOG type in MySQL for the
|
|
19
19
|
# file_cotents column. You may need to craft a SQL statement for your migration,
|
|
20
20
|
# depending on which database server you are using. Here's an example migration for MySQL:
|
|
21
|
-
#
|
|
21
|
+
#
|
|
22
22
|
# create_table :avatars do |t|
|
|
23
23
|
# t.string :style
|
|
24
24
|
# t.integer :user_id
|
|
25
25
|
# t.timestamps
|
|
26
26
|
# end
|
|
27
27
|
# execute 'ALTER TABLE avatars ADD COLUMN file_contents LONGBLOB'
|
|
28
|
-
#
|
|
28
|
+
#
|
|
29
29
|
# You can optionally specify any storage table name you want and whether or not deletion is done by cascading or not as follows:
|
|
30
30
|
# has_attached_file :avatar, :storage => :database, :database_table => 'avatar_files', :cascade_deletion => true
|
|
31
|
-
#
|
|
31
|
+
#
|
|
32
32
|
# 3. By default, URLs will be set to this pattern:
|
|
33
33
|
# /:relative_root/:class/:attachment/:id?style=:style
|
|
34
|
-
#
|
|
34
|
+
#
|
|
35
35
|
# Example:
|
|
36
36
|
# /app-root-url/users/avatars/23?style=original
|
|
37
|
-
#
|
|
37
|
+
#
|
|
38
38
|
# The idea here is that to retrieve a file from the database storage, you will need some
|
|
39
39
|
# controller's code to be executed.
|
|
40
|
-
#
|
|
40
|
+
#
|
|
41
41
|
# Once you pick a controller to use for downloading, you can add this line
|
|
42
42
|
# to generate the download action for the default URL/action (the plural attachment name),
|
|
43
43
|
# "avatars" in this example:
|
|
44
44
|
# downloads_files_for :user, :avatar
|
|
45
|
-
#
|
|
45
|
+
#
|
|
46
46
|
# Or you can write a download method manually if there are security, logging or other
|
|
47
47
|
# requirements.
|
|
48
|
-
#
|
|
48
|
+
#
|
|
49
49
|
# If you prefer a different URL for downloading files you can specify that in the model; e.g.:
|
|
50
50
|
# has_attached_file :avatar, :storage => :database, :url => '/users/show_avatar/:id/:style'
|
|
51
|
-
#
|
|
51
|
+
#
|
|
52
52
|
# 4. Add a route for the download to the controller which will handle downloads, if necessary.
|
|
53
|
-
#
|
|
53
|
+
#
|
|
54
54
|
# The default URL, /:relative_root/:class/:attachment/:id?style=:style, will be matched by
|
|
55
55
|
# the default route: :controller/:action/:id
|
|
56
|
-
#
|
|
56
|
+
#
|
|
57
57
|
module Database
|
|
58
|
-
|
|
58
|
+
|
|
59
59
|
def self.extended(base)
|
|
60
60
|
base.instance_eval do
|
|
61
61
|
setup_paperclip_files_model
|
|
@@ -75,10 +75,10 @@ module Paperclip
|
|
|
75
75
|
ActionController::Base.relative_url_root
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
ActiveRecord::Base.logger.info("[paperclip] Database Storage Initalized.")
|
|
80
80
|
end
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
def setup_paperclip_files_model
|
|
83
83
|
#TODO: This fails when your model is in a namespace.
|
|
84
84
|
@paperclip_files = "#{instance.class.name.underscore}_#{name.to_s}_paperclip_files"
|
|
@@ -98,11 +98,11 @@ module Paperclip
|
|
|
98
98
|
@database_table = @paperclip_file.table_name
|
|
99
99
|
#FIXME: This fails when using set_table_name "<myname>" in your model
|
|
100
100
|
#FIXME: This should be fixed in ActiveRecord...
|
|
101
|
-
instance.class.has_many @paperclip_files, :foreign_key => instance.class.table_name.classify.underscore + '_id'
|
|
101
|
+
instance.class.has_many @paperclip_files.to_sym, :foreign_key => instance.class.table_name.classify.underscore + '_id'
|
|
102
102
|
|
|
103
103
|
end
|
|
104
104
|
private :setup_paperclip_files_model
|
|
105
|
-
|
|
105
|
+
|
|
106
106
|
def copy_to_local_file(style, dest_path)
|
|
107
107
|
File.open(dest_path, 'wb+'){|df| to_file(style).tap{|sf| File.copy_stream(sf, df); sf.close;sf.unlink} }
|
|
108
108
|
end
|
|
@@ -114,11 +114,11 @@ module Paperclip
|
|
|
114
114
|
@options[:path] = ":database_path"
|
|
115
115
|
end
|
|
116
116
|
private :override_default_options
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
def database_table
|
|
119
119
|
@database_table
|
|
120
120
|
end
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
def database_path(style)
|
|
123
123
|
paperclip_file = file_for(style)
|
|
124
124
|
if paperclip_file
|
|
@@ -127,7 +127,7 @@ module Paperclip
|
|
|
127
127
|
"#{database_table}(id=new,style=#{style.to_s})"
|
|
128
128
|
end
|
|
129
129
|
end
|
|
130
|
-
|
|
130
|
+
|
|
131
131
|
def exists?(style = default_style)
|
|
132
132
|
if original_filename
|
|
133
133
|
!file_for(style).nil?
|
|
@@ -135,7 +135,7 @@ module Paperclip
|
|
|
135
135
|
false
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
|
-
|
|
138
|
+
|
|
139
139
|
# Returns representation of the data of the file assigned to the given
|
|
140
140
|
# style, in the format most representative of the current storage.
|
|
141
141
|
def to_file style = default_style
|
|
@@ -151,31 +151,38 @@ module Paperclip
|
|
|
151
151
|
else
|
|
152
152
|
nil
|
|
153
153
|
end
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
end
|
|
156
156
|
alias_method :to_io, :to_file
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
def file_for(style)
|
|
159
159
|
db_result = instance.send("#{@paperclip_files}").send(:file_for, style.to_s).to_ary
|
|
160
160
|
raise RuntimeError, "More than one result for #{style}" if db_result.size > 1
|
|
161
161
|
db_result.first
|
|
162
162
|
end
|
|
163
|
-
|
|
163
|
+
|
|
164
164
|
def file_contents(style)
|
|
165
165
|
file_for(style).file_contents
|
|
166
166
|
end
|
|
167
|
-
|
|
167
|
+
|
|
168
168
|
def flush_writes
|
|
169
169
|
ActiveRecord::Base.logger.info("[paperclip] Writing files for #{name}")
|
|
170
170
|
@queued_for_write.each do |style, file|
|
|
171
|
-
|
|
171
|
+
case Rails::VERSION::STRING
|
|
172
|
+
when /^2/, /^3/
|
|
173
|
+
paperclip_file = instance.send(@paperclip_files).send(:find_or_create_by_style, style.to_s)
|
|
174
|
+
when /^4/
|
|
175
|
+
paperclip_file = instance.send(@paperclip_files).send(:find_or_create_by, style: style.to_s)
|
|
176
|
+
else # 4.x
|
|
177
|
+
raise "Rails version #{Rails::VERSION::STRING} is not supported (yet)"
|
|
178
|
+
end
|
|
172
179
|
paperclip_file.file_contents = file.read
|
|
173
180
|
paperclip_file.save!
|
|
174
181
|
instance.reload
|
|
175
|
-
end
|
|
182
|
+
end
|
|
176
183
|
@queued_for_write = {}
|
|
177
184
|
end
|
|
178
|
-
|
|
185
|
+
|
|
179
186
|
def flush_deletes #:nodoc:
|
|
180
187
|
ActiveRecord::Base.logger.info("[paperclip] Deleting files for #{name}")
|
|
181
188
|
@queued_for_delete.uniq! ##This is apparently necessary for paperclip v 3.x
|
|
@@ -189,7 +196,7 @@ module Paperclip
|
|
|
189
196
|
end
|
|
190
197
|
@queued_for_delete = []
|
|
191
198
|
end
|
|
192
|
-
|
|
199
|
+
|
|
193
200
|
module ControllerClassMethods
|
|
194
201
|
def self.included(base)
|
|
195
202
|
base.extend(self)
|
data/paperclip_database.gemspec
CHANGED
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
|
9
9
|
s.email = ["jarl@softace.dk"]
|
|
10
10
|
s.homepage = "https://github.com/softace/paperclip_database"
|
|
11
11
|
s.summary = "Database storage for paperclip"
|
|
12
|
-
s.description = "To have all your data
|
|
12
|
+
s.description = "To have all your data in one place: the database"
|
|
13
13
|
|
|
14
14
|
s.rubyforge_project = "paperclip_database"
|
|
15
15
|
|
|
@@ -20,19 +20,17 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
|
|
21
21
|
s.requirements << "ImageMagick"
|
|
22
22
|
|
|
23
|
+
s.add_dependency('rails', '>= 3.0.0')
|
|
23
24
|
s.add_dependency('paperclip', '>= 2.3.0')
|
|
24
25
|
|
|
25
|
-
# s.add_development_dependency('shoulda')
|
|
26
26
|
s.add_development_dependency('appraisal', '~> 0.4')
|
|
27
27
|
s.add_development_dependency('mocha')
|
|
28
28
|
s.add_development_dependency('sqlite3', '~> 1.3')
|
|
29
29
|
s.add_development_dependency('cucumber', '~> 1.1')
|
|
30
30
|
s.add_development_dependency('launchy', '~> 2.1')
|
|
31
31
|
s.add_development_dependency('aruba')
|
|
32
|
-
s.add_development_dependency('capybara')
|
|
32
|
+
s.add_development_dependency('capybara', '~> 2.0.0', '< 2.1.0')
|
|
33
33
|
s.add_development_dependency('bundler')
|
|
34
|
-
# s.add_development_dependency('cocaine', '~> 0.2')
|
|
35
|
-
# s.add_development_dependency('fog')
|
|
36
34
|
s.add_development_dependency('rake')
|
|
37
35
|
s.add_development_dependency('fakeweb')
|
|
38
36
|
end
|
metadata
CHANGED
|
@@ -1,36 +1,46 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: paperclip_database
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 2.0.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Jarl Friis
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2013-09-11 00:00:00.000000000 Z
|
|
13
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.0.0
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '>='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 3.0.0
|
|
14
27
|
- !ruby/object:Gem::Dependency
|
|
15
28
|
name: paperclip
|
|
16
29
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
30
|
requirements:
|
|
19
|
-
- -
|
|
31
|
+
- - '>='
|
|
20
32
|
- !ruby/object:Gem::Version
|
|
21
33
|
version: 2.3.0
|
|
22
34
|
type: :runtime
|
|
23
35
|
prerelease: false
|
|
24
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
37
|
requirements:
|
|
27
|
-
- -
|
|
38
|
+
- - '>='
|
|
28
39
|
- !ruby/object:Gem::Version
|
|
29
40
|
version: 2.3.0
|
|
30
41
|
- !ruby/object:Gem::Dependency
|
|
31
42
|
name: appraisal
|
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
44
|
requirements:
|
|
35
45
|
- - ~>
|
|
36
46
|
- !ruby/object:Gem::Version
|
|
@@ -38,7 +48,6 @@ dependencies:
|
|
|
38
48
|
type: :development
|
|
39
49
|
prerelease: false
|
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
51
|
requirements:
|
|
43
52
|
- - ~>
|
|
44
53
|
- !ruby/object:Gem::Version
|
|
@@ -46,23 +55,20 @@ dependencies:
|
|
|
46
55
|
- !ruby/object:Gem::Dependency
|
|
47
56
|
name: mocha
|
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
58
|
requirements:
|
|
51
|
-
- -
|
|
59
|
+
- - '>='
|
|
52
60
|
- !ruby/object:Gem::Version
|
|
53
61
|
version: '0'
|
|
54
62
|
type: :development
|
|
55
63
|
prerelease: false
|
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
65
|
requirements:
|
|
59
|
-
- -
|
|
66
|
+
- - '>='
|
|
60
67
|
- !ruby/object:Gem::Version
|
|
61
68
|
version: '0'
|
|
62
69
|
- !ruby/object:Gem::Dependency
|
|
63
70
|
name: sqlite3
|
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
72
|
requirements:
|
|
67
73
|
- - ~>
|
|
68
74
|
- !ruby/object:Gem::Version
|
|
@@ -70,7 +76,6 @@ dependencies:
|
|
|
70
76
|
type: :development
|
|
71
77
|
prerelease: false
|
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
79
|
requirements:
|
|
75
80
|
- - ~>
|
|
76
81
|
- !ruby/object:Gem::Version
|
|
@@ -78,7 +83,6 @@ dependencies:
|
|
|
78
83
|
- !ruby/object:Gem::Dependency
|
|
79
84
|
name: cucumber
|
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
86
|
requirements:
|
|
83
87
|
- - ~>
|
|
84
88
|
- !ruby/object:Gem::Version
|
|
@@ -86,7 +90,6 @@ dependencies:
|
|
|
86
90
|
type: :development
|
|
87
91
|
prerelease: false
|
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
93
|
requirements:
|
|
91
94
|
- - ~>
|
|
92
95
|
- !ruby/object:Gem::Version
|
|
@@ -94,7 +97,6 @@ dependencies:
|
|
|
94
97
|
- !ruby/object:Gem::Dependency
|
|
95
98
|
name: launchy
|
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
100
|
requirements:
|
|
99
101
|
- - ~>
|
|
100
102
|
- !ruby/object:Gem::Version
|
|
@@ -102,7 +104,6 @@ dependencies:
|
|
|
102
104
|
type: :development
|
|
103
105
|
prerelease: false
|
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
107
|
requirements:
|
|
107
108
|
- - ~>
|
|
108
109
|
- !ruby/object:Gem::Version
|
|
@@ -110,84 +111,80 @@ dependencies:
|
|
|
110
111
|
- !ruby/object:Gem::Dependency
|
|
111
112
|
name: aruba
|
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
114
|
requirements:
|
|
115
|
-
- -
|
|
115
|
+
- - '>='
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
117
|
version: '0'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
121
|
requirements:
|
|
123
|
-
- -
|
|
122
|
+
- - '>='
|
|
124
123
|
- !ruby/object:Gem::Version
|
|
125
124
|
version: '0'
|
|
126
125
|
- !ruby/object:Gem::Dependency
|
|
127
126
|
name: capybara
|
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
128
|
requirements:
|
|
131
|
-
- -
|
|
129
|
+
- - ~>
|
|
132
130
|
- !ruby/object:Gem::Version
|
|
133
|
-
version:
|
|
131
|
+
version: 2.0.0
|
|
132
|
+
- - <
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: 2.1.0
|
|
134
135
|
type: :development
|
|
135
136
|
prerelease: false
|
|
136
137
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
138
|
requirements:
|
|
139
|
-
- -
|
|
139
|
+
- - ~>
|
|
140
140
|
- !ruby/object:Gem::Version
|
|
141
|
-
version:
|
|
141
|
+
version: 2.0.0
|
|
142
|
+
- - <
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: 2.1.0
|
|
142
145
|
- !ruby/object:Gem::Dependency
|
|
143
146
|
name: bundler
|
|
144
147
|
requirement: !ruby/object:Gem::Requirement
|
|
145
|
-
none: false
|
|
146
148
|
requirements:
|
|
147
|
-
- -
|
|
149
|
+
- - '>='
|
|
148
150
|
- !ruby/object:Gem::Version
|
|
149
151
|
version: '0'
|
|
150
152
|
type: :development
|
|
151
153
|
prerelease: false
|
|
152
154
|
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
none: false
|
|
154
155
|
requirements:
|
|
155
|
-
- -
|
|
156
|
+
- - '>='
|
|
156
157
|
- !ruby/object:Gem::Version
|
|
157
158
|
version: '0'
|
|
158
159
|
- !ruby/object:Gem::Dependency
|
|
159
160
|
name: rake
|
|
160
161
|
requirement: !ruby/object:Gem::Requirement
|
|
161
|
-
none: false
|
|
162
162
|
requirements:
|
|
163
|
-
- -
|
|
163
|
+
- - '>='
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
165
|
version: '0'
|
|
166
166
|
type: :development
|
|
167
167
|
prerelease: false
|
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
169
|
requirements:
|
|
171
|
-
- -
|
|
170
|
+
- - '>='
|
|
172
171
|
- !ruby/object:Gem::Version
|
|
173
172
|
version: '0'
|
|
174
173
|
- !ruby/object:Gem::Dependency
|
|
175
174
|
name: fakeweb
|
|
176
175
|
requirement: !ruby/object:Gem::Requirement
|
|
177
|
-
none: false
|
|
178
176
|
requirements:
|
|
179
|
-
- -
|
|
177
|
+
- - '>='
|
|
180
178
|
- !ruby/object:Gem::Version
|
|
181
179
|
version: '0'
|
|
182
180
|
type: :development
|
|
183
181
|
prerelease: false
|
|
184
182
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
-
none: false
|
|
186
183
|
requirements:
|
|
187
|
-
- -
|
|
184
|
+
- - '>='
|
|
188
185
|
- !ruby/object:Gem::Version
|
|
189
186
|
version: '0'
|
|
190
|
-
description:
|
|
187
|
+
description: 'To have all your data in one place: the database'
|
|
191
188
|
email:
|
|
192
189
|
- jarl@softace.dk
|
|
193
190
|
executables: []
|
|
@@ -197,7 +194,7 @@ files:
|
|
|
197
194
|
- .document
|
|
198
195
|
- .gitignore
|
|
199
196
|
- .rspec
|
|
200
|
-
- .
|
|
197
|
+
- .ruby-version
|
|
201
198
|
- .travis.yml
|
|
202
199
|
- Appraisals
|
|
203
200
|
- Gemfile
|
|
@@ -214,28 +211,20 @@ files:
|
|
|
214
211
|
- features/support/paths.rb
|
|
215
212
|
- features/support/rails.rb
|
|
216
213
|
- features/support/selectors.rb
|
|
217
|
-
- gemfiles/
|
|
218
|
-
- gemfiles/
|
|
219
|
-
- gemfiles/rails2_paperclip26.gemfile
|
|
220
|
-
- gemfiles/rails2_paperclip27.gemfile
|
|
221
|
-
- gemfiles/rails30_paperclip25.gemfile
|
|
222
|
-
- gemfiles/rails30_paperclip26.gemfile
|
|
223
|
-
- gemfiles/rails30_paperclip27.gemfile
|
|
214
|
+
- gemfiles/rails30_paperclip23.gemfile
|
|
215
|
+
- gemfiles/rails30_paperclip2x.gemfile
|
|
224
216
|
- gemfiles/rails30_paperclip30.gemfile
|
|
225
|
-
- gemfiles/
|
|
226
|
-
- gemfiles/
|
|
227
|
-
- gemfiles/
|
|
228
|
-
- gemfiles/rails31_paperclip26.gemfile
|
|
229
|
-
- gemfiles/rails31_paperclip27.gemfile
|
|
217
|
+
- gemfiles/rails30_paperclip3x.gemfile
|
|
218
|
+
- gemfiles/rails31_paperclip23.gemfile
|
|
219
|
+
- gemfiles/rails31_paperclip2x.gemfile
|
|
230
220
|
- gemfiles/rails31_paperclip30.gemfile
|
|
231
|
-
- gemfiles/
|
|
232
|
-
- gemfiles/
|
|
233
|
-
- gemfiles/
|
|
234
|
-
- gemfiles/rails32_paperclip26.gemfile
|
|
235
|
-
- gemfiles/rails32_paperclip27.gemfile
|
|
221
|
+
- gemfiles/rails31_paperclip3x.gemfile
|
|
222
|
+
- gemfiles/rails32_paperclip23.gemfile
|
|
223
|
+
- gemfiles/rails32_paperclip2x.gemfile
|
|
236
224
|
- gemfiles/rails32_paperclip30.gemfile
|
|
237
|
-
- gemfiles/
|
|
238
|
-
- gemfiles/
|
|
225
|
+
- gemfiles/rails32_paperclip3x.gemfile
|
|
226
|
+
- gemfiles/rails40_paperclip34.gemfile
|
|
227
|
+
- gemfiles/rails40_paperclip3x.gemfile
|
|
239
228
|
- generators/paperclip_database/USAGE
|
|
240
229
|
- generators/paperclip_database/paperclip_database_generator.rb
|
|
241
230
|
- generators/paperclip_database/templates/paperclip_database_migration.rb.erb
|
|
@@ -253,33 +242,26 @@ files:
|
|
|
253
242
|
- test/fixtures/5k.png
|
|
254
243
|
homepage: https://github.com/softace/paperclip_database
|
|
255
244
|
licenses: []
|
|
245
|
+
metadata: {}
|
|
256
246
|
post_install_message:
|
|
257
247
|
rdoc_options: []
|
|
258
248
|
require_paths:
|
|
259
249
|
- lib
|
|
260
250
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
261
|
-
none: false
|
|
262
251
|
requirements:
|
|
263
|
-
- -
|
|
252
|
+
- - '>='
|
|
264
253
|
- !ruby/object:Gem::Version
|
|
265
254
|
version: '0'
|
|
266
|
-
segments:
|
|
267
|
-
- 0
|
|
268
|
-
hash: -4219737218162575604
|
|
269
255
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
|
-
none: false
|
|
271
256
|
requirements:
|
|
272
|
-
- -
|
|
257
|
+
- - '>='
|
|
273
258
|
- !ruby/object:Gem::Version
|
|
274
259
|
version: '0'
|
|
275
|
-
segments:
|
|
276
|
-
- 0
|
|
277
|
-
hash: -4219737218162575604
|
|
278
260
|
requirements:
|
|
279
261
|
- ImageMagick
|
|
280
262
|
rubyforge_project: paperclip_database
|
|
281
|
-
rubygems_version:
|
|
263
|
+
rubygems_version: 2.0.3
|
|
282
264
|
signing_key:
|
|
283
|
-
specification_version:
|
|
265
|
+
specification_version: 4
|
|
284
266
|
summary: Database storage for paperclip
|
|
285
267
|
test_files: []
|
data/.rvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rvm ruby-1.9.2-p320
|