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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5e0f3b286ab52eebdb032146c7bd7c368f76888221e3bdf1c01f3a7d088d5ef
4
- data.tar.gz: 96e38a0850648b7eb8af1f7b1ebadc44c136b0633f0c33a398ab3e632d734f88
3
+ metadata.gz: 356694c7ae51dc79dada72ed2c5dd0bc77ad7b4a3cada5eaacab14ed68422c03
4
+ data.tar.gz: 68a12942ffa575fc288edeb62192327435eab7fb94680408fe31cf921d651470
5
5
  SHA512:
6
- metadata.gz: 5d4cc8a28403eaf2f42277b1c5d1f2d702380c3a90b2dbce9a80aec55d02af3c716dcd15075eb513c8ac1d48f83db3a20e1006770d539eb81be16c2709f04b10
7
- data.tar.gz: f7c4ab93d371cf71a7e8a29542e9a00a8a84d64910b9df8763ab56622531bcf5f4545f703c8755ec70bf18b49208ee1ac6996c93e7e44e54243fca8fd95bdecf
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::Base.establish_connection(adapter: 'postgresql', database: 'ar_doc_store_test', username: 'postgres', password: 'postgres')
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", "~> 10.0"
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
- attr_writer :models, :values
113
- attr_reader :values, :assn_name
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
 
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ArDocStore
4
- VERSION = "2.1.2"
4
+ VERSION = "2.1.3"
5
5
  end
@@ -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.2
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-01-26 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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