class Tracco::Member

Public Class Methods

build_from(trello_member) click to toggle source
# File lib/tracco/models/member.rb, line 17
def self.build_from(trello_member)
  trello_member_id = trello_member.id
  trello_member.attributes.delete(:id)
  new(trello_member.attributes.merge(trello_id: trello_member_id))
end

Public Instance Methods

==(other) click to toggle source
# File lib/tracco/models/member.rb, line 39
def ==(other)
  return true if other.equal?(self)
  return false unless other.kind_of?(self.class)

  username == other.username
end
at_username() click to toggle source
# File lib/tracco/models/member.rb, line 23
def at_username
  "@#{username}"
end
avatar_url() click to toggle source
# File lib/tracco/models/member.rb, line 27
def avatar_url
  trello_member.avatar_url(size: :small)
end
effort_spent(from_date=nil) click to toggle source
# File lib/tracco/models/member.rb, line 31
def effort_spent(from_date=nil)
  cards = TrackedCard.with_effort_spent_by(username)
  efforts = cards.map(&:efforts).compact.flatten
  efforts = efforts.select {|e| e.date >= from_date} if from_date
  efforts.select { |effort| effort.include?(self) }.inject(0) { |total, effort| total + effort.amount_per_member }
end
Also aliased as: effort_spent_since
effort_spent_since(from_date=nil)
Alias for: effort_spent
eql?(other) click to toggle source
# File lib/tracco/models/member.rb, line 46
def eql?(other)
  return false unless other.instance_of?(self.class)
  username == other.username
end
hash() click to toggle source
# File lib/tracco/models/member.rb, line 51
def hash
  username.hash
end

Private Instance Methods

trello_member() click to toggle source
# File lib/tracco/models/member.rb, line 57
def trello_member
  @trello_member ||= Trello::Member.new("id" => trello_id, "fullName" => full_name, "username" => username,
                                        "avatarHash" => avatar_id, "bio" => bio, "url" => url)
end