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 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
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ services: postgresql
3
+ rvm:
4
+ - "1.9.3"
5
+ before_script:
6
+ - psql -c 'create database carrierwave_test;' -U postgres
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', "~> 0.6.2"
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.2.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.8)
5
- activesupport (= 3.2.8)
4
+ activemodel (3.2.14)
5
+ activesupport (= 3.2.14)
6
6
  builder (~> 3.0.0)
7
- activerecord (3.2.8)
8
- activemodel (= 3.2.8)
9
- activesupport (= 3.2.8)
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.8)
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.0)
17
- carrierwave (0.6.2)
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
- i18n (0.6.1)
23
- jeweler (1.8.4)
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.7.5)
29
- multi_json (1.3.6)
30
- pg (0.14.0)
31
- rake (0.9.2.2)
32
- rdoc (3.12)
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.33)
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.2.1)
50
- carrierwave (~> 0.6.2)
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, you'll need to stream
82
- them yourself. In Rails for example, you could use the `send_data` method.
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 (jnicklas)[https://github.com/jnicklas] for all the open source code and for the great (and extensible) architecture of CarrierWave.
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.0
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.0"
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 = "2012-09-28"
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 = "1.8.24"
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 = 3
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>, ["~> 0.6.2"])
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.2.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>, ["~> 0.6.2"])
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.2.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>, ["~> 0.6.2"])
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.2.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
@@ -55,6 +55,10 @@ module CarrierWave
55
55
  @oid ||= @uploader.identifier
56
56
  end
57
57
 
58
+ def original_filename
59
+ identifier.to_s
60
+ end
61
+
58
62
  end
59
63
 
60
64
  def store!(file)
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.0
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: 2012-09-28 00:00:00.000000000 Z
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.6.2
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.6.2
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.2.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.2.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: 1.8.24
162
+ rubygems_version: 2.0.0.rc.2
181
163
  signing_key:
182
- specification_version: 3
164
+ specification_version: 4
183
165
  summary: Use PostgreSQL large objects (AKA BLOBs) to store your files inside the database
184
166
  test_files: []