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
         |