class Tracco::Tracking::EffortTracking

Public Instance Methods

add_to(card) click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 6
def add_to(card)
  card.efforts << effort unless card.contains_effort?(effort)
end
effort() click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 10
def effort
  @effort ||= Effort.new(amount: total_effort_from(raw_effort), date: date, members: effort_members, tracking_notification_id: tracking_notification.id)
end

Private Instance Methods

effort_members() click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 25
def effort_members
  @effort_members ||= members_involved_in_the_effort.map do |username|
    Member.build_from(Trello::Member.find(username))
  end
end
members_involved_in_the_effort() click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 31
def members_involved_in_the_effort
  members_involved_in_the_effort = raw_tracking.scan(/@(\w+)/).flatten
  members_involved_in_the_effort << notifier.username unless should_count_only_listed_members?

  members_involved_in_the_effort
end
raw_effort() click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 21
def raw_effort
  extract_match_from_raw_tracking(/\+#{DURATION_REGEXP}/)
end
should_count_only_listed_members?() click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 38
def should_count_only_listed_members?
  raw_tracking =~ /\((@\w+\W*\s*)+\)/
end
total_effort_from(raw_effort) click to toggle source
# File lib/tracco/tracking/effort_tracking.rb, line 16
def total_effort_from(raw_effort)
  effort_amount = convert_to_hours(raw_effort)
  total_effort = effort_amount * effort_members.size
end