class Durt::Issue
Public Instance Methods
estimation_ratio()
click to toggle source
# File lib/durt/issue.rb, line 39 def estimation_ratio return Float::INFINITY if total_tracked_time.zero? estimate.to_f / total_tracked_time end
estimation_result_label()
click to toggle source
# File lib/durt/issue.rb, line 71 def estimation_result_label return 'Underestimated' if underestimated? return 'Overestimated' if overestimated? 'Who are you?' end
label()
click to toggle source
# File lib/durt/issue.rb, line 78 def label "[#{key}]" end
overestimated?()
click to toggle source
# File lib/durt/issue.rb, line 45 def overestimated? estimation_ratio > 1 end
plugin()
click to toggle source
# File lib/durt/issue.rb, line 27 def plugin project.plugins.find { |p| p.plugin_name == source } end
puts_stats()
click to toggle source
# File lib/durt/issue.rb, line 67 def puts_stats puts stats end
start_tracking!()
click to toggle source
# File lib/durt/issue.rb, line 18 def start_tracking! if tracking? puts 'Already tracking' return sessions.tracking.last end sessions.create(open_at: Time.now) end
stats()
click to toggle source
Presenters
# File lib/durt/issue.rb, line 55 def stats <<~MSG -- #{self} -- Estimated: #{ChronicDuration.output(estimate || 0, format: :long)}. Tracked: #{ChronicDuration.output(total_tracked_time, format: :long)}. Estimation ratio: #{estimation_ratio} (#{estimation_result_label}) ----------------------------------- MSG end
stop_tracking!()
click to toggle source
# File lib/durt/issue.rb, line 31 def stop_tracking! sessions.tracking.update_all(closed_at: Time.now) end
to_s()
click to toggle source
# File lib/durt/issue.rb, line 82 def to_s "#{label} #{summary}" end
total_tracked_time()
click to toggle source
# File lib/durt/issue.rb, line 35 def total_tracked_time sessions.map(&:tracked_time).sum end
tracking?()
click to toggle source
# File lib/durt/issue.rb, line 14 def tracking? !sessions.tracking.empty? end
underestimated?()
click to toggle source
# File lib/durt/issue.rb, line 49 def underestimated? estimation_ratio < 1 end
Private Instance Methods
sanitize_summary()
click to toggle source
# File lib/durt/issue.rb, line 88 def sanitize_summary return unless summary self.summary = summary.gsub(/[^\d\w\s,]/i, '') end