ar_doc_store 2.1.2 → 2.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -1
- data/ar_doc_store.gemspec +1 -1
- data/lib/ar_doc_store/attributes/embeds_many.rb +3 -2
- data/lib/ar_doc_store/embeddable_model.rb +2 -2
- data/lib/ar_doc_store/model.rb +7 -0
- data/lib/ar_doc_store/version.rb +1 -1
- data/test/model_test.rb +17 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 356694c7ae51dc79dada72ed2c5dd0bc77ad7b4a3cada5eaacab14ed68422c03
|
4
|
+
data.tar.gz: 68a12942ffa575fc288edeb62192327435eab7fb94680408fe31cf921d651470
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9b979cefc4e7756b9e4ebed8611b64b0e23cedc5ff9eed73d3154cb17fc5aaa96bb779edde75095c884f6a7df1491b9373a3bc2f2c869c660e835c78ceaf356
|
7
|
+
data.tar.gz: e5fbb30816f2ebf1ae9c4d5597c6e714c584317301d22ad304c8efec57577034e47930e62ca8dedbd38e6d70f8bb06b50a3bb39b296aec0226ff131b0b1f6deb
|
data/Rakefile
CHANGED
@@ -8,8 +8,10 @@ end
|
|
8
8
|
|
9
9
|
namespace :test do
|
10
10
|
task :prepare_ar_doc_store do
|
11
|
+
config = { adapter: 'postgresql', database: 'ar_doc_store_test', username: 'postgres', password: 'postgres' }
|
11
12
|
require 'active_record'
|
12
|
-
ActiveRecord::
|
13
|
+
ActiveRecord::Tasks::DatabaseTasks.create(config)
|
14
|
+
ActiveRecord::Base.establish_connection(config)
|
13
15
|
|
14
16
|
ActiveRecord::Schema.define do
|
15
17
|
self.verbose = false
|
data/ar_doc_store.gemspec
CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency "activerecord", ">=6.1"
|
22
22
|
spec.add_dependency "pg"
|
23
23
|
spec.add_development_dependency "bundler", "~> 2.2"
|
24
|
-
spec.add_development_dependency "rake", "~>
|
24
|
+
spec.add_development_dependency "rake", "~> 12.2"
|
25
25
|
spec.add_development_dependency "simplecov"
|
26
26
|
end
|
@@ -93,6 +93,7 @@ module ArDocStore
|
|
93
93
|
|
94
94
|
class AssignEmbedsManyAttributes
|
95
95
|
attr_reader :models, :assn_name, :parent, :class_name
|
96
|
+
|
96
97
|
def initialize(parent, class_name, assn_name, models, values)
|
97
98
|
@parent, @class_name, @assn_name, @models, @values = parent, class_name, assn_name, models, values
|
98
99
|
@models ||= ArDocStore::EmbeddedCollection.new
|
@@ -109,8 +110,8 @@ module ArDocStore
|
|
109
110
|
|
110
111
|
private
|
111
112
|
|
112
|
-
|
113
|
-
|
113
|
+
attr_accessor :values
|
114
|
+
attr_writer :models
|
114
115
|
|
115
116
|
def process_existing_model(value)
|
116
117
|
return false unless value.key?(:id)
|
@@ -22,8 +22,8 @@ module ArDocStore
|
|
22
22
|
attr_accessor :parent
|
23
23
|
attr_accessor :embedded_as
|
24
24
|
|
25
|
-
class_attribute :json_attributes
|
26
|
-
self.json_attributes = HashWithIndifferentAccess.new
|
25
|
+
# class_attribute :json_attributes
|
26
|
+
# self.json_attributes = HashWithIndifferentAccess.new
|
27
27
|
|
28
28
|
json_attribute :id, :string #, default: -> { SecureRandom.uuid }
|
29
29
|
|
data/lib/ar_doc_store/model.rb
CHANGED
@@ -8,6 +8,7 @@ module ArDocStore
|
|
8
8
|
mod.send :include, InstanceMethods
|
9
9
|
mod.after_initialize :assign_json_data
|
10
10
|
mod.before_validation :save_json_data
|
11
|
+
mod.before_save :ensure_json_data_saved
|
11
12
|
mod.before_save :mark_embeds_as_persisted
|
12
13
|
end
|
13
14
|
|
@@ -28,6 +29,12 @@ module ArDocStore
|
|
28
29
|
json_attributes.each do |key, value|
|
29
30
|
write_store_attribute(json_column, key, read_attribute(key)) if changes.key?(key)
|
30
31
|
end
|
32
|
+
@json_data_saved = true
|
33
|
+
end
|
34
|
+
|
35
|
+
def ensure_json_data_saved
|
36
|
+
save_json_data unless @json_data_saved
|
37
|
+
@json_data_saved = nil
|
31
38
|
end
|
32
39
|
|
33
40
|
def mark_embeds_as_persisted
|
data/lib/ar_doc_store/version.rb
CHANGED
data/test/model_test.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative './test_helper'
|
2
|
+
|
3
|
+
class ModelTest < MiniTest::Test
|
4
|
+
def test_save_with_validation
|
5
|
+
b = Building.new name: 'test'
|
6
|
+
assert b.save
|
7
|
+
b.reload
|
8
|
+
assert_equal 'test', b.name
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_save_without_validation
|
12
|
+
b = Building.new name: 'test'
|
13
|
+
assert b.save(validate: false)
|
14
|
+
b.reload
|
15
|
+
assert_equal 'test', b.name
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ar_doc_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Furber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '12.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '12.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,6 +130,7 @@ files:
|
|
130
130
|
- test/attributes/float_attribute_test.rb
|
131
131
|
- test/attributes/integer_attribute_test.rb
|
132
132
|
- test/attributes/string_attribute_test.rb
|
133
|
+
- test/model_test.rb
|
133
134
|
- test/test_helper.rb
|
134
135
|
homepage: https://github.com/dfurber/ar_doc_store
|
135
136
|
licenses:
|
@@ -166,4 +167,5 @@ test_files:
|
|
166
167
|
- test/attributes/float_attribute_test.rb
|
167
168
|
- test/attributes/integer_attribute_test.rb
|
168
169
|
- test/attributes/string_attribute_test.rb
|
170
|
+
- test/model_test.rb
|
169
171
|
- test/test_helper.rb
|