carrierwave-mongoid 0.5.0 → 0.6.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 +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 [](http://badge.fury.io/rb/carrierwave-mongoid) [](http://travis-ci.org/jnicklas/carrierwave-mongoid)
|
1
|
+
# CarrierWave for Mongoid [](http://badge.fury.io/rb/carrierwave-mongoid) [](http://travis-ci.org/jnicklas/carrierwave-mongoid) [](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
|