Sha256: 723f013d86f014cbb8e9c4ea3ecfaaa2accb66d034db57a026b5ca586ae0d128
Contents?: true
Size: 1.56 KB
Versions: 5
Compression:
Stored size: 1.56 KB
Contents
require 'active_support/core_ext/module/delegation' require 'todo-txt/task' require 'redpomo/tracker' module Todo class Task def self.projects_regex /(?:\s+|^)\+[\w\-]+/ end end end module Redpomo class Task delegate :orig, to: :@task ISSUES_REGEXP = /(?:\s+|^)#[0-9]+/ def initialize(list, text) @task = Todo::Task.new(text) @list = list end def context @task.contexts.map do |context| context.gsub /^@/, '' end.first end def project @task.projects.map do |context| context.gsub /^\+/, '' end.first end def issue orig.scan(ISSUES_REGEXP).map(&:strip).map do |issue| issue.gsub(/^#/, '').to_i end.first end def text @task.text.gsub(ISSUES_REGEXP, '').strip end def close_issue!(message = nil) tracker.close_issue!(issue, message) end def done! @list.remove!(self) end def open_in_browser! require 'launchy' Launchy.open(url) end def start_pomodoro! require 'applescript' command = 'tell application "Pomodoro" to start "' command << orig command << '"' AppleScript.execute(command) end def url return nil unless tracker.present? if issue.present? "#{tracker.base_url}/issues/#{issue}" elsif project.present? "#{tracker.base_url}/projects/#{project}" else "#{tracker.base_url}/projects/#{tracker.default_project}" end end def tracker Tracker.find(context) end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
redpomo-0.0.5 | lib/redpomo/task.rb |
redpomo-0.0.4 | lib/redpomo/task.rb |
redpomo-0.0.3 | lib/redpomo/task.rb |
redpomo-0.0.2 | lib/redpomo/task.rb |
redpomo-0.0.1 | lib/redpomo/task.rb |