Sha256: d437c104a908e90c0193ec070832fc77800f40e3b0c92bfbb9ba9f9d3aae9f18

Contents?: true

Size: 922 Bytes

Versions: 9

Compression:

Stored size: 922 Bytes

Contents

module Renalware
  module Personable
    extend ActiveSupport::Concern

    included do
      class_eval do
        validates :family_name, presence: true
        validates :given_name,
                  presence: {
                    unless: lambda {
                      defined?(skip_given_name_validation?) && skip_given_name_validation?
                    }
                  }
      end

      def full_name
        [given_name, family_name].compact.join(" ")
      end

      def to_s(format = :default)
        case format
        when :default
          [family_name, given_name].compact.join(", ")
        when :long
          "#{family_name}, #{given_name} (#{nhs_number})"
        end
      end

      def salutation
        parts = [Renalware.config.salutation_prefix]
        parts << (title.presence || given_name)
        parts << family_name
        parts.compact.join(" ")
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
renalware-core-2.0.8 app/models/concerns/renalware/personable.rb
renalware-core-2.0.7 app/models/concerns/renalware/personable.rb
renalware-core-2.0.5 app/models/concerns/renalware/personable.rb
renalware-core-2.0.4 app/models/concerns/renalware/personable.rb
renalware-core-2.0.3 app/models/concerns/renalware/personable.rb
renalware-core-2.0.2 app/models/concerns/renalware/personable.rb
renalware-core-2.0.1 app/models/concerns/renalware/personable.rb
renalware-core-2.0.0 app/models/concerns/renalware/personable.rb
renalware-core-2.0.0.pre.rc13 app/models/concerns/renalware/personable.rb