Class: Usps::Support::Models::Hq::Members::Member

Inherits:
BaseRecord show all
Defined in:
lib/usps/support/models/hq/members/member.rb

Overview

Regular member record

Constant Summary collapse

INVALID_RANKS =
[0, 99].freeze

Instance Method Summary collapse

Methods inherited from SharedRecord

allow_hq_database_edits?, ignore_type_column_sti!

Instance Method Details

#accountsObject



64
# File 'lib/usps/support/models/hq/members/member.rb', line 64

def accounts = (squadron_jobs.pluck(:account) + []).uniq.map(&:to_s)

#admin?Boolean

Returns:

  • (Boolean)


89
# File 'lib/usps/support/models/hq/members/member.rb', line 89

def admin? = certificate.in?(ENV['ADMIN_CERTIFICATES'].split(','))

#as_associateObject



61
# File 'lib/usps/support/models/hq/members/member.rb', line 61

def as_associate = clone.tap { it.instance_variable_set(:@associate, true) }

#associate?Boolean

Returns:

  • (Boolean)


62
# File 'lib/usps/support/models/hq/members/member.rb', line 62

def associate? = @associate.present?

#district_accountsObject



66
# File 'lib/usps/support/models/hq/members/member.rb', line 66

def district_accounts = district.squadrons.pluck(:account)

#full_nameObject



78
79
80
81
82
83
# File 'lib/usps/support/models/hq/members/member.rb', line 78

def full_name
  [
    [rank, first, last].join(' '),
    grade.presence
  ].compact.join(', ')
end

#mailing_addressObject



91
92
93
94
95
96
97
98
# File 'lib/usps/support/models/hq/members/member.rb', line 91

def mailing_address
  [
    full_name,
    address1,
    address2,
    ["#{city}, #{state} #{zip5}", zip4].compact_blank.join('-')
  ].compact_blank
end

#rankObject



68
69
70
71
72
73
74
75
76
# File 'lib/usps/support/models/hq/members/member.rb', line 68

def rank
  return @rank if @rank

  raw_rank = read_attribute(:rank)
  return if raw_rank.in?(INVALID_RANKS)

  normalized_rank = raw_rank.to_s.rjust(2, '0')
  @rank = Members::Rank.find(normalized_rank).RankAbbr
end

#simple_nameObject



85
# File 'lib/usps/support/models/hq/members/member.rb', line 85

def simple_name = [first, last].join(' ')

#sort_nameObject



87
# File 'lib/usps/support/models/hq/members/member.rb', line 87

def sort_name = "#{last}, #{first}"