Class: Member
- Inherits:
-
Object
- Object
- Member
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- lib/trello_effort_tracker/member.rb
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #at_username ⇒ Object
- #avatar_url ⇒ Object
- #effort_spent(from_date = nil) ⇒ Object (also: #effort_spent_since)
- #eql?(other) ⇒ Boolean
- #hash ⇒ Object
Class Method Details
.build_from(trello_member) ⇒ Object
16 17 18 19 20 |
# File 'lib/trello_effort_tracker/member.rb', line 16 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 |
Instance Method Details
#==(other) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/trello_effort_tracker/member.rb', line 38 def ==(other) return true if other.equal?(self) return false unless other.kind_of?(self.class) username == other.username end |
#at_username ⇒ Object
22 23 24 |
# File 'lib/trello_effort_tracker/member.rb', line 22 def at_username "@#{username}" end |
#avatar_url ⇒ Object
26 27 28 |
# File 'lib/trello_effort_tracker/member.rb', line 26 def avatar_url trello_member.avatar_url(size: :small) end |
#effort_spent(from_date = nil) ⇒ Object Also known as: effort_spent_since
30 31 32 33 34 35 |
# File 'lib/trello_effort_tracker/member.rb', line 30 def effort_spent(from_date=nil) cards = TrackedCard.where("efforts.members.username" => 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 |
#eql?(other) ⇒ Boolean
45 46 47 48 |
# File 'lib/trello_effort_tracker/member.rb', line 45 def eql?(other) return false unless other.instance_of?(self.class) username == other.username end |
#hash ⇒ Object
50 51 52 |
# File 'lib/trello_effort_tracker/member.rb', line 50 def hash username.hash end |