carrierwave-mongoid 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,33 +1,20 @@
1
1
  # CarrierWave for Mongoid
2
2
 
3
- This gem adds support for Mongoid and MongoDB's GridFS to CarrierWave, see the
4
- CarrierWave documentation for more detailed usage instructions.
3
+ This gem adds support for Mongoid and MongoDB's GridFS to [CarrierWave](https://github.com/jnicklas/carrierwave/)
5
4
 
6
- ### This version supports ONLY version of mongoid ~> 2.1
7
- Keep in mind that if you came up from previous versions you should make a few steps to go with it:
5
+ This functionality used to be part of CarrierWave but has since been extracted into this gem.
8
6
 
9
- * change(rename in db) field name from `avatar_name` to `avatar`(appropriate to your uploader name)
10
- * fix you code where you need to operate with uploaded file's filename from `avatar` to `avatar_identifier`
11
-
12
- Install it like this:
7
+ ## Installation
13
8
 
14
9
  gem install carrierwave-mongoid
15
10
 
16
- Use it like this:
17
-
18
- ```ruby
19
- require 'carrierwave/mongoid'
20
- ```
21
-
22
- Make sure to disable auto_validation on the mounted column.
11
+ ## Requiring the gem
23
12
 
24
- Using bundler:
13
+ require 'carrierwave/mongoid'
25
14
 
26
- ```ruby
27
- gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
28
- ```
15
+ ## Using Bundler
29
16
 
30
- This used to be part of CarrierWave but has been extracted.
17
+ gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
31
18
 
32
19
  ## Using MongoDB's GridFS store
33
20
 
@@ -61,8 +48,26 @@ CarrierWave.configure do |config|
61
48
  end
62
49
  ```
63
50
 
64
- ## Known issues/ limitations
51
+ ## Changes from earlier versions of CarrierWave with Mongoid support built in
52
+
53
+ This version supports ONLY version of mongoid ~> 2.1
54
+
55
+ You can use `upload_identifier` to retrieve the original name of the uploaded file.
56
+
57
+ The default mount column used to be the name of the upload column plus `_filename`. Now it is simply the name of the column. Most of the time, the column was called `upload`, so it would have been mounted to `upload_filename`.
58
+ If you'd like to avoid a database migration, simply use the `:mount_on` option to specify
59
+ the field name explicitly. Therefore, you only have to add a `_filename` to your column name. For example, if your column is called `:upload`:
60
+
61
+ ```ruby
62
+ class Dokument
63
+ mount_uploader :upload, DokumentUploader, mount_on: :upload_filename
64
+ end
65
+ ```
66
+
67
+ ## Known issues and limitations
68
+
69
+ It is recommended that you disable Mongoid's auto_validation on the mounted column.
65
70
 
66
- If using Mongoid, note that embedded documents files aren't saved when parent documents are saved.
71
+ Note that embedded documents files aren't saved when parent documents are saved.
67
72
  You must explicitly call save on embedded documents in order to save their attached files.
68
73
  You can read more about this [here](https://github.com/jnicklas/carrierwave/issues#issue/81)
@@ -41,7 +41,8 @@ module CarrierWave
41
41
  def find_previous_model_for_#{column}
42
42
  if self.embedded?
43
43
  ancestors = [[ self.metadata.key, self._parent ]].tap { |x| x.unshift([ x.first.last.metadata.key, x.first.last._parent ]) while x.first.last.embedded? }
44
- reloaded_parent = ancestors.first.last.reload
44
+ first_parent = ancestors.first.last
45
+ reloaded_parent = first_parent.class.find(first_parent.to_key.first)
45
46
  ancestors.inject(reloaded_parent) { |parent,(key,ancestor)| (parent.is_a?(Array) ? parent.find(ancestor.to_key.first) : parent).send(key) }.find(to_key.first)
46
47
  else
47
48
  self.class.find(to_key.first)
@@ -1,5 +1,5 @@
1
1
  module Carrierwave
2
2
  module Mongoid
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
data/spec/mongoid_spec.rb CHANGED
@@ -450,6 +450,14 @@ describe CarrierWave::Mongoid do
450
450
  File.exists?(public_path('uploads/old.jpeg')).should be_true
451
451
  end
452
452
 
453
+ it "should not touch parent's dirty attributes" do
454
+ @class.field :title
455
+ @doc.title = "Title"
456
+ @embedded_doc.image = stub_file('new.jpeg')
457
+ @embedded_doc.save.should be_true
458
+ @doc.title.should == "Title"
459
+ end
460
+
453
461
  describe 'with double embedded documents' do
454
462
 
455
463
  before do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave-mongoid
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jonas Nicklas
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-08-12 00:00:00 -05:00
19
+ date: 2011-08-16 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency