unidom-party 1.5 → 1.6

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: 1057f563c0a9897abb1cfb50a9d81fe68a3eeb1d
4
- data.tar.gz: d485cba734c97ab3aaa54edec1e3e9063ed4648a
3
+ metadata.gz: f27f34bb20b80585520c786cfb813e9218788f57
4
+ data.tar.gz: 7785f0f54cd08dbb8cbcd56ce83853537ab70d4b
5
5
  SHA512:
6
- metadata.gz: 5d80fbbff8f48215185d941d7a2fa876d4c4ac7aee30799b2e85da4e9b1326b71b5028a82cacb6eac9ff90de525e1454d06f583a184d61e10cc7c934444eb14b
7
- data.tar.gz: d1bbab9d8d7c7f16178c0a0c118efc2e1dda0e3e409a378f55312e0afbbde6f5eef7f871e1510fb0517388c97b1a1ac2349c83f4d813b8451002a167ba859e18
6
+ metadata.gz: 4b9a3349edf2e3d6975beaa2896fa0ffc84f206488b9bd73a57c3db589fb07c8ef8a6b7e2e4c6afc0d9a531fe0221362a03e205749fd348403da2a3567998ee0
7
+ data.tar.gz: c55824e0f21a5e5a45c1c4fb36aa6dae604a6f51eb0f7a36e6efbb0a835752de73f324c9d1c90971c656f4b3377deea4987b2468c3c6349f86048d70d8673824
data/README.md CHANGED
@@ -87,9 +87,12 @@ The As Target Party concern do the following tasks for the includer automaticall
87
87
  ### As Collaboration concern
88
88
 
89
89
  The As Collaboration concern do the following tasks for the includer automatically:
90
- 1. Define the has_many :collaboratings macro as: ``has_many :collaboratings, class_name: 'Unidom::Party::Collaborating', as: :collaboration``
90
+ 1. Define the has_many :collaboratings macro as: ``has_many :collaboratings, class_name: 'Unidom::Party::Collaborating', as: :collaboration``
91
+ 2. Define the #is_collaborated! method as: ``is_collaborated!(by: nil, as: nil, at: Time.now, name: nil, priority: 0, grade: 0)``
91
92
 
92
93
  ### As Collaborator concern
93
94
 
94
95
  The As Collaborator concern do the following tasks for the includer automatically:
95
- 1. Define the has_many :collaboratings macro as: ``has_many :collaboratings, class_name: 'Unidom::Party::Collaborating', as: :collaborator``
96
+ 1. Define the has_many :collaboratings macro as: ``has_many :collaboratings, class_name: 'Unidom::Party::Collaborating', as: :collaborator``
97
+ 2. Define the #collaborate! method as: ``collaborate!(on: nil, as: nil, at: Time.now, name: nil, priority: 0, grade: 0)``
98
+
@@ -6,6 +6,28 @@ module Unidom::Party::Concerns::AsCollaboration
6
6
 
7
7
  has_many :collaboratings, class_name: 'Unidom::Party::Collaborating', as: :collaboration
8
8
 
9
+ def is_collaborated!(by: nil, as: nil, at: Time.now, name: nil, priority: 0, grade: 0)
10
+ collaborating = collaboratings.collaborated_by(by).role_coded_as(as).valid_at(now: at).alive.first
11
+ if collaborating.present?
12
+ collaborating.attributes = { name: name, priority: priority, grade: grade }
13
+ collaborating.save!
14
+ else
15
+ collaborating = collaboratings.create! collaborator: by, role_code: as, name: name, priority: priority, grade: grade, opened_at: at
16
+ end
17
+ collaborating
18
+ end
19
+
20
+ =begin
21
+ def is_collaborated?(by: nil, as: nil, at: Time.now, priority: nil, grade: nil)
22
+ query = collaboratings
23
+ query = query.collaborated_by by if by.present?
24
+ query = query.role_coded_as as if as.present?
25
+ query = query.priority_is priority if priority.present?
26
+ query = query.grade_is grade if grade.present?
27
+ query.valid_at(now: at).alive.exists?
28
+ end
29
+ =end
30
+
9
31
  end
10
32
 
11
33
  module ClassMethods
@@ -6,6 +6,28 @@ module Unidom::Party::Concerns::AsCollaborator
6
6
 
7
7
  has_many :collaboratings, class_name: 'Unidom::Party::Collaborating', as: :collaborator
8
8
 
9
+ def collaborate!(on: nil, as: nil, at: Time.now, name: nil, priority: 0, grade: 0)
10
+ collaborating = collaboratings.collaboration_is(on).role_coded_as(as).valid_at(now: at).alive.first
11
+ if collaborating.present?
12
+ collaborating.attributes = { name: name, priority: priority, grade: grade }
13
+ collaborating.save!
14
+ else
15
+ collaborating = collaboratings.create! collaboration: on, role_code: as, name: name, priority: priority, grade: grade, opened_at: at
16
+ end
17
+ collaborating
18
+ end
19
+
20
+ =begin
21
+ def collaborate?(on: nil, as: nil, at: Time.now, priority: nil, grade: nil)
22
+ query = collaboratings
23
+ query = query.collaboration_is on if on.present?
24
+ query = query.role_coded_as as if as.present?
25
+ query = query.priority_is priority if priority.present?
26
+ query = query.grade_is grade if grade.present?
27
+ query.valid_at(now: at).alive.exists?
28
+ end
29
+ =end
30
+
9
31
  end
10
32
 
11
33
  module ClassMethods
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Party
3
- VERSION = '1.5'.freeze
3
+ VERSION = '1.6'.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.5'
4
+ version: '1.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-08 00:00:00.000000000 Z
11
+ date: 2016-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common