paperclip_database 1.0.5 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build Status](https://secure.travis-ci.org/softace/paperclip_database.png)](http://travis-ci.org/softace/paperclip_database)
|
4
|
+
[![Build Status](https://secure.travis-ci.org/softace/paperclip_database.png)](http://travis-ci.org/softace/paperclip_database)
|
5
|
+
[![Dependency Status](https://gemnasium.com/softace/paperclip_database.png)](https://gemnasium.com/softace/paperclip_database)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/softace/paperclip_database.png)](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
|