unidom-party 1.9.6 → 1.9.7

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
  SHA1:
3
- metadata.gz: 5adcbf6c4c6bf803fe800a5f6776fa2275d9a264
4
- data.tar.gz: 8ca5c6f66278e336552b28cd5fdf95eebf2f9d72
3
+ metadata.gz: 69112818e611dcbdcfc8975fffafbd0aa9890e32
4
+ data.tar.gz: '08375d98e15d45e6c1e78f4cf7ac8f0e9636c959'
5
5
  SHA512:
6
- metadata.gz: fb215df4a4644b6cd8dc2fef0432119b1bfba8bf2697ab85015758736e803de32f2334aa5135497a37e15a4db5656dd4addd8df6ff0710cd8ad6f68622cc064c
7
- data.tar.gz: 6092b6bd9b2d092f6610ff59f1b2b262bfd1615748b936bc3e3c36b83c2c39242bd2740e461cdc99f3559f90225562594073f407aee40f214ccce4b0847b4741
6
+ metadata.gz: c3c5cafb5160263cac4b8c4940dbcd70572cb6337d740667c03725f34975d5e84ae8e6f4bafb53461f6f6129fef59d418166d48872346dcb9b0d17401e1f221c
7
+ data.tar.gz: 9f42c3e80fe646e17546039ccb24aa4e89ffe1262ed208825551f8f0bda53046696f45eff55e6c3c1ade5ace0df97b92ec406ac08150a21da1be7fe90249ab8d
data/README.md CHANGED
@@ -168,12 +168,20 @@ require 'unidom/party/rspec_shared_examples'
168
168
  # spec/models/your_party_spec.rb
169
169
  describe YourParty, type: :model do
170
170
 
171
- model_attribtues = {
172
- your_attribtue: 'your value'
173
- }
171
+ context do
172
+
173
+ model_attribtues = {
174
+ your_attribtue: 'your value'
175
+ }
176
+
177
+ target_party = described_class.create! model_attributes
178
+ source_party = described_class.create! model_attributes
179
+ linkage_code = 'SELF'
180
+
181
+ it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes, target_party, linkage_code
182
+ it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes, source_party, linkage_code
174
183
 
175
- it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attribtues
176
- it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attribtues
184
+ end
177
185
 
178
186
  end
