Sha256: aacbff90f749e00caedc17a9096dc28ed97858eb6eda437e2e538b7091809836

Contents?: true

Size: 953 Bytes

Versions: 149

Compression:

Stored size: 953 Bytes

Contents

# frozen_string_literal: true

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

149 entries across 149 versions & 1 rubygems

Version Path
renalware-core-2.0.147 app/models/concerns/renalware/personable.rb
renalware-core-2.0.146 app/models/concerns/renalware/personable.rb
renalware-core-2.0.145 app/models/concerns/renalware/personable.rb
renalware-core-2.0.144 app/models/concerns/renalware/personable.rb
renalware-core-2.0.143 app/models/concerns/renalware/personable.rb
renalware-core-2.0.142 app/models/concerns/renalware/personable.rb
renalware-core-2.0.141 app/models/concerns/renalware/personable.rb
renalware-core-2.0.140 app/models/concerns/renalware/personable.rb
renalware-core-2.0.139 app/models/concerns/renalware/personable.rb
renalware-core-2.0.138 app/models/concerns/renalware/personable.rb
renalware-core-2.0.137 app/models/concerns/renalware/personable.rb
renalware-core-2.0.136 app/models/concerns/renalware/personable.rb
renalware-core-2.0.135 app/models/concerns/renalware/personable.rb
renalware-core-2.0.134 app/models/concerns/renalware/personable.rb
renalware-core-2.0.133 app/models/concerns/renalware/personable.rb
renalware-core-2.0.132 app/models/concerns/renalware/personable.rb
renalware-core-2.0.131 app/models/concerns/renalware/personable.rb
renalware-core-2.0.130 app/models/concerns/renalware/personable.rb
renalware-core-2.0.129 app/models/concerns/renalware/personable.rb
renalware-core-2.0.128 app/models/concerns/renalware/personable.rb