active_record_content_blob 0.2.0 → 0.3.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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzAyNjgxZWQ0ODNhNzJhZDA5N2JkMDU5YjEwNmNmOTNmNTRjZWMwOA==
4
+ MmM1MmVkNzRmODBkNzJmNmQ1YzBjNmQ3YWRlNmM3YTViMDcyNTNjNw==
5
5
  data.tar.gz: !binary |-
6
- MDEzYzNiMGQ1ZWEwYTI5YWNiYjk2YWVkYjUyMzFkM2Q3NzU0YjdmYg==
6
+ OTkzMTU5ZWU1YjE3OTc5OWZmYTk2MTk4MzdhYWE3YWUyYjU4YzA1MQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YTcxMDlkZjFhOWQ2MzIxYWFjNThlZjhjOGRiYTU4ZmI3MjQwYThhZjBiYjkx
10
- YTllYzZmMjY5ODRjZDMyZTYyMDA1MjNhYmFkZWIzNGI0MzQ3YjA3MTQzYzAy
11
- OTQwNTc4NjZiMmI1NDYzZGExOGM0OTcyN2U2MmMyOGRiMzE5MmE=
9
+ ZmUyYTNhMTA0Mjk2ZDU1YTlmZTFjZTgyZWZkNzFjNmQxNzIwNDIwMzMzNGY2
10
+ YzdkNGJmMGNjYmVjMGViZmVhZTgxNDQ3MzNmNmU5MzA5ZjQ5NTJhNzk4MTQx
11
+ Y2M4NGQwM2JiOTVlNDgyODZhOGQ0MTkxNmIzZTI2ZmE2MzUzNmU=
12
12
  data.tar.gz: !binary |-
13
- ZGI0MDMyYTZlNGI1MmM2YjExNGRiM2NiYTFmMDNjZjk5ZWJkMGFmOGYyNzNk
14
- MGRhMTFiZjgyY2Q0MjQ2OGMwZGU5ZDQ4MjU5NWFkNDhhODdlYjFiYWMxZjlk
15
- YmIyNGI0ZjM5N2UwYTI3YmFjNGRkYWRmN2ZmMTUzMWJjMDM4ZGQ=
13
+ OTA2MTUwNzY3YjcxYmEyMWY5NzVhMDQ4MTRlMWM3YmI5MmNmNzYyOTgzYWUw
14
+ ODBiMDQxZDgwNmNkZGQ2OTUxZmE3MDFiNmQ2ZjdhY2JkNmQwYjRjMTRlYWU0
15
+ YWFmYTg3OTZjY2E1YTZiMGM1ZWM4ZDNhODhjOTU5ZGVlMGI1MzQ=
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "active_record_content_blob"
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dan Nguyen"]
data/lib/content_blob.rb CHANGED
@@ -6,6 +6,6 @@ class ContentBlob < ActiveRecord::Base
6
6
  serialize :contents
7
7
 
8
8
  validates_uniqueness_of :blobable_id, scope: :blobable_type
9
- belongs_to :blobable, polymorphic: true
9
+ belongs_to :blobable, polymorphic: true, autosave: true
10
10
 
11
11
  end
@@ -13,7 +13,7 @@ module ActiveRecordContentBlob
13
13
  raise StandardError, "Cannot already have a :contents attribute or method"
14
14
  end
15
15
 
16
- has_one :content_blob, as: :blobable, dependent: :destroy
16
+ has_one :content_blob, as: :blobable, dependent: :destroy, autosave: true
17
17
  # TODO: allow customization of :contents name
18
18
  # in case model already has a contents field
19
19
  delegate :contents, to: :content_blob, allow_nil: true
@@ -35,19 +35,20 @@ describe "Blobable" do
35
35
  context 'existing blobs' do
36
36
  it 'should overwrite existing blob' do
37
37
  @record.build_a_blob({'xyz'=>'999'})
38
- expect(@record.content_blob.new_record?).to be_true
39
- expect(@record.content_blob.valid?).to be_true
40
38
 
41
- @record.save
42
-
43
- @record = MusicRecord.find(@record.id)
39
+ expect(@record.content_blob).not_to be_new_record
40
+ expect(@record.content_blob).to be_changed
41
+ expect(@record.content_blob).to be_valid
42
+
43
+ @record.save
44
+ @record.reload
45
+
44
46
  expect(@record.contents['xyz']).to eq '999'
45
47
 
46
48
  expect(ContentBlob.count).to eq 1
47
49
  end
48
50
 
49
51
  it 'should keep same id of an existing blob' do
50
- #ActiveRecord::Base.logger = Logger.new(STDOUT) if defined?(ActiveRecord::Base)
51
52
  old_blob_id = @record.content_blob.id
52
53
 
53
54
  @record.build_a_blob({'xyz'=>'999'})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_content_blob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Nguyen