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.1.1 app/models/concerns/renalware/personable.rb
renalware-core-2.1.0 app/models/concerns/renalware/personable.rb
renalware-core-2.0.167 app/models/concerns/renalware/personable.rb
renalware-core-2.0.166 app/models/concerns/renalware/personable.rb
renalware-core-2.0.165 app/models/concerns/renalware/personable.rb
renalware-core-2.0.164 app/models/concerns/renalware/personable.rb
renalware-core-2.0.163 app/models/concerns/renalware/personable.rb
renalware-core-2.0.162 app/models/concerns/renalware/personable.rb
renalware-core-2.0.161 app/models/concerns/renalware/personable.rb
renalware-core-2.0.160 app/models/concerns/renalware/personable.rb
renalware-core-2.0.159 app/models/concerns/renalware/personable.rb
renalware-core-2.0.158 app/models/concerns/renalware/personable.rb
renalware-core-2.0.157 app/models/concerns/renalware/personable.rb
renalware-core-2.0.156 app/models/concerns/renalware/personable.rb
renalware-core-2.0.155 app/models/concerns/renalware/personable.rb
renalware-core-2.0.153 app/models/concerns/renalware/personable.rb
renalware-core-2.0.152 app/models/concerns/renalware/personable.rb
renalware-core-2.0.151 app/models/concerns/renalware/personable.rb
renalware-core-2.0.149 app/models/concerns/renalware/personable.rb
renalware-core-2.0.148 app/models/concerns/renalware/personable.rb