Sha256: 392f46ce4972c6cbe1e8440404e0ce2784e29572ed3673cc4a2018f7a4aa4ae9

Contents?: true

Size: 1.48 KB

Versions: 5

Compression:

Stored size: 1.48 KB

Contents

require 'taskwarrior-web/config'

module TaskwarriorWeb
  class App < Sinatra::Base
    module Helpers

      def format_date(timestamp)
        format = TaskwarriorWeb::Config.dateformat || 'm/d/Y'
        subbed = format.gsub(/([a-zA-Z])/, '%\1')
        Time.parse(timestamp).strftime(subbed)
      end

      def colorize_date(timestamp)
        return if timestamp.nil?
        due_def = TaskwarriorWeb::Config.due.to_i || 5
        time = Time.parse(timestamp)
        case true
          when Time.now.strftime('%D') == time.strftime('%D') then 'success'
          when Time.now.to_i > time.to_i then 'error'
          when (time.to_i - Time.now.to_i) < (due_def * 86400) then 'info'
          else 'regular'
        end
      end

      def linkify(item, method)
        return if item.nil?
        case method.to_s
          when 'project'
            item.gsub('.', '--')
        end
      end

      def auto_link(text)
        Rinku.auto_link(text, :all, 'target="_blank"')
      end

      def subnav(type)
        case type
          when 'tasks' then
            { '/tasks/pending' => "Pending <span class=\"badge\">#{TaskwarriorWeb::Task.count(:status => :pending)}</span>",
              '/tasks/waiting' => "Waiting",
              '/tasks/completed' => "Completed",
              '/tasks/deleted' => 'Deleted'
            }
          when 'projects'
            {
              '/projects/overview' => 'Overview'
            }
          else
            { }
        end
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
taskwarrior-web-1.0.7 lib/taskwarrior-web/helpers.rb
taskwarrior-web-1.0.6 lib/taskwarrior-web/helpers.rb
taskwarrior-web-1.0.5 lib/taskwarrior-web/helpers.rb
taskwarrior-web-1.0.4 lib/taskwarrior-web/helpers.rb
taskwarrior-web-1.0.3 lib/taskwarrior-web/helpers.rb