unidom-accession 2.3.4 → 2.3.5
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 +4 -4
- data/README.md +24 -0
- data/app/models/unidom/accession/concerns/as_post_fulfilled.rb +6 -4
- data/app/models/unidom/accession/post_fulfillment.rb +3 -1
- data/lib/rspec/models/unidom/accession/post_fulfillment_shared_examples.rb +13 -0
- data/lib/unidom/accession/rspec_shared_examples.rb +1 -0
- data/lib/unidom/accession/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 339bbd7ef3480c595a5e8dd76400f0cc877cb0d3
|
4
|
+
data.tar.gz: afbcb88c986ba663c30deafdf4dd1fc220995ed4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d34a7a17f7a97f66425cfcee48c9156ced1ccf80983f51afaf4767c84185a3ee1818a25c3bf067593cc1c8195675774c18c34c084aeadff701273afd18e0a40f
|
7
|
+
data.tar.gz: 6023424ec20593f9307f52d60a1340afcbee27cd8d6316ec72d2b8fd985ccbbbb7c29614a88e4f2fd2c31351a293bfad6c8291dd5e90e60fea5644f713b942a5
|
data/README.md
CHANGED
@@ -137,6 +137,30 @@ initialize_unidom
|
|
137
137
|
# spec/support/unidom_rspec_shared_examples.rb
|
138
138
|
require 'unidom/accession/rspec_shared_examples'
|
139
139
|
|
140
|
+
# spec/models/unidom/accession/post_fulfillment_spec.rb
|
141
|
+
describe Unidom::Accession::PostFulfillment, type: :model do
|
142
|
+
|
143
|
+
before :each do
|
144
|
+
end
|
145
|
+
|
146
|
+
after :each do
|
147
|
+
end
|
148
|
+
|
149
|
+
context do
|
150
|
+
|
151
|
+
model_attributes = {}
|
152
|
+
|
153
|
+
post_fulfiller = Unidom::Party::Person.create! name: 'Tim'
|
154
|
+
company = Unidom::Party::Company.create! name: 'Space X'
|
155
|
+
occupation = Unidom::Position::Occupation.first_or_create! scheme_id: SecureRandom.uuid, scheme_type: 'Unidom::Accession::Scheme::Mock', code: 'OC-00', name: 'Some Occupation'
|
156
|
+
position = occupation.positions.first_or_create! organization: company, name: occupation.name
|
157
|
+
post_fulfilled = position.posts.first_or_create! organization: company, name: position.name
|
158
|
+
|
159
|
+
it_behaves_like 'Unidom::Accession::PostFulfillment', model_attributes, post_fulfilled, post_fulfiller
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
140
164
|
# spec/models/unidom/party/person_spec.rb
|
141
165
|
describe Unidom::Party::Person do
|
142
166
|
|
@@ -17,11 +17,12 @@ module Unidom::Accession::Concerns::AsPostFulfilled
|
|
17
17
|
# 或者
|
18
18
|
# post.is_fulfilled_as_post! by: tom, at: Time.now
|
19
19
|
def is_fulfilled_as_post!(by: nil, at: Time.now)
|
20
|
+
|
20
21
|
assert_present! :by, by
|
21
22
|
assert_present! :at, at
|
22
|
-
|
23
|
-
#raise ArgumentError.new('The at argument is required.') if at.blank?
|
23
|
+
|
24
24
|
post_fulfillments.create! fulfiller: by, opened_at: at
|
25
|
+
|
25
26
|
end
|
26
27
|
|
27
28
|
##
|
@@ -30,11 +31,12 @@ module Unidom::Accession::Concerns::AsPostFulfilled
|
|
30
31
|
# 或者
|
31
32
|
# post.is_fulfilled_as_post? by: tom, at: Time.now
|
32
33
|
def is_fulfilled_as_post?(by: nil, at: Time.now)
|
34
|
+
|
33
35
|
assert_present! :by, by
|
34
36
|
assert_present! :at, at
|
35
|
-
|
36
|
-
#raise ArgumentError.new('The at argument is required.') if at.blank?
|
37
|
+
|
37
38
|
post_fulfillments.fulfilled_by(by).valid_at(now: at).exists?
|
39
|
+
|
38
40
|
end
|
39
41
|
|
40
42
|
end
|
@@ -20,11 +20,13 @@ class Unidom::Accession::PostFulfillment < Unidom::Accession::ApplicationRecord
|
|
20
20
|
# 将工作岗位 fulfilled 和履行者 fulfiller 在给定的时间 opened_at 关联起来。 opened_at 缺省为当前时间。如:
|
21
21
|
# Unidom::Accession::PostFulfillment.fulfill! fulfilled: post, fulfiller: selected_person
|
22
22
|
def self.fulfill!(fulfilled: nil, fulfiller: nil, opened_at: Time.now)
|
23
|
+
|
23
24
|
assert_present! :fulfilled, fulfilled
|
24
25
|
assert_present! :fulfiller, fulfiller
|
25
26
|
assert_present! :opened_at, opened_at
|
26
27
|
|
27
|
-
|
28
|
+
create! fulfiller: fulfiller, fulfilled: fulfilled, opened_at: opened_at
|
29
|
+
|
28
30
|
end
|
29
31
|
|
30
32
|
end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Accession::PostFulfillment'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
shared_examples 'Unidom::Accession::PostFulfillment' do |model_attributes, fulfilled, fulfiller|
|
2
|
+
|
3
|
+
before :each do
|
4
|
+
end
|
5
|
+
|
6
|
+
after :each do
|
7
|
+
end
|
8
|
+
|
9
|
+
context do
|
10
|
+
it_behaves_like 'assert_present!', described_class, :fulfill!, [ { fulfilled: fulfilled, fulfiller: fulfiller, opened_at: Time.now } ], [ :fulfilled, :fulfiller, :opened_at ]
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unidom-accession
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.5
|
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-
|
11
|
+
date: 2017-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unidom-common
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- db/migrate/20040501000000_create_unidom_post_fulfillments.rb
|
53
53
|
- lib/rspec/models/unidom/accession/concerns/as_post_fulfilled_shared_examples.rb
|
54
54
|
- lib/rspec/models/unidom/accession/concerns/as_post_fulfiller_shared_examples.rb
|
55
|
+
- lib/rspec/models/unidom/accession/post_fulfillment_shared_examples.rb
|
55
56
|
- lib/rspec/models/unidom/accession/post_fulfillment_spec.rb
|
56
57
|
- lib/tasks/accession_tasks.rake
|
57
58
|
- lib/unidom/accession.rb
|