carrierwave-postgresql 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +6 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +50 -19
- data/README.md +14 -5
- data/VERSION +1 -1
- data/carrierwave-postgresql.gemspec +11 -10
- data/lib/carrierwave/storage/postgresql_lo.rb +4 -0
- metadata +16 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bb7842bb4de167b82c6b11cde53c2c03d3cf91cb
|
4
|
+
data.tar.gz: 56ae3300ac86abe36e1de6859bd0425c015cef89
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2d196e31fa6abf6e4ff74f5efadef7eb429736bc4ec4c40a79c3fe6f034191fc6d9006ff6282cd1ea2095e3cb9c4fcce568cbfed7306291110f84fe6272b2813
|
7
|
+
data.tar.gz: 7a78a591fc84c9b60d83bc59e511594cb6054c94ef1aafa8abcd1840b652aea517eecf0aaabcb2901efb5a686f4e8b2c9e185adb31a0fd7faf14c476add44874
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -5,13 +5,13 @@ source "http://rubygems.org"
|
|
5
5
|
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
|
-
gem 'carrierwave'
|
8
|
+
gem 'carrierwave'
|
9
9
|
|
10
10
|
group :development do
|
11
11
|
gem "activerecord", "~> 3.2.8"
|
12
12
|
gem "pg"
|
13
13
|
gem "rspec", "~> 2.11.0"
|
14
14
|
gem "rdoc", "~> 3.12"
|
15
|
-
gem "bundler", "~> 1.
|
15
|
+
gem "bundler", "~> 1.3.0"
|
16
16
|
gem "jeweler", "~> 1.8.4"
|
17
17
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,35 +1,66 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activemodel (3.2.
|
5
|
-
activesupport (= 3.2.
|
4
|
+
activemodel (3.2.14)
|
5
|
+
activesupport (= 3.2.14)
|
6
6
|
builder (~> 3.0.0)
|
7
|
-
activerecord (3.2.
|
8
|
-
activemodel (= 3.2.
|
9
|
-
activesupport (= 3.2.
|
7
|
+
activerecord (3.2.14)
|
8
|
+
activemodel (= 3.2.14)
|
9
|
+
activesupport (= 3.2.14)
|
10
10
|
arel (~> 3.0.2)
|
11
11
|
tzinfo (~> 0.3.29)
|
12
|
-
activesupport (3.2.
|
13
|
-
i18n (~> 0.6)
|
12
|
+
activesupport (3.2.14)
|
13
|
+
i18n (~> 0.6, >= 0.6.4)
|
14
14
|
multi_json (~> 1.0)
|
15
|
+
addressable (2.3.5)
|
15
16
|
arel (3.0.2)
|
16
|
-
builder (3.0.
|
17
|
-
carrierwave (0.
|
17
|
+
builder (3.0.4)
|
18
|
+
carrierwave (0.9.0)
|
18
19
|
activemodel (>= 3.2.0)
|
19
20
|
activesupport (>= 3.2.0)
|
21
|
+
json (>= 1.7)
|
20
22
|
diff-lcs (1.1.3)
|
23
|
+
faraday (0.8.8)
|
24
|
+
multipart-post (~> 1.2.0)
|
21
25
|
git (1.2.5)
|
22
|
-
|
23
|
-
|
26
|
+
github_api (0.10.1)
|
27
|
+
addressable
|
28
|
+
faraday (~> 0.8.1)
|
29
|
+
hashie (>= 1.2)
|
30
|
+
multi_json (~> 1.4)
|
31
|
+
nokogiri (~> 1.5.2)
|
32
|
+
oauth2
|
33
|
+
hashie (2.0.5)
|
34
|
+
highline (1.6.19)
|
35
|
+
httpauth (0.2.0)
|
36
|
+
i18n (0.6.4)
|
37
|
+
jeweler (1.8.6)
|
38
|
+
builder
|
24
39
|
bundler (~> 1.0)
|
25
40
|
git (>= 1.2.5)
|
41
|
+
github_api (= 0.10.1)
|
42
|
+
highline (>= 1.6.15)
|
43
|
+
nokogiri (= 1.5.10)
|
26
44
|
rake
|
27
45
|
rdoc
|
28
|
-
json (1.
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
46
|
+
json (1.8.0)
|
47
|
+
jwt (0.1.8)
|
48
|
+
multi_json (>= 1.5)
|
49
|
+
multi_json (1.7.7)
|
50
|
+
multi_xml (0.5.4)
|
51
|
+
multipart-post (1.2.0)
|
52
|
+
nokogiri (1.5.10)
|
53
|
+
oauth2 (0.9.2)
|
54
|
+
faraday (~> 0.8)
|
55
|
+
httpauth (~> 0.2)
|
56
|
+
jwt (~> 0.1.4)
|
57
|
+
multi_json (~> 1.0)
|
58
|
+
multi_xml (~> 0.5)
|
59
|
+
rack (~> 1.2)
|
60
|
+
pg (0.16.0)
|
61
|
+
rack (1.5.2)
|
62
|
+
rake (10.1.0)
|
63
|
+
rdoc (3.12.2)
|
33
64
|
json (~> 1.4)
|
34
65
|
rspec (2.11.0)
|
35
66
|
rspec-core (~> 2.11.0)
|
@@ -39,15 +70,15 @@ GEM
|
|
39
70
|
rspec-expectations (2.11.3)
|
40
71
|
diff-lcs (~> 1.1.3)
|
41
72
|
rspec-mocks (2.11.3)
|
42
|
-
tzinfo (0.3.
|
73
|
+
tzinfo (0.3.37)
|
43
74
|
|
44
75
|
PLATFORMS
|
45
76
|
ruby
|
46
77
|
|
47
78
|
DEPENDENCIES
|
48
79
|
activerecord (~> 3.2.8)
|
49
|
-
bundler (~> 1.
|
50
|
-
carrierwave
|
80
|
+
bundler (~> 1.3.0)
|
81
|
+
carrierwave
|
51
82
|
jeweler (~> 1.8.4)
|
52
83
|
pg
|
53
84
|
rdoc (~> 3.12)
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# carrierwave-postgresql
|
1
|
+
# carrierwave-postgresql [![Build Status](https://secure.travis-ci.org/diogob/carrierwave-postgresql.png)](http://travis-ci.org/diogob/carrierwave-postgresql)
|
2
2
|
|
3
3
|
This gem adds to [CarrierWave](https://github.com/jnicklas/carrierwave/) a storage facility which will use the PostgreSQL's oid datatype to reference a large object residing in the databse. It supports up to 2GB files, though it's better suited for smaller ones. Makes life easier for fast prototyping and put all your data in the same place, allows one backup for all your data and file storage in heroku servers.
|
4
4
|
|
@@ -44,7 +44,7 @@ class AvatarUploader < CarrierWave::Uploader::Base
|
|
44
44
|
end
|
45
45
|
```
|
46
46
|
|
47
|
-
Add an oid column to the model you want to mount the uploader on:
|
47
|
+
Add an oid column to the (existing) model you want to mount the uploader on:
|
48
48
|
|
49
49
|
```ruby
|
50
50
|
add_column :users, :avatar, :oid
|
@@ -52,6 +52,13 @@ add_column :users, :avatar, :oid
|
|
52
52
|
|
53
53
|
*IMPORTANT:* The table contains only an oid, which is a number referencing the large object. The file content is stored in a separate table. This is nice because it does not genrate any problem with SELECT * statements and it gives us a nice file-like interface to the large object.
|
54
54
|
|
55
|
+
*NOTE:* If the model does not exist, and you are going to write a new model to store the oid's, the equivalent create_table migration is
|
56
|
+
```ruby
|
57
|
+
def change
|
58
|
+
create_table :users do |t|
|
59
|
+
t.column :avatar, :oid, :null => false
|
60
|
+
```
|
61
|
+
|
55
62
|
Open your model file and mount the uploader:
|
56
63
|
|
57
64
|
```ruby
|
@@ -78,8 +85,10 @@ For more info on CarrierWave take a look at the main [Carrierwave repository](ht
|
|
78
85
|
|
79
86
|
## How to stream the files from the web server
|
80
87
|
|
81
|
-
Since carrierwave-postgresql doesn't make the files available via HTTP
|
82
|
-
|
88
|
+
Since carrierwave-postgresql doesn't make the files available via HTTP.
|
89
|
+
You can do this using the Rails engine [postgresql_lo_streamer](http://diogob.github.com/postgresql_lo_streamer/).
|
90
|
+
|
91
|
+
Alternatively (in case you are not using Rails) you con stream them yourself.
|
83
92
|
|
84
93
|
The url that will be available from the field where you mounted the uploader will be the model name followed by the attribute name and with the oid as the resource id.
|
85
94
|
|
@@ -108,7 +117,7 @@ u.avatar.file.read
|
|
108
117
|
## Acknowledgments
|
109
118
|
|
110
119
|
This code is largely based on [carrierwave-mongoid](https://github.com/jnicklas/carrierwave-mongoid)
|
111
|
-
I wanted to thank (
|
120
|
+
I wanted to thank [jnicklas](https://github.com/jnicklas) for all the open source code and for the great (and extensible) architecture of CarrierWave.
|
112
121
|
|
113
122
|
## Copyright
|
114
123
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "carrierwave-postgresql"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Diogo Biazus"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-07-31"
|
13
13
|
s.description = "This gem adds to carrierwave a storage facility which will use the PostgreSQL's oid datatype to reference a large object residing in the databse. It supports up to 2GB files, though it's better suited for smaller ones. Makes life easier for fast prototyping and put all your data in the same place, allows one backup for all your data and file storage in heroku servers."
|
14
14
|
s.email = "diogo@biazus.me"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".rspec",
|
22
|
+
".travis.yml",
|
22
23
|
"Gemfile",
|
23
24
|
"Gemfile.lock",
|
24
25
|
"LICENSE.txt",
|
@@ -39,36 +40,36 @@ Gem::Specification.new do |s|
|
|
39
40
|
s.homepage = "http://diogob.github.com/carrierwave-postgresql/"
|
40
41
|
s.licenses = ["MIT"]
|
41
42
|
s.require_paths = ["lib"]
|
42
|
-
s.rubygems_version = "
|
43
|
+
s.rubygems_version = "2.0.0.rc.2"
|
43
44
|
s.summary = "Use PostgreSQL large objects (AKA BLOBs) to store your files inside the database"
|
44
45
|
|
45
46
|
if s.respond_to? :specification_version then
|
46
|
-
s.specification_version =
|
47
|
+
s.specification_version = 4
|
47
48
|
|
48
49
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
-
s.add_runtime_dependency(%q<carrierwave>, ["
|
50
|
+
s.add_runtime_dependency(%q<carrierwave>, [">= 0"])
|
50
51
|
s.add_development_dependency(%q<activerecord>, ["~> 3.2.8"])
|
51
52
|
s.add_development_dependency(%q<pg>, [">= 0"])
|
52
53
|
s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
|
53
54
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
54
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.
|
55
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.3.0"])
|
55
56
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
56
57
|
else
|
57
|
-
s.add_dependency(%q<carrierwave>, ["
|
58
|
+
s.add_dependency(%q<carrierwave>, [">= 0"])
|
58
59
|
s.add_dependency(%q<activerecord>, ["~> 3.2.8"])
|
59
60
|
s.add_dependency(%q<pg>, [">= 0"])
|
60
61
|
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
61
62
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
62
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
63
|
+
s.add_dependency(%q<bundler>, ["~> 1.3.0"])
|
63
64
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
64
65
|
end
|
65
66
|
else
|
66
|
-
s.add_dependency(%q<carrierwave>, ["
|
67
|
+
s.add_dependency(%q<carrierwave>, [">= 0"])
|
67
68
|
s.add_dependency(%q<activerecord>, ["~> 3.2.8"])
|
68
69
|
s.add_dependency(%q<pg>, [">= 0"])
|
69
70
|
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
70
71
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
71
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
72
|
+
s.add_dependency(%q<bundler>, ["~> 1.3.0"])
|
72
73
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
73
74
|
end
|
74
75
|
end
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carrierwave-postgresql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Diogo Biazus
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-07-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: carrierwave
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0
|
19
|
+
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0
|
26
|
+
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: activerecord
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,23 +41,20 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: pg
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rdoc
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,23 +83,20 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: bundler
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version: 1.
|
89
|
+
version: 1.3.0
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
96
|
+
version: 1.3.0
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: jeweler
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -137,6 +122,7 @@ extra_rdoc_files:
|
|
137
122
|
files:
|
138
123
|
- .document
|
139
124
|
- .rspec
|
125
|
+
- .travis.yml
|
140
126
|
- Gemfile
|
141
127
|
- Gemfile.lock
|
142
128
|
- LICENSE.txt
|
@@ -156,29 +142,25 @@ files:
|
|
156
142
|
homepage: http://diogob.github.com/carrierwave-postgresql/
|
157
143
|
licenses:
|
158
144
|
- MIT
|
145
|
+
metadata: {}
|
159
146
|
post_install_message:
|
160
147
|
rdoc_options: []
|
161
148
|
require_paths:
|
162
149
|
- lib
|
163
150
|
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
151
|
requirements:
|
166
|
-
- -
|
152
|
+
- - '>='
|
167
153
|
- !ruby/object:Gem::Version
|
168
154
|
version: '0'
|
169
|
-
segments:
|
170
|
-
- 0
|
171
|
-
hash: -2991919450044557960
|
172
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
-
none: false
|
174
156
|
requirements:
|
175
|
-
- -
|
157
|
+
- - '>='
|
176
158
|
- !ruby/object:Gem::Version
|
177
159
|
version: '0'
|
178
160
|
requirements: []
|
179
161
|
rubyforge_project:
|
180
|
-
rubygems_version:
|
162
|
+
rubygems_version: 2.0.0.rc.2
|
181
163
|
signing_key:
|
182
|
-
specification_version:
|
164
|
+
specification_version: 4
|
183
165
|
summary: Use PostgreSQL large objects (AKA BLOBs) to store your files inside the database
|
184
166
|
test_files: []
|