effective_memberships 0.6.2 → 0.6.3
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d93c9f826d21228e86c0b10e7f30453ba7201dd00e9eab65f9b332850d4cfd6
|
4
|
+
data.tar.gz: 75520c50d89f83b7f2f0657efcd3f581b058ab2af756640bccb6d5bf4fb66207
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e63960291256ab28e1ae9e4a8e1949cabaf24d31ded3bdd2e74c5240ba6539431e24bf6bac5161f933b92243db98dde91cbada1f654ced95bd4725f0583d2677
|
7
|
+
data.tar.gz: 20ac5d9b6a2f1021b2df5391aa6751f48061cd9c672709870eeb303e17205968d57121089b2d851596b4e2780fe2fa903f61cfeb9969aa91ab11202f03e7eb46
|
@@ -53,7 +53,6 @@ module EffectiveMembershipsRegistrar
|
|
53
53
|
|
54
54
|
# Default Date and next number
|
55
55
|
date ||= Time.zone.now
|
56
|
-
number = next_membership_number(owner, to: categories.first) if number.blank?
|
57
56
|
period = period(date: date)
|
58
57
|
period_end_on = period_end_on(date: date)
|
59
58
|
|
@@ -63,7 +62,8 @@ module EffectiveMembershipsRegistrar
|
|
63
62
|
# Assign Dates
|
64
63
|
membership.joined_on ||= date # Only if not already present
|
65
64
|
|
66
|
-
# Assign Number
|
65
|
+
# Assign Number (this could be nil)
|
66
|
+
number = next_membership_number(owner, to: categories.first) if number.blank?
|
67
67
|
membership.number ||= number
|
68
68
|
membership.number_as_integer ||= (Integer(number) rescue nil)
|
69
69
|
|
@@ -111,7 +111,6 @@ module EffectiveMembershipsRegistrar
|
|
111
111
|
|
112
112
|
# Default Date and next number
|
113
113
|
date ||= Time.zone.now
|
114
|
-
number = next_membership_number(owner, to: to) if number.blank?
|
115
114
|
period = period(date: date)
|
116
115
|
period_end_on = period_end_on(date: date)
|
117
116
|
|
@@ -122,7 +121,8 @@ module EffectiveMembershipsRegistrar
|
|
122
121
|
membership.joined_on ||= date # Only if not already present
|
123
122
|
membership.registration_on = date # Always new registration_on
|
124
123
|
|
125
|
-
# Assign Number
|
124
|
+
# Assign Number (this could be nil)
|
125
|
+
number = next_membership_number(owner, to: to) if number.blank?
|
126
126
|
membership.number = number
|
127
127
|
membership.number_as_integer = (Integer(number) rescue nil)
|
128
128
|
|
@@ -305,7 +305,11 @@ module EffectiveMembershipsRegistrar
|
|
305
305
|
|
306
306
|
def next_membership_number(owner, to:)
|
307
307
|
raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
|
308
|
-
|
308
|
+
|
309
|
+
categories = Array(to)
|
310
|
+
raise('expecting a membership category') unless categories.all? { |cat| cat.class.respond_to?(:effective_memberships_category?) }
|
311
|
+
|
312
|
+
return nil if categories.none?(&:membership_number_required?)
|
309
313
|
|
310
314
|
# Just a simple number right now
|
311
315
|
number = (Effective::Membership.all.max_number || 0) + 1
|
@@ -51,10 +51,12 @@ module Effective
|
|
51
51
|
end
|
52
52
|
|
53
53
|
before_validation(if: -> { number_changed? }) do
|
54
|
-
self.number_as_integer = (Integer(number) rescue nil)
|
54
|
+
self.number_as_integer = (number.present? ? (Integer(number) rescue nil) : nil)
|
55
55
|
end
|
56
56
|
|
57
|
-
validates :number,
|
57
|
+
validates :number, uniqueness: { allow_blank: true }
|
58
|
+
validates :number, presence: true, if: -> { categories.any?(:membership_number_required?) }
|
59
|
+
|
58
60
|
validates :joined_on, presence: true
|
59
61
|
validates :registration_on, presence: true
|
60
62
|
validates :membership_categories, presence: true
|
@@ -80,7 +82,7 @@ module Effective
|
|
80
82
|
(statuses.to_sentence if statuses.present?),
|
81
83
|
(categories.to_sentence if categories.present?),
|
82
84
|
'member',
|
83
|
-
"##{number_was}",
|
85
|
+
("##{number_was}" if number_was.present?),
|
84
86
|
"who joined #{joined_on&.strftime('%F') || '-'}",
|
85
87
|
("and last registered #{registration_on.strftime('%F')}" if registration_on > joined_on),
|
86
88
|
(". Membership is Not In Good Standing because #{bad_standing_reason}" if bad_standing?)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_memberships
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|