taskwarrior-web 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +9 -0
- data/lib/taskwarrior-web.rb +5 -3
- data/lib/taskwarrior-web/app.rb +18 -9
- data/lib/taskwarrior-web/config/navigation.rb +18 -0
- data/lib/taskwarrior-web/helpers.rb +0 -23
- data/lib/taskwarrior-web/{command.rb → model/command.rb} +0 -0
- data/lib/taskwarrior-web/{config.rb → model/config.rb} +0 -0
- data/lib/taskwarrior-web/{task.rb → model/task.rb} +8 -9
- data/lib/taskwarrior-web/public/js/application.js +1 -0
- data/lib/taskwarrior-web/views/_subnav.erb +1 -7
- data/lib/taskwarrior-web/views/_topbar.erb +1 -6
- data/lib/taskwarrior-web/views/projects.erb +2 -2
- data/spec/app/app_spec.rb +1 -0
- data/spec/app/helpers_spec.rb +0 -6
- data/spec/{models → model}/command_spec.rb +1 -1
- data/spec/{models → model}/config_spec.rb +1 -1
- data/spec/{models → model}/task_spec.rb +1 -1
- data/spec/services/builder/base_spec.rb +1 -1
- data/spec/services/builder/v1_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- data/taskwarrior-web.gemspec +3 -1
- metadata +53 -30
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## v1.0.10 (11/20/12)
|
2
|
+
|
3
|
+
* Adding ability to specify a filter for the task listing. See [the wiki][1]
|
4
|
+
for more information.
|
5
|
+
* Added the SimpleNavigation library for navigation, and moved a bunch of stuff
|
6
|
+
to ActiveSupport.
|
7
|
+
|
8
|
+
[1]: http://github.com/theunraveler/taskwarrior-web/wiki/Filters-for-the-task-listing-page
|
9
|
+
|
1
10
|
## v1.0.9 (11/19/12)
|
2
11
|
|
3
12
|
* Fixed bug on projects listing page where projects with no pending tasks were
|
data/lib/taskwarrior-web.rb
CHANGED
@@ -2,13 +2,15 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
|
+
require 'active_support/core_ext/object/blank'
|
6
|
+
require 'active_support/core_ext/string/inflections'
|
5
7
|
|
6
8
|
module TaskwarriorWeb
|
7
9
|
autoload :App, 'taskwarrior-web/app'
|
8
10
|
autoload :Helpers, 'taskwarrior-web/helpers'
|
9
|
-
autoload :Task, 'taskwarrior-web/task'
|
10
|
-
autoload :Config, 'taskwarrior-web/config'
|
11
|
-
autoload :Command, 'taskwarrior-web/command'
|
11
|
+
autoload :Task, 'taskwarrior-web/model/task'
|
12
|
+
autoload :Config, 'taskwarrior-web/model/config'
|
13
|
+
autoload :Command, 'taskwarrior-web/model/command'
|
12
14
|
autoload :CommandBuilder, 'taskwarrior-web/services/builder'
|
13
15
|
autoload :Runner, 'taskwarrior-web/services/runner'
|
14
16
|
autoload :Parser, 'taskwarrior-web/services/parser'
|
data/lib/taskwarrior-web/app.rb
CHANGED
@@ -5,6 +5,7 @@ require 'erb'
|
|
5
5
|
require 'time'
|
6
6
|
require 'rinku'
|
7
7
|
require 'digest'
|
8
|
+
require 'sinatra/simple-navigation'
|
8
9
|
|
9
10
|
class TaskwarriorWeb::App < Sinatra::Base
|
10
11
|
autoload :Helpers, 'taskwarrior-web/helpers'
|
@@ -14,6 +15,10 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
14
15
|
set :app_file, __FILE__
|
15
16
|
set :public_folder, File.dirname(__FILE__) + '/public'
|
16
17
|
set :views, File.dirname(__FILE__) + '/views'
|
18
|
+
|
19
|
+
# Helpers
|
20
|
+
helpers Helpers
|
21
|
+
register Sinatra::SimpleNavigation
|
17
22
|
|
18
23
|
def protected!
|
19
24
|
response['WWW-Authenticate'] = %(Basic realm="Taskworrior Web") and throw(:halt, [401, "Not authorized\n"]) and return unless authorized?
|
@@ -31,9 +36,6 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
31
36
|
protected! if TaskwarriorWeb::Config.property('task-web.user')
|
32
37
|
end
|
33
38
|
|
34
|
-
# Helpers
|
35
|
-
helpers Helpers
|
36
|
-
|
37
39
|
# Redirects
|
38
40
|
get '/' do
|
39
41
|
redirect '/tasks/pending'
|
@@ -46,8 +48,12 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
46
48
|
get '/tasks/:status/?' do
|
47
49
|
pass unless ['pending', 'waiting', 'completed', 'deleted'].include?(params[:status])
|
48
50
|
@title = "Tasks"
|
49
|
-
|
50
|
-
|
51
|
+
if params[:status] == 'pending' && filter = TaskwarriorWeb::Config.property('task-web.filter')
|
52
|
+
@tasks = TaskwarriorWeb::Task.query(:description => filter)
|
53
|
+
else
|
54
|
+
@tasks = TaskwarriorWeb::Task.find_by_status(params[:status])
|
55
|
+
end
|
56
|
+
@tasks.sort_by! { |x| [x.priority.nil?.to_s, x.priority.to_s, x.due.nil?.to_s, x.due.to_s, x.project.to_s] }
|
51
57
|
erb :listing
|
52
58
|
end
|
53
59
|
|
@@ -65,7 +71,7 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
65
71
|
redirect '/tasks'
|
66
72
|
end
|
67
73
|
|
68
|
-
@messages = @task.
|
74
|
+
@messages = @task._errors.map { |error| { :severity => 'alert-error', :message => error } }
|
69
75
|
call! env.merge('REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/tasks/new')
|
70
76
|
end
|
71
77
|
|
@@ -76,7 +82,6 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
76
82
|
|
77
83
|
get '/projects/overview/?' do
|
78
84
|
@title = 'Projects'
|
79
|
-
@subnav = subnav('projects')
|
80
85
|
@tasks = TaskwarriorWeb::Task.query('status.not' => :deleted, 'project.not' => '')
|
81
86
|
.sort_by! { |x| [x.priority.nil?.to_s, x.priority.to_s, x.due.nil?.to_s, x.due.to_s] }
|
82
87
|
.group_by { |x| x.project.to_s }
|
@@ -85,7 +90,6 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
85
90
|
end
|
86
91
|
|
87
92
|
get '/projects/:name/?' do
|
88
|
-
@subnav = subnav('projects')
|
89
93
|
subbed = params[:name].gsub('--', '.')
|
90
94
|
@tasks = TaskwarriorWeb::Task.query('status.not' => 'deleted', :project => subbed)
|
91
95
|
.sort_by! { |x| [x.priority.nil?.to_s, x.priority.to_s, x.due.nil?.to_s, x.due.to_s] }
|
@@ -99,7 +103,12 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
99
103
|
end
|
100
104
|
|
101
105
|
get '/ajax/count/?' do
|
102
|
-
TaskwarriorWeb::
|
106
|
+
if filter = TaskwarriorWeb::Config.property('task-web.filter')
|
107
|
+
total = TaskwarriorWeb::Task.query(:description => filter).count
|
108
|
+
else
|
109
|
+
total = TaskwarriorWeb::Task.count(:status => :pending)
|
110
|
+
end
|
111
|
+
total.to_s
|
103
112
|
end
|
104
113
|
|
105
114
|
post '/ajax/task-complete/:id/?' do
|
@@ -0,0 +1,18 @@
|
|
1
|
+
SimpleNavigation::Configuration.run do |navigation|
|
2
|
+
navigation.selected_class = 'active'
|
3
|
+
|
4
|
+
navigation.items do |primary|
|
5
|
+
primary.dom_class = 'nav'
|
6
|
+
primary.item :tasks, 'Tasks', '/tasks' do |tasks|
|
7
|
+
tasks.dom_class = 'nav nav-pills'
|
8
|
+
tasks.item :pending, "Pending <span class=\"badge\"></span>", '/tasks/pending'
|
9
|
+
tasks.item :waiting, 'Waiting', '/tasks/waiting'
|
10
|
+
tasks.item :completed, 'Completed', '/tasks/completed'
|
11
|
+
tasks.item :deleted, 'Deleted', '/tasks/deleted'
|
12
|
+
end
|
13
|
+
primary.item :projects, 'Projects', '/projects' do |projects|
|
14
|
+
projects.dom_class = 'nav nav-pills'
|
15
|
+
projects.item :overview, 'Overview', '/projects/overview'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -23,30 +23,7 @@ module TaskwarriorWeb::App::Helpers
|
|
23
23
|
item.gsub('.', '--')
|
24
24
|
end
|
25
25
|
|
26
|
-
def idify(item)
|
27
|
-
return if item.nil?
|
28
|
-
linkify(item).gsub(' ', '-').gsub("'", '').downcase
|
29
|
-
end
|
30
|
-
|
31
26
|
def auto_link(text)
|
32
27
|
Rinku.auto_link(text, :all, 'target="_blank"')
|
33
28
|
end
|
34
|
-
|
35
|
-
def subnav(type)
|
36
|
-
case type
|
37
|
-
when 'tasks'
|
38
|
-
{ '/tasks/pending' => "Pending <span class=\"badge\">#{TaskwarriorWeb::Task.count(:status => :pending)}</span>",
|
39
|
-
'/tasks/waiting' => "Waiting",
|
40
|
-
'/tasks/completed' => "Completed",
|
41
|
-
'/tasks/deleted' => 'Deleted'
|
42
|
-
}
|
43
|
-
when 'projects'
|
44
|
-
{
|
45
|
-
'/projects/overview' => 'Overview'
|
46
|
-
}
|
47
|
-
else
|
48
|
-
{ }
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
29
|
end
|
File without changes
|
File without changes
|
@@ -7,7 +7,7 @@ module TaskwarriorWeb
|
|
7
7
|
|
8
8
|
attr_accessor :entry, :project, :priority, :uuid, :description, :status,
|
9
9
|
:due, :start, :end, :tags, :depends, :wait, :annotations,
|
10
|
-
:
|
10
|
+
:_errors
|
11
11
|
alias :annotate= :annotations=
|
12
12
|
|
13
13
|
####################################
|
@@ -17,7 +17,10 @@ module TaskwarriorWeb
|
|
17
17
|
def initialize(attributes = {})
|
18
18
|
attributes.each do |attr, value|
|
19
19
|
send("#{attr}=", value) if respond_to?(attr.to_sym)
|
20
|
-
end
|
20
|
+
end
|
21
|
+
|
22
|
+
@_errors = []
|
23
|
+
@tags = [] if @tags.nil?
|
21
24
|
end
|
22
25
|
|
23
26
|
def save!
|
@@ -29,21 +32,17 @@ module TaskwarriorWeb
|
|
29
32
|
end
|
30
33
|
|
31
34
|
# Make sure that the tags are an array.
|
32
|
-
def tags
|
33
|
-
@tags ? @tags : []
|
34
|
-
end
|
35
35
|
def tags=(value)
|
36
36
|
@tags = value.is_a?(String) ? value.split(/\W+/).reject(&:empty?) : value
|
37
37
|
end
|
38
38
|
|
39
39
|
def is_valid?
|
40
|
-
self.
|
41
|
-
|
42
|
-
self.errors.empty?
|
40
|
+
@_errors << 'You must provide a description' if self.description.blank?
|
41
|
+
@_errors.empty?
|
43
42
|
end
|
44
43
|
|
45
44
|
def to_hash
|
46
|
-
Hash[instance_variables.map { |var| [var[1..-1].to_sym, instance_variable_get(var)] }]
|
45
|
+
Hash[instance_variables.select { |var| !var.to_s.start_with?('@_') }.map { |var| [var[1..-1].to_sym, instance_variable_get(var)] }]
|
47
46
|
end
|
48
47
|
|
49
48
|
##################################
|
@@ -1,13 +1,7 @@
|
|
1
1
|
<div class="page-header" id="subnav-bar">
|
2
2
|
<h1 class="pull-left"><%= @title %></h1>
|
3
|
-
<% if @subnav %>
|
4
3
|
<nav class="subnav pull-right">
|
5
|
-
|
6
|
-
<% @subnav.each do |path, text| %>
|
7
|
-
<li<%= ' class="active"' if @current_page.index(path) == 0 %>><a href="<%= path %>"><%= text %></a></li>
|
8
|
-
<% end %>
|
9
|
-
</ul>
|
10
|
-
<% end %>
|
4
|
+
<%= render_navigation :level => 2 %>
|
11
5
|
</nav>
|
12
6
|
<div class="clear"></div>
|
13
7
|
</div>
|
@@ -1,12 +1,7 @@
|
|
1
1
|
<div class="navbar navbar-fixed-top">
|
2
2
|
<div class="navbar-inner"><div class="container">
|
3
3
|
<a href="/" class="brand">Taskwarrior Web</a>
|
4
|
-
|
5
|
-
<ul class="nav">
|
6
|
-
<% tabs.each do |path, text| %>
|
7
|
-
<li<%= ' class="active"' if @current_page.index(path) == 0 %>><a href="<%= path %>"><%= text %></a></li>
|
8
|
-
<% end %>
|
9
|
-
</ul>
|
4
|
+
<%= render_navigation :level => 1 %>
|
10
5
|
<ul class="nav pull-right">
|
11
6
|
<li>
|
12
7
|
<a href="/tasks/new">
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<ul class="nav nav-list" data-spy="affix" data-offset-top="125">
|
4
4
|
<% @tasks.keys.each do |project| %>
|
5
5
|
<li>
|
6
|
-
<a href="#project-<%=
|
6
|
+
<a href="#project-<%= project.parameterize %>"><i class="icon-chevron-right"></i> <%= project %></a>
|
7
7
|
</li>
|
8
8
|
<% end %>
|
9
9
|
</ul>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<div id="listing">
|
14
14
|
<% @tasks.each do |proj, tasks| %>
|
15
15
|
<% doneness = (tasks.select { |t| t.status == 'completed' }.count.to_f / tasks.count.to_f) * 100 %>
|
16
|
-
<section class="project-container" id="project-<%=
|
16
|
+
<section class="project-container" id="project-<%= proj.parameterize %>">
|
17
17
|
<h2 class="project <%= doneness == 100 ? 'done' : 'pending' %>">
|
18
18
|
<%= proj %>
|
19
19
|
<a href="/projects/<%= linkify(proj) %>"><i class="icon-circle-arrow-right"></i></a>
|
data/spec/app/app_spec.rb
CHANGED
@@ -12,6 +12,7 @@ describe TaskwarriorWeb::App do
|
|
12
12
|
|
13
13
|
before do
|
14
14
|
TaskwarriorWeb::Config.should_receive(:property).with('task-web.user').any_number_of_times.and_return(nil)
|
15
|
+
TaskwarriorWeb::Config.should_receive(:property).with('task-web.filter').any_number_of_times.and_return(nil)
|
15
16
|
TaskwarriorWeb::Runner.should_receive(:run).any_number_of_times.and_return('{}')
|
16
17
|
end
|
17
18
|
|
data/spec/app/helpers_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'sinatra'
|
2
2
|
require 'rack/test'
|
3
3
|
require 'rspec'
|
4
|
+
require 'simple_navigation'
|
4
5
|
|
5
6
|
# Simplecov
|
6
7
|
require 'simplecov'
|
@@ -16,3 +17,5 @@ RSpec.configure do |config|
|
|
16
17
|
config.mock_with :rspec
|
17
18
|
config.include(RSpec::Mocks::Methods)
|
18
19
|
end
|
20
|
+
|
21
|
+
SimpleNavigation.config_file_paths << File.dirname(__FILE__) + '/../lib/taskwarrior-web/config'
|
data/taskwarrior-web.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "taskwarrior-web"
|
6
|
-
s.version = '1.0.
|
6
|
+
s.version = '1.0.10'
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Jake Bell"]
|
9
9
|
s.email = ["jake@theunraveler.com"]
|
@@ -21,6 +21,8 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_dependency('vegas')
|
22
22
|
s.add_dependency('rinku')
|
23
23
|
s.add_dependency('versionomy')
|
24
|
+
s.add_dependency('activesupport')
|
25
|
+
s.add_dependency('sinatra-simple-navigation')
|
24
26
|
|
25
27
|
s.add_development_dependency('rake')
|
26
28
|
s.add_development_dependency('rack-test')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taskwarrior-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
16
|
-
requirement: &
|
16
|
+
requirement: &70364966614320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70364966614320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thin
|
27
|
-
requirement: &
|
27
|
+
requirement: &70364966613720 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70364966613720
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: parseconfig
|
38
|
-
requirement: &
|
38
|
+
requirement: &70364966613280 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70364966613280
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: vegas
|
49
|
-
requirement: &
|
49
|
+
requirement: &70364966612800 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70364966612800
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rinku
|
60
|
-
requirement: &
|
60
|
+
requirement: &70364966612360 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70364966612360
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: versionomy
|
71
|
-
requirement: &
|
71
|
+
requirement: &70364966611800 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,32 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70364966611800
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: activesupport
|
82
|
+
requirement: &70364966611080 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70364966611080
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: sinatra-simple-navigation
|
93
|
+
requirement: &70364966610460 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :runtime
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70364966610460
|
80
102
|
- !ruby/object:Gem::Dependency
|
81
103
|
name: rake
|
82
|
-
requirement: &
|
104
|
+
requirement: &70364966609880 !ruby/object:Gem::Requirement
|
83
105
|
none: false
|
84
106
|
requirements:
|
85
107
|
- - ! '>='
|
@@ -87,10 +109,10 @@ dependencies:
|
|
87
109
|
version: '0'
|
88
110
|
type: :development
|
89
111
|
prerelease: false
|
90
|
-
version_requirements: *
|
112
|
+
version_requirements: *70364966609880
|
91
113
|
- !ruby/object:Gem::Dependency
|
92
114
|
name: rack-test
|
93
|
-
requirement: &
|
115
|
+
requirement: &70364966609200 !ruby/object:Gem::Requirement
|
94
116
|
none: false
|
95
117
|
requirements:
|
96
118
|
- - ! '>='
|
@@ -98,10 +120,10 @@ dependencies:
|
|
98
120
|
version: '0'
|
99
121
|
type: :development
|
100
122
|
prerelease: false
|
101
|
-
version_requirements: *
|
123
|
+
version_requirements: *70364966609200
|
102
124
|
- !ruby/object:Gem::Dependency
|
103
125
|
name: rspec
|
104
|
-
requirement: &
|
126
|
+
requirement: &70364966608700 !ruby/object:Gem::Requirement
|
105
127
|
none: false
|
106
128
|
requirements:
|
107
129
|
- - ! '>='
|
@@ -109,7 +131,7 @@ dependencies:
|
|
109
131
|
version: '0'
|
110
132
|
type: :development
|
111
133
|
prerelease: false
|
112
|
-
version_requirements: *
|
134
|
+
version_requirements: *70364966608700
|
113
135
|
description: This gem provides a graphical frontend for the Taskwarrior task manager.
|
114
136
|
It is based on Sinatra.
|
115
137
|
email:
|
@@ -131,9 +153,11 @@ files:
|
|
131
153
|
- config.ru
|
132
154
|
- lib/taskwarrior-web.rb
|
133
155
|
- lib/taskwarrior-web/app.rb
|
134
|
-
- lib/taskwarrior-web/
|
135
|
-
- lib/taskwarrior-web/config.rb
|
156
|
+
- lib/taskwarrior-web/config/navigation.rb
|
136
157
|
- lib/taskwarrior-web/helpers.rb
|
158
|
+
- lib/taskwarrior-web/model/command.rb
|
159
|
+
- lib/taskwarrior-web/model/config.rb
|
160
|
+
- lib/taskwarrior-web/model/task.rb
|
137
161
|
- lib/taskwarrior-web/public/css/bootstrap-responsive.min.css
|
138
162
|
- lib/taskwarrior-web/public/css/bootstrap.min.css
|
139
163
|
- lib/taskwarrior-web/public/css/datepicker.css
|
@@ -154,7 +178,6 @@ files:
|
|
154
178
|
- lib/taskwarrior-web/services/parser/csv.rb
|
155
179
|
- lib/taskwarrior-web/services/parser/json.rb
|
156
180
|
- lib/taskwarrior-web/services/runner.rb
|
157
|
-
- lib/taskwarrior-web/task.rb
|
158
181
|
- lib/taskwarrior-web/views/404.erb
|
159
182
|
- lib/taskwarrior-web/views/_subnav.erb
|
160
183
|
- lib/taskwarrior-web/views/_topbar.erb
|
@@ -166,9 +189,9 @@ files:
|
|
166
189
|
- spec/app/app_spec.rb
|
167
190
|
- spec/app/helpers_spec.rb
|
168
191
|
- spec/files/taskrc
|
169
|
-
- spec/
|
170
|
-
- spec/
|
171
|
-
- spec/
|
192
|
+
- spec/model/command_spec.rb
|
193
|
+
- spec/model/config_spec.rb
|
194
|
+
- spec/model/task_spec.rb
|
172
195
|
- spec/services/builder/base_spec.rb
|
173
196
|
- spec/services/builder/v1_spec.rb
|
174
197
|
- spec/services/builder_spec.rb
|
@@ -196,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
219
|
version: '0'
|
197
220
|
segments:
|
198
221
|
- 0
|
199
|
-
hash:
|
222
|
+
hash: 1101487011083302650
|
200
223
|
requirements: []
|
201
224
|
rubyforge_project: taskwarrior-web
|
202
225
|
rubygems_version: 1.8.11
|
@@ -207,9 +230,9 @@ test_files:
|
|
207
230
|
- spec/app/app_spec.rb
|
208
231
|
- spec/app/helpers_spec.rb
|
209
232
|
- spec/files/taskrc
|
210
|
-
- spec/
|
211
|
-
- spec/
|
212
|
-
- spec/
|
233
|
+
- spec/model/command_spec.rb
|
234
|
+
- spec/model/config_spec.rb
|
235
|
+
- spec/model/task_spec.rb
|
213
236
|
- spec/services/builder/base_spec.rb
|
214
237
|
- spec/services/builder/v1_spec.rb
|
215
238
|
- spec/services/builder_spec.rb
|