carrierwave-mongoid 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +1 -0
- data/.travis.yml +8 -0
- data/README.md +22 -8
- data/carrierwave-mongoid.gemspec +1 -1
- data/gemfiles/carrierwave-master.gemfile +5 -0
- data/gemfiles/mongoid-3.0.gemfile +5 -0
- data/gemfiles/mongoid-3.1.gemfile +5 -0
- data/gemfiles/mongoid-4.0.gemfile +6 -0
- data/lib/carrierwave/mongoid.rb +5 -1
- data/lib/carrierwave/mongoid/version.rb +1 -1
- data/spec/mongoid_spec.rb +39 -22
- metadata +38 -50
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YWNhYTI4NzQ3MTI0YzFlMmVlYzI0ZDFkZWU0MGM1NmNhNzUxN2M1NA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OGU0YWEyZTZjMDlmNzdmNDJhYmQyY2YzZDg2NGMzYzA2NzZhMWFkZg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTEwM2FjYzRhYTA3NWUwMmE5NThiZTc3MDgwMGY3NGIzOGQ3Y2NmNzhmOTQ5
|
10
|
+
OWVjYTgwNzc1NTk3ZjEyM2QxYzNlNTA2ODgyNmYzMmFmYTdlM2E5ZWJhOTdm
|
11
|
+
OTBkNWVjNTZhNmYyZWRhMmE0NmM0M2RiNDk1MTM1NTJlYWM0MGM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MTYyOWFlODkwMGFjYWM1NjhmMDdlNDBhNjQ4MTcxNmM3Mzk3ZDFjM2FiNWI3
|
14
|
+
ZDU5YzdlZDVkNzIzNDBiNTA3ZDBjOTMzMDQ0OTAzODExNDI1NWVjNjFjNzM3
|
15
|
+
ZTY0YTFkNzc0YTA4ZGM0YjM4YTViNWEyNTllYjY1YjU3MTRlMzc=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -6,5 +6,13 @@ notifications:
|
|
6
6
|
language: ruby
|
7
7
|
rvm:
|
8
8
|
- 1.9.3
|
9
|
+
- 2.0.0
|
9
10
|
- jruby-19mode
|
10
11
|
- rbx-19mode
|
12
|
+
|
13
|
+
gemfile:
|
14
|
+
- Gemfile
|
15
|
+
- gemfiles/carrierwave-master.gemfile
|
16
|
+
- gemfiles/mongoid-3.0.gemfile
|
17
|
+
- gemfiles/mongoid-3.1.gemfile
|
18
|
+
- gemfiles/mongoid-4.0.gemfile
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# CarrierWave for Mongoid [![Gem Version](https://badge.fury.io/rb/carrierwave-mongoid.png)](http://badge.fury.io/rb/carrierwave-mongoid) [![Build Status](https://travis-ci.org/jnicklas/carrierwave-mongoid.png?branch=master)](http://travis-ci.org/jnicklas/carrierwave-mongoid)
|
1
|
+
# CarrierWave for Mongoid [![Gem Version](https://badge.fury.io/rb/carrierwave-mongoid.png)](http://badge.fury.io/rb/carrierwave-mongoid) [![Build Status](https://travis-ci.org/jnicklas/carrierwave-mongoid.png?branch=master)](http://travis-ci.org/jnicklas/carrierwave-mongoid) [![Code Climate](https://codeclimate.com/github/jnicklas/carrierwave-mongoid.png)](https://codeclimate.com/github/jnicklas/carrierwave-mongoid)
|
2
2
|
|
3
3
|
This gem adds support for Mongoid and MongoDB's GridFS to
|
4
4
|
[CarrierWave](https://github.com/jnicklas/carrierwave/)
|
@@ -14,11 +14,15 @@ Install the latest release:
|
|
14
14
|
|
15
15
|
Require it in your code:
|
16
16
|
|
17
|
-
|
17
|
+
```ruby
|
18
|
+
require 'carrierwave/mongoid'
|
19
|
+
```
|
18
20
|
|
19
21
|
Or, in Rails you can add it to your Gemfile:
|
20
22
|
|
21
|
-
|
23
|
+
```ruby
|
24
|
+
gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
|
25
|
+
```
|
22
26
|
|
23
27
|
## Getting Started
|
24
28
|
|
@@ -28,14 +32,18 @@ Follow the "Getting Started" directions in the main
|
|
28
32
|
[Suggested] Add the field to your attr_accessor list for mass assignment
|
29
33
|
protection:
|
30
34
|
|
31
|
-
|
35
|
+
```ruby
|
36
|
+
attr_accessible :avatar, :avatar_cache
|
37
|
+
```
|
32
38
|
|
33
39
|
Now you can cache files by assigning them to the attribute; they will
|
34
40
|
automatically be stored when the record is saved. Ex:
|
35
41
|
|
36
|
-
|
37
|
-
|
38
|
-
|
42
|
+
```ruby
|
43
|
+
u = User.new
|
44
|
+
u.avatar = File.open('somewhere')
|
45
|
+
u.save!
|
46
|
+
```
|
39
47
|
|
40
48
|
## Using MongoDB's GridFS store
|
41
49
|
|
@@ -74,16 +82,22 @@ end
|
|
74
82
|
|
75
83
|
| Version | Notes |
|
76
84
|
|----------|---------------------------------------------------------------------------------|
|
77
|
-
| ~> 0.
|
85
|
+
| ~> 0.6.0 | ([compare][compare-0.6], [dependencies][deps-0.6]) Mongoid 3 & 4, bug fixes |
|
86
|
+
| ~> 0.5.0 | ([compare][compare-0.5], [dependencies][deps-0.5]) Mongoid::Paranoia support |
|
87
|
+
| ~> 0.4.0 | ([compare][compare-0.4], [dependencies][deps-0.4]) Carrierwave bump |
|
78
88
|
| ~> 0.3.0 | ([compare][compare-0.3], [dependencies][deps-0.3]) Mongoid >= 3.0 |
|
79
89
|
| ~> 0.2.0 | ([compare][compare-0.2], [dependencies][deps-0.2]) Rails >= 3.2, Mongoid ~> 2.0 |
|
80
90
|
| ~> 0.1.0 | ([compare][compare-0.1], [dependencies][deps-0.1]) Rails <= 3.1 |
|
81
91
|
|
92
|
+
[compare-0.6]: https://github.com/jnicklas/carrierwave-mongoid/compare/v0.5.0...v0.6.0
|
93
|
+
[compare-0.5]: https://github.com/jnicklas/carrierwave-mongoid/compare/v0.4.0...v0.5.0
|
82
94
|
[compare-0.4]: https://github.com/jnicklas/carrierwave-mongoid/compare/v0.3.1...v0.4.0
|
83
95
|
[compare-0.3]: https://github.com/jnicklas/carrierwave-mongoid/compare/v0.2.1...v0.3.1
|
84
96
|
[compare-0.2]: https://github.com/jnicklas/carrierwave-mongoid/compare/v0.1.7...v0.2.2
|
85
97
|
[compare-0.1]: https://github.com/jnicklas/carrierwave-mongoid/compare/v0.1.1...v0.1.7
|
86
98
|
|
99
|
+
[deps-0.6]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.6.0
|
100
|
+
[deps-0.5]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.5.0
|
87
101
|
[deps-0.4]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.4.0
|
88
102
|
[deps-0.3]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.3.1
|
89
103
|
[deps-0.2]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.2.2
|
data/carrierwave-mongoid.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
|
23
23
|
s.add_dependency "carrierwave", ["~> 0.8.0"]
|
24
|
-
s.add_dependency "mongoid", ["
|
24
|
+
s.add_dependency "mongoid", [">= 3.0", "< 5.0"]
|
25
25
|
s.add_dependency "mongoid-grid_fs", ["~> 1.3"]
|
26
26
|
s.add_development_dependency "rspec", ["~> 2.6"]
|
27
27
|
s.add_development_dependency "rake", ["~> 10.0"]
|
data/lib/carrierwave/mongoid.rb
CHANGED
@@ -35,12 +35,16 @@ module CarrierWave
|
|
35
35
|
class_eval <<-RUBY, __FILE__, __LINE__+1
|
36
36
|
def #{column}=(new_file)
|
37
37
|
column = _mounter(:#{column}).serialization_column
|
38
|
+
|
39
|
+
# mongoid won't upload a new file if there was no file previously.
|
40
|
+
write_uploader(column, '_old_') if self.persisted? && read_uploader(column).nil?
|
41
|
+
|
38
42
|
send(:"\#{column}_will_change!")
|
39
43
|
super
|
40
44
|
end
|
41
45
|
|
42
46
|
def remove_#{column}!
|
43
|
-
super unless paranoid? && flagged_for_destroy?
|
47
|
+
super unless respond_to?(:paranoid?) && paranoid? && flagged_for_destroy?
|
44
48
|
end
|
45
49
|
|
46
50
|
# Overrides Mongoid's default dirty behavior to instead work more like
|
data/spec/mongoid_spec.rb
CHANGED
@@ -568,7 +568,7 @@ describe CarrierWave::Mongoid do
|
|
568
568
|
end
|
569
569
|
|
570
570
|
@class.class_eval do
|
571
|
-
embeds_many :mongo_locations
|
571
|
+
embeds_many :mongo_locations, cascade_callbacks: true
|
572
572
|
end
|
573
573
|
|
574
574
|
@doc = @class.new
|
@@ -579,6 +579,19 @@ describe CarrierWave::Mongoid do
|
|
579
579
|
|
580
580
|
include_examples "embedded documents"
|
581
581
|
|
582
|
+
it "attaches a new file to an existing document that had no file at first" do
|
583
|
+
doc = @class.new
|
584
|
+
doc.mongo_locations.build
|
585
|
+
doc.save.should be_true
|
586
|
+
doc.reload
|
587
|
+
|
588
|
+
doc.mongo_locations.first.image = stub_file('test.jpeg')
|
589
|
+
doc.save.should be_true
|
590
|
+
doc.reload
|
591
|
+
|
592
|
+
doc.mongo_locations.first[:image].should == 'test.jpeg'
|
593
|
+
end
|
594
|
+
|
582
595
|
describe 'with double embedded documents' do
|
583
596
|
|
584
597
|
before do
|
@@ -766,30 +779,34 @@ describe CarrierWave::Mongoid do
|
|
766
779
|
end
|
767
780
|
end
|
768
781
|
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
782
|
+
# Mongoid::Paranoia support is only part of Mongoid 3.x. It was removed from
|
783
|
+
# Mongoid 4.x.
|
784
|
+
if defined?(Mongoid::Paranoia)
|
785
|
+
describe "with paranoia enabled" do
|
786
|
+
before do
|
787
|
+
@class = reset_mongo_class
|
788
|
+
@class.collection.drop
|
789
|
+
@class.class_eval do
|
790
|
+
include Mongoid::Paranoia
|
791
|
+
end
|
776
792
|
|
777
|
-
|
778
|
-
|
779
|
-
|
793
|
+
@doc = @class.new(image: stub_file("old.jpeg"))
|
794
|
+
@doc.save.should be_true
|
795
|
+
end
|
780
796
|
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
797
|
+
it "should not remove underlying image after #destroy" do
|
798
|
+
@doc.destroy.should be_true
|
799
|
+
@class.count.should eql(0)
|
800
|
+
@class.deleted.count.should eql(1)
|
801
|
+
File.exist?(public_path('uploads/old.jpeg')).should be_true
|
802
|
+
end
|
787
803
|
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
804
|
+
it "should remove underlying image after #destroy!" do
|
805
|
+
@doc.destroy!.should be_true
|
806
|
+
@class.count.should eql(0)
|
807
|
+
@class.deleted.count.should eql(0)
|
808
|
+
File.exist?(public_path('uploads/old.jpeg')).should be_false
|
809
|
+
end
|
793
810
|
end
|
794
811
|
end
|
795
812
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carrierwave-mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jonas Nicklas
|
@@ -10,120 +9,112 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-05-12 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
|
-
name: carrierwave
|
17
15
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
16
|
requirements:
|
20
17
|
- - ~>
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 0.8.0
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
20
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
21
|
requirements:
|
28
22
|
- - ~>
|
29
23
|
- !ruby/object:Gem::Version
|
30
24
|
version: 0.8.0
|
25
|
+
type: :runtime
|
26
|
+
prerelease: false
|
27
|
+
name: carrierwave
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
|
-
name: mongoid
|
33
29
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
30
|
requirements:
|
36
|
-
- -
|
31
|
+
- - ! '>='
|
37
32
|
- !ruby/object:Gem::Version
|
38
33
|
version: '3.0'
|
39
|
-
|
40
|
-
|
34
|
+
- - <
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '5.0'
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '3.0'
|
42
|
+
- - <
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '5.0'
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
name: mongoid
|
47
48
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: mongoid-grid_fs
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
50
|
requirements:
|
52
51
|
- - ~>
|
53
52
|
- !ruby/object:Gem::Version
|
54
53
|
version: '1.3'
|
55
|
-
type: :runtime
|
56
|
-
prerelease: false
|
57
54
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
55
|
requirements:
|
60
56
|
- - ~>
|
61
57
|
- !ruby/object:Gem::Version
|
62
58
|
version: '1.3'
|
59
|
+
type: :runtime
|
60
|
+
prerelease: false
|
61
|
+
name: mongoid-grid_fs
|
63
62
|
- !ruby/object:Gem::Dependency
|
64
|
-
name: rspec
|
65
63
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
64
|
requirements:
|
68
65
|
- - ~>
|
69
66
|
- !ruby/object:Gem::Version
|
70
67
|
version: '2.6'
|
71
|
-
type: :development
|
72
|
-
prerelease: false
|
73
68
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
69
|
requirements:
|
76
70
|
- - ~>
|
77
71
|
- !ruby/object:Gem::Version
|
78
72
|
version: '2.6'
|
73
|
+
type: :development
|
74
|
+
prerelease: false
|
75
|
+
name: rspec
|
79
76
|
- !ruby/object:Gem::Dependency
|
80
|
-
name: rake
|
81
77
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
78
|
requirements:
|
84
79
|
- - ~>
|
85
80
|
- !ruby/object:Gem::Version
|
86
81
|
version: '10.0'
|
87
|
-
type: :development
|
88
|
-
prerelease: false
|
89
82
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
83
|
requirements:
|
92
84
|
- - ~>
|
93
85
|
- !ruby/object:Gem::Version
|
94
86
|
version: '10.0'
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
name: rake
|
95
90
|
- !ruby/object:Gem::Dependency
|
96
|
-
name: mini_magick
|
97
91
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
92
|
requirements:
|
100
93
|
- - ! '>='
|
101
94
|
- !ruby/object:Gem::Version
|
102
95
|
version: '0'
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
96
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
97
|
requirements:
|
108
98
|
- - ! '>='
|
109
99
|
- !ruby/object:Gem::Version
|
110
100
|
version: '0'
|
101
|
+
type: :development
|
102
|
+
prerelease: false
|
103
|
+
name: mini_magick
|
111
104
|
- !ruby/object:Gem::Dependency
|
112
|
-
name: pry
|
113
105
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
106
|
requirements:
|
116
107
|
- - ! '>='
|
117
108
|
- !ruby/object:Gem::Version
|
118
109
|
version: '0'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
110
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
111
|
requirements:
|
124
112
|
- - ! '>='
|
125
113
|
- !ruby/object:Gem::Version
|
126
114
|
version: '0'
|
115
|
+
type: :development
|
116
|
+
prerelease: false
|
117
|
+
name: pry
|
127
118
|
description: Mongoid support for CarrierWave
|
128
119
|
email:
|
129
120
|
- jonas.nicklas@gmail.com
|
@@ -138,6 +129,10 @@ files:
|
|
138
129
|
- README.md
|
139
130
|
- Rakefile
|
140
131
|
- carrierwave-mongoid.gemspec
|
132
|
+
- gemfiles/carrierwave-master.gemfile
|
133
|
+
- gemfiles/mongoid-3.0.gemfile
|
134
|
+
- gemfiles/mongoid-3.1.gemfile
|
135
|
+
- gemfiles/mongoid-4.0.gemfile
|
141
136
|
- lib/carrierwave/mongoid.rb
|
142
137
|
- lib/carrierwave/mongoid/version.rb
|
143
138
|
- lib/carrierwave/storage/grid_fs.rb
|
@@ -155,33 +150,26 @@ files:
|
|
155
150
|
homepage: https://github.com/jnicklas/carrierwave-mongoid
|
156
151
|
licenses:
|
157
152
|
- MIT
|
153
|
+
metadata: {}
|
158
154
|
post_install_message:
|
159
155
|
rdoc_options: []
|
160
156
|
require_paths:
|
161
157
|
- lib
|
162
158
|
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
159
|
requirements:
|
165
160
|
- - ! '>='
|
166
161
|
- !ruby/object:Gem::Version
|
167
162
|
version: '0'
|
168
|
-
segments:
|
169
|
-
- 0
|
170
|
-
hash: 1710824902897794014
|
171
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
|
-
none: false
|
173
164
|
requirements:
|
174
165
|
- - ! '>='
|
175
166
|
- !ruby/object:Gem::Version
|
176
167
|
version: '0'
|
177
|
-
segments:
|
178
|
-
- 0
|
179
|
-
hash: 1710824902897794014
|
180
168
|
requirements: []
|
181
169
|
rubyforge_project: carrierwave-mongoid
|
182
|
-
rubygems_version:
|
170
|
+
rubygems_version: 2.0.3
|
183
171
|
signing_key:
|
184
|
-
specification_version:
|
172
|
+
specification_version: 4
|
185
173
|
summary: Mongoid support for CarrierWave
|
186
174
|
test_files:
|
187
175
|
- spec/fixtures/new.jpeg
|