179
187
  ```
@@ -1,17 +1,30 @@
1
1
  module Unidom::Party::Concerns::AsSourceParty
2
2
 
3
- extend ActiveSupport::Concern
3
+ extend ActiveSupport::Concern
4
+ include Unidom::Common::Concerns::ArgumentValidation
4
5
 
5
6
  included do |includer|
6
7
 
7
8
  has_many :target_party_relations, class_name: 'Unidom::Party::PartyRelation', as: :source_party
8
9
 
9
10
  def relate!(to: nil, due_to: nil, at: Time.now)
11
+
12
+ assert_present! :to, to
13
+ assert_present! :due_to, due_to
14
+ assert_present! :at, at
15
+
10
16
  target_party_relations.create! target_party: to, linkage_code: due_to, opened_at: at
17
+
11
18
  end
12
19
 
13
20
  def relate?(to: nil, due_to: nil, at: Time.now)
21
+
22
+ assert_present! :to, to
23
+ assert_present! :due_to, due_to
24
+ assert_present! :at, at
25
+
14
26
  target_party_relations.target_party_is(to).linkage_coded_as(due_to).valid_at(now: at).alive.exists?
27
+
15
28
  end
16
29
 
17
30
  end
@@ -7,11 +7,23 @@ module Unidom::Party::Concerns::AsTargetParty
7
7
  has_many :source_party_relations, class_name: 'Unidom::Party::PartyRelation', as: :target_party
8
8
 
9
9
  def is_related!(to: nil, due_to: nil, at: Time.now)
10
+
11
+ assert_present! :to, to
12
+ assert_present! :due_to, due_to
13
+ assert_present! :at, at
14
+
10
15
  source_party_relations.create! source_party: to, linkage_code: due_to, opened_at: at
16
+
11
17
  end
12
18
 
13
19
  def is_related?(to: nil, due_to: nil, at: Time.now)
20
+
21
+ assert_present! :to, to
22
+ assert_present! :due_to, due_to
23
+ assert_present! :at, at
24
+
14
25
  source_party_relations.source_party_is(to).linkage_coded_as(due_to).valid_at(now: at).alive.exists?
26
+
15
27
  end
16
28
 
17
29
  end
@@ -16,10 +16,16 @@ describe Unidom::Party::Company, type: :model do
16
16
  }
17
17
 
18
18
  it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
19
- it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes
20
- it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes
21
19
 
22
- it_behaves_like 'validates text', model_attributes, :name, length: 2..described_class.columns_hash['name'].limit
20
+ target_party = described_class.create! model_attributes
21
+ source_party = described_class.create! model_attributes
22
+ linkage_code = 'SELF'
23
+
24
+ it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes, target_party, linkage_code
25
+ it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes, source_party, linkage_code
26
+
27
+ it_behaves_like 'validates text', model_attributes, :name,
28
+ length: 2..described_class.columns_hash['name'].limit
23
29
 
24
30
  end
25
31
 
@@ -1,6 +1,6 @@
1
- shared_examples 'Unidom::Party::Concerns::AsSourceParty' do |model_attributes|
1
+ shared_examples 'Unidom::Party::Concerns::AsSourceParty' do |model_attributes, target_party, linkage_code|
2
2
 
3
- describe '#target_party_relations' do
3
+ context do
4
4
 
5
5
  target_person_1 = Unidom::Party::Person.create! name: 'Tim'
6
6
  target_person_2 = Unidom::Party::Person.create! name: 'Tom'
@@ -10,9 +10,10 @@ shared_examples 'Unidom::Party::Concerns::AsSourceParty' do |model_attributes|
10
10
 
11
11
  it_behaves_like 'has_many', model_attributes, :target_party_relations, Unidom::Party::PartyRelation, [ target_party_relation_1_attributes, target_party_relation_2_attributes ]
12
12
 
13
- end
13
+ model = described_class.create! model_attributes
14
+ it_behaves_like 'assert_present!', model, :relate!, [ { to: target_party, due_to: linkage_code, at: Time.now } ], [ :to, :due_to, :at ]
15
+ it_behaves_like 'assert_present!', model, :relate?, [ { to: target_party, due_to: linkage_code, at: Time.now } ], [ :to, :due_to, :at ]
14
16
 
15
- # relate!
16
- # relate?
17
+ end
17
18
 
18
19
  end
@@ -1,4 +1,4 @@
1
- shared_examples 'Unidom::Party::Concerns::AsTargetParty' do |model_attributes|
1
+ shared_examples 'Unidom::Party::Concerns::AsTargetParty' do |model_attributes, source_party, linkage_code|
2
2
 
3
3
  context do
4
4
 
@@ -10,6 +10,10 @@ shared_examples 'Unidom::Party::Concerns::AsTargetParty' do |model_attributes|
10
10
 
11
11
  it_behaves_like 'has_many', model_attributes, :source_party_relations, Unidom::Party::PartyRelation, [ source_party_relation_1_attributes, source_party_relation_2_attributes ]
12
12
 
13
+ model = described_class.create! model_attributes
14
+ it_behaves_like 'assert_present!', model, :is_related!, [ { to: source_party, due_to: linkage_code, at: Time.now } ], [ :to, :due_to, :at ]
15
+ it_behaves_like 'assert_present!', model, :is_related?, [ { to: source_party, due_to: linkage_code, at: Time.now } ], [ :to, :due_to, :at ]
16
+
13
17
  end
14
18
 
15
19
  end
@@ -19,10 +19,16 @@ describe Unidom::Party::GovernmentAgency, type: :model do
19
19
  }
20
20
 
21
21
  it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
22
- it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes
23
- it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes
24
22
 
25
- it_behaves_like 'validates text', model_attributes, :name, length: 2..described_class.columns_hash['name'].limit
23
+ target_party = described_class.create! model_attributes
24
+ source_party = described_class.create! model_attributes
25
+ linkage_code = 'SELF'
26
+
27
+ it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes, target_party, linkage_code
28
+ it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes, source_party, linkage_code
29
+
30
+ it_behaves_like 'validates text', model_attributes, :name,
31
+ length: 2..described_class.columns_hash['name'].limit
26
32
 
27
33
  end
28
34
 
@@ -16,10 +16,16 @@ describe Unidom::Party::Person, type: :model do
16
16
  }
17
17
 
18
18
  it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
19
- it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes
20
- it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes
21
19
 
22
- it_behaves_like 'validates text', model_attributes, :name, length: 2..described_class.columns_hash['name'].limit
20
+ target_party = described_class.create! model_attributes
21
+ source_party = described_class.create! model_attributes
22
+ linkage_code = 'SELF'
23
+
24
+ it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes, target_party, linkage_code
25
+ it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes, source_party, linkage_code
26
+
27
+ it_behaves_like 'validates text', model_attributes, :name,
28
+ length: 2..described_class.columns_hash['name'].limit
23
29
 
24
30
  end
25
31
 
@@ -16,8 +16,13 @@ describe Unidom::Party::Shop, type: :model do
16
16
  }
17
17
 
18
18
  it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
19
- it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes
20
- it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes
19
+
20
+ target_party = described_class.create! model_attributes
21
+ source_party = described_class.create! model_attributes
22
+ linkage_code = 'SELF'
23
+
24
+ it_behaves_like 'Unidom::Party::Concerns::AsSourceParty', model_attributes, target_party, linkage_code
25
+ it_behaves_like 'Unidom::Party::Concerns::AsTargetParty', model_attributes, source_party, linkage_code
21
26
 
22
27
  it_behaves_like 'validates text', model_attributes, :name,
23
28
  length: 2..described_class.columns_hash['name'].limit
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Party
3
- VERSION = '1.9.6'.freeze
3
+ VERSION = '1.9.7'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-party
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.6
4
+ version: 1.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-07 00:00:00.000000000 Z
11
+ date: 2017-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common