taskwarrior-web 1.1.9 → 1.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +6 -0
- data/lib/taskwarrior-web/app.rb +9 -9
- data/lib/taskwarrior-web/helpers.rb +3 -3
- data/lib/taskwarrior-web/model/config.rb +22 -7
- data/lib/taskwarrior-web/public/js/application.js +2 -2
- data/lib/taskwarrior-web/services/builder/base.rb +1 -1
- data/lib/taskwarrior-web/services/parser.rb +1 -5
- data/lib/taskwarrior-web/version.rb +1 -1
- data/lib/taskwarrior-web/views/layout.erb +1 -1
- data/lib/taskwarrior-web/views/partials/_footer.erb +2 -2
- data/lib/taskwarrior-web/views/partials/{_hotkeys.erb → _help.erb} +6 -2
- data/lib/taskwarrior-web/views/partials/_topbar.erb +2 -3
- data/lib/taskwarrior-web/views/tasks/_form.erb +9 -1
- data/lib/taskwarrior-web/views/tasks/edit.erb +1 -1
- data/lib/taskwarrior-web/views/tasks/index.erb +2 -0
- data/lib/taskwarrior-web/views/tasks/new.erb +1 -1
- data/spec/app/helpers_spec.rb +2 -2
- data/spec/model/config_spec.rb +1 -1
- data/taskwarrior-web.gemspec +1 -1
- metadata +34 -65
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 81ddd844b563c653dcac866ead7c1481a768d17d
|
4
|
+
data.tar.gz: b30140d7d71ac62c8dd594e389683020377cd94d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5e98706d90542916ca02463a1733b3147f635fdfd3bd664c224e1eb32844be34cacc171e90057536c6fc860080e8524ff6df4c290203e07cbf97ed0f9cfce9ad
|
7
|
+
data.tar.gz: bc577b814732ba215a9618b5658f3246d4b4c6e78f2df4cc7e51bd04edb50759a8d981d07e06c541f24461ae9e1db793150d79aa334cfdb3a201c2294b05c038
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## v1.1.10 (6/28/13)
|
2
|
+
|
3
|
+
* Added ability to specify "wait" property for tasks
|
4
|
+
* Added more comprehensive help popup
|
5
|
+
* Fixing a couple particularly annoying issues
|
6
|
+
|
1
7
|
## v1.1.9 (5/21/13)
|
2
8
|
|
3
9
|
* Sorting by priority sorts intelligently (http://github.com/theunraveler/taskwarrior-web/issues/39)
|
data/lib/taskwarrior-web/app.rb
CHANGED
@@ -35,16 +35,16 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
35
35
|
get '/tasks/:status/?' do
|
36
36
|
pass unless params[:status].in?(%w(pending waiting completed deleted))
|
37
37
|
@title = "Tasks"
|
38
|
-
if params[:status] == 'pending' && filter = TaskwarriorWeb::Config.property('task-web.filter')
|
39
|
-
|
38
|
+
@tasks = if params[:status] == 'pending' && filter = TaskwarriorWeb::Config.property('task-web.filter')
|
39
|
+
TaskwarriorWeb::Task.query(filter)
|
40
40
|
else
|
41
|
-
|
41
|
+
TaskwarriorWeb::Task.find_by_status(params[:status])
|
42
42
|
end
|
43
43
|
|
44
|
-
case
|
45
|
-
when ('pending'
|
44
|
+
case
|
45
|
+
when params[:status].in?(['pending', 'waiting'])
|
46
46
|
@tasks.sort_by! { |t| [-t.urgency.to_f, t.priority.nil?.to_s, t.priority.to_s, t.due.nil?.to_s, t.due.to_s, t.project.to_s] }
|
47
|
-
when ('completed'
|
47
|
+
when params[:status].in?(['completed', 'deleted'])
|
48
48
|
@tasks.sort_by! { |t| [Time.parse(t.end)] }.reverse!
|
49
49
|
end
|
50
50
|
|
@@ -63,7 +63,7 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
63
63
|
if @task.is_valid?
|
64
64
|
message = @task.save!
|
65
65
|
flash[:success] = message.blank? ? %(New task "#{@task}" created) : message
|
66
|
-
redirect to('/tasks')
|
66
|
+
redirect to(params[:destination] || '/tasks')
|
67
67
|
end
|
68
68
|
|
69
69
|
flash.now[:error] = @task._errors.join(', ')
|
@@ -85,7 +85,7 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
85
85
|
if @task.is_valid?
|
86
86
|
message = @task.save!
|
87
87
|
flash[:success] = message.blank? ? %(Task "#{@task}" was successfully updated) : message
|
88
|
-
redirect to('/tasks')
|
88
|
+
redirect to(params[:destination] || '/tasks')
|
89
89
|
end
|
90
90
|
|
91
91
|
flash.now[:error] = @task._errors.join(', ')
|
@@ -97,7 +97,7 @@ class TaskwarriorWeb::App < Sinatra::Base
|
|
97
97
|
@task = TaskwarriorWeb::Task.find(params[:uuid]) || not_found
|
98
98
|
message = @task.delete!
|
99
99
|
flash[:success] = message.blank? ? %(Task "#{@task}" was successfully deleted) : message
|
100
|
-
redirect to('/tasks')
|
100
|
+
redirect to(params[:destination] || '/tasks')
|
101
101
|
end
|
102
102
|
|
103
103
|
# Annotations
|
@@ -49,7 +49,7 @@ module TaskwarriorWeb::App::Helpers
|
|
49
49
|
else
|
50
50
|
total = task_count
|
51
51
|
end
|
52
|
-
total == 0 ? '' : total.to_s
|
52
|
+
total.to_i == 0 ? '' : total.to_s
|
53
53
|
end
|
54
54
|
|
55
55
|
def progress_bar(tasks)
|
@@ -65,9 +65,9 @@ module TaskwarriorWeb::App::Helpers
|
|
65
65
|
string = %(<span class="crud-links">)
|
66
66
|
string << %(<a class="annotation-add" href="/tasks/#{task.uuid}/annotations/new"><i class="icon-comment"></i></a>)
|
67
67
|
string << %( | )
|
68
|
-
string << %(<a href="/tasks/#{task.uuid}"><i class="icon-pencil"></i></a>)
|
68
|
+
string << %(<a href="/tasks/#{task.uuid}?destination=#{ERB::Util.u(request.path_info)}"><i class="icon-pencil"></i></a>)
|
69
69
|
string << %( | )
|
70
|
-
string << %(<a href="/tasks/#{task.uuid}" data-method="DELETE" data-confirm="Are you sure you want to delete this task?"><i class="icon-trash"></i></a>)
|
70
|
+
string << %(<a href="/tasks/#{task.uuid}?destination=#{ERB::Util.u(request.path_info)}" data-method="DELETE" data-confirm="Are you sure you want to delete this task?"><i class="icon-trash"></i></a>)
|
71
71
|
string << %(</span>)
|
72
72
|
string
|
73
73
|
end
|
@@ -6,7 +6,7 @@ module TaskwarriorWeb::Config
|
|
6
6
|
# equivalent on the right.
|
7
7
|
RUBY_DATEFORMATS = {
|
8
8
|
'm' => '%-m', # minimal-digit month, for example 1 or 12
|
9
|
-
'd' => '%-d',
|
9
|
+
'd' => '%-d', # minimal-digit day, for example 1 or 30
|
10
10
|
'y' => '%y', # two-digit year, for example 09
|
11
11
|
'D' => '%d', # two-digit day, for example 01 or 30
|
12
12
|
'M' => '%m', # two-digit month, for example 01 or 12
|
@@ -44,33 +44,48 @@ module TaskwarriorWeb::Config
|
|
44
44
|
@version ||= Versionomy.parse(`#{TaskwarriorWeb::Runner::TASK_BIN} _version`.strip)
|
45
45
|
end
|
46
46
|
|
47
|
-
def self.
|
48
|
-
@
|
47
|
+
def self.store
|
48
|
+
@store ||= self.parse_config
|
49
49
|
end
|
50
50
|
|
51
51
|
def self.property(prop)
|
52
|
-
self.
|
52
|
+
self.store[prop]
|
53
53
|
end
|
54
54
|
|
55
55
|
def self.dateformat(format = :ruby)
|
56
|
-
return nil unless self.
|
56
|
+
return nil unless self.store['dateformat'] && format.in?([:ruby, :js])
|
57
57
|
|
58
58
|
formats = case format
|
59
59
|
when :ruby then RUBY_DATEFORMATS
|
60
60
|
when :js then JS_DATEFORMATS
|
61
61
|
end
|
62
62
|
|
63
|
-
self.
|
63
|
+
self.store['dateformat'].gsub(/(\w)/, formats)
|
64
64
|
end
|
65
65
|
|
66
66
|
def self.supports?(feature)
|
67
67
|
case feature.to_sym
|
68
68
|
when :editing then self.version.major > 1
|
69
|
+
when :_show then self.version >= '2.2.0'
|
69
70
|
else false
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
73
74
|
def self.method_missing(method)
|
74
|
-
self.
|
75
|
+
self.store[method.to_s]
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def self.parse_config
|
81
|
+
if self.supports? :_show
|
82
|
+
config = `#{TaskwarriorWeb::Runner::TASK_BIN} _show`
|
83
|
+
config.split("\n").inject({}) do |h, line|
|
84
|
+
key,value = line.split('=')
|
85
|
+
h.merge!({ key => value })
|
86
|
+
end
|
87
|
+
else
|
88
|
+
ParseConfig.new("#{Dir.home}/.taskrc")
|
89
|
+
end
|
75
90
|
end
|
76
91
|
end
|
@@ -80,7 +80,7 @@ var initHotkeys = function() {
|
|
80
80
|
|
81
81
|
// "n" goes to new task form.
|
82
82
|
$(document).bind('keyup', 'n', function() {
|
83
|
-
window.location.href = '/tasks/new';
|
83
|
+
window.location.href = '/tasks/new?destination='+encodeURIComponent('/'+window.location.pathname);
|
84
84
|
});
|
85
85
|
|
86
86
|
// "1-*" go to tabs in main nav.
|
@@ -93,7 +93,7 @@ var initHotkeys = function() {
|
|
93
93
|
|
94
94
|
// "h" displays a list of hotkeys.
|
95
95
|
$(document).bind('keyup', 'h', function() {
|
96
|
-
$('#
|
96
|
+
$('#help').modal('toggle');
|
97
97
|
});
|
98
98
|
};
|
99
99
|
|
@@ -6,7 +6,7 @@ module TaskwarriorWeb::CommandBuilder::Base
|
|
6
6
|
:add => 'add',
|
7
7
|
:update => TaskwarriorWeb::Config.version.major >= 2 ? ':id mod' : nil,
|
8
8
|
:delete => 'rc.confirmation=no :id delete',
|
9
|
-
:query => TaskwarriorWeb::Config.version >
|
9
|
+
:query => TaskwarriorWeb::Config.version > '1.9.2' ? '_query' : 'export',
|
10
10
|
:complete => ':id done',
|
11
11
|
:annotate => ':id annotate',
|
12
12
|
:denotate => ':id denotate',
|
@@ -3,10 +3,6 @@ module TaskwarriorWeb::Parser
|
|
3
3
|
autoload :Csv, 'taskwarrior-web/services/parser/csv'
|
4
4
|
|
5
5
|
def self.parse(results)
|
6
|
-
|
7
|
-
Json.parse(results)
|
8
|
-
else
|
9
|
-
Csv.parse(results)
|
10
|
-
end
|
6
|
+
TaskwarriorWeb::Config.version > '1.9.2' ? Json.parse(results) : Csv.parse(results)
|
11
7
|
end
|
12
8
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
</div>
|
4
4
|
<div class="pull-right">
|
5
5
|
<p>
|
6
|
-
<a data-toggle="modal" data-target="#
|
6
|
+
<a data-toggle="modal" data-target="#help" href="#">Help</a>
|
7
7
|
|
|
8
|
-
<a href="http://github.com/theunraveler/taskwarrior-web/issues">Report a bug</a>
|
8
|
+
<a href="http://github.com/theunraveler/taskwarrior-web/issues" target="_new">Report a bug</a>
|
9
9
|
</p>
|
10
10
|
</div>
|
@@ -1,9 +1,10 @@
|
|
1
|
-
<div id="
|
1
|
+
<div id="help" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="help-modal-label" aria-hidden="true">
|
2
2
|
<div class="modal-header">
|
3
3
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
4
|
-
<h3 id="
|
4
|
+
<h3 id="help-modal-label">Help</h3>
|
5
5
|
</div>
|
6
6
|
<div class="modal-body">
|
7
|
+
<h4>Hotkeys</h4>
|
7
8
|
<p>TaskwarriorWeb includes hotkeys for quick navigation to commonly-used parts of the application.</p>
|
8
9
|
<ul>
|
9
10
|
<li><code>1</code>: Go to the "Tasks" (/tasks) page</li>
|
@@ -11,6 +12,9 @@
|
|
11
12
|
<li><code>n</code>: Create a new task</li>
|
12
13
|
<li><code>h</code>: Displays and dismisses this help dialog</li>
|
13
14
|
</ul>
|
15
|
+
|
16
|
+
<h4>Further reading</h4>
|
17
|
+
<p>Check out and contribute to the <a href="http://github.com/theunraveler/taskwarrior-web/wiki/_pages" target="_new">documentation</a>.</p>
|
14
18
|
</div>
|
15
19
|
<div class="modal-footer">
|
16
20
|
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
|
@@ -4,9 +4,8 @@
|
|
4
4
|
<%= render_navigation :level => 1 %>
|
5
5
|
<ul class="nav pull-right">
|
6
6
|
<li<% if @current_page =~ %r(^/tasks/new/?) %> class="active"<% end %>>
|
7
|
-
<a href="/tasks/new">
|
8
|
-
<i class="icon-plus"></i
|
9
|
-
Add a Task
|
7
|
+
<a href="/tasks/new?destination=<%= ERB::Util.u(request.path_info) %>">
|
8
|
+
<i class="icon-plus"></i> Add a Task
|
10
9
|
</a>
|
11
10
|
</li>
|
12
11
|
</ul>
|
@@ -13,12 +13,20 @@
|
|
13
13
|
</div>
|
14
14
|
|
15
15
|
<div class="control-group">
|
16
|
-
<label for="task-due" class="control-label">Due
|
16
|
+
<label for="task-due" class="control-label">Due date</label>
|
17
17
|
<div class="controls">
|
18
18
|
<input class="date-picker" type="text" id="task-due" name="task[due]" value="<%= format_date(@task.due) unless @task.nil? || @task.due.blank? %>" data-date-format="<%= @date_format %>" />
|
19
19
|
</div>
|
20
20
|
</div>
|
21
21
|
|
22
|
+
<div class="control-group">
|
23
|
+
<label for="task-wait" class="control-label">Hide until</label>
|
24
|
+
<div class="controls">
|
25
|
+
<input class="date-picker" type="text" id="task-wait" name="task[wait]" value="<%= format_date(@task.wait) unless @task.nil? || @task.wait.blank? %>" data-date-format="<%= @date_format %>" />
|
26
|
+
<span class="help-block">If specified, the task will appear in the "Waiting" list until the given date.</span>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
|
22
30
|
<div class="control-group">
|
23
31
|
<label class="control-label">Priority</label>
|
24
32
|
<div class="controls">
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<form id="new-task-form" class="form-horizontal" action="
|
1
|
+
<form id="new-task-form" class="form-horizontal" action="<%= request.fullpath %>" method="post">
|
2
2
|
<input type="hidden" name="task[uuid]" value="<%= @task.uuid %>" />
|
3
3
|
|
4
4
|
<%= erb :'tasks/_form' %>
|
@@ -16,6 +16,7 @@
|
|
16
16
|
<th>Description</th>
|
17
17
|
<th>Project</th>
|
18
18
|
<th>Due</th>
|
19
|
+
<% if params[:status] == 'waiting' %><th>Hidden until</th><% end %>
|
19
20
|
<th>Tags</th>
|
20
21
|
<th data-sort-map='{"H": 0, "M": 1, "": 2, "L": 3}'>Priority</th>
|
21
22
|
<% if can_edit %><th class="no-sort"></th><% end %>
|
@@ -43,6 +44,7 @@
|
|
43
44
|
</td>
|
44
45
|
<td><a href="/projects/<%= linkify(task.project) %>"><%= task.project %></a></td>
|
45
46
|
<td><%= format_date(task.due) unless task.due.nil? %></td>
|
47
|
+
<% if params[:status] == 'waiting' %><td><%= format_date(task.wait) unless task.wait.nil? %></td><% end %>
|
46
48
|
<td><%= task.tags.join(', ') unless task.tags.nil? %></td>
|
47
49
|
<td><%= task.priority unless task.priority.nil? %></td>
|
48
50
|
<% if can_edit %><td><%= crud_links(task) %></td><% end %>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
});
|
5
5
|
</script>
|
6
6
|
|
7
|
-
<form id="new-task-form" class="form-horizontal" action="/tasks" method="post">
|
7
|
+
<form id="new-task-form" class="form-horizontal" action="/tasks<%= '?destination='+ERB::Util.u(params[:destination]) if params[:destination] %>" method="post">
|
8
8
|
|
9
9
|
<%= erb :'tasks/_form' %>
|
10
10
|
|
data/spec/app/helpers_spec.rb
CHANGED
@@ -31,7 +31,7 @@ describe TaskwarriorWeb::App::Helpers do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'should convert Taskwarrior formats to Ruby formats correctly' do
|
34
|
-
TaskwarriorWeb::Config.should_receive(:
|
34
|
+
TaskwarriorWeb::Config.should_receive(:store).any_number_of_times.and_return({'dateformat' => 'd/m/Y'})
|
35
35
|
helpers.format_date('2012-01-11 12:23:00').should eq('11/1/2012')
|
36
36
|
helpers.format_date('2012-12-02 12:23:00').should eq('2/12/2012')
|
37
37
|
end
|
@@ -46,7 +46,7 @@ describe TaskwarriorWeb::App::Helpers do
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
context 'with a due setting specified' do
|
49
|
+
context 'with a due setting specified' do
|
50
50
|
before do
|
51
51
|
TaskwarriorWeb::Config.should_receive(:due).any_number_of_times.and_return(3)
|
52
52
|
end
|
data/spec/model/config_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe TaskwarriorWeb::Config do
|
|
6
6
|
describe '.property' do
|
7
7
|
it 'should call #[] on the config file object' do
|
8
8
|
file = {}
|
9
|
-
TaskwarriorWeb::Config.should_receive(:
|
9
|
+
TaskwarriorWeb::Config.should_receive(:store).and_return(file)
|
10
10
|
file.should_receive(:[]).with('testing')
|
11
11
|
TaskwarriorWeb::Config.property('testing')
|
12
12
|
end
|
data/taskwarrior-web.gemspec
CHANGED
@@ -21,7 +21,7 @@ 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')
|
24
|
+
s.add_dependency('activesupport', '~> 3')
|
25
25
|
s.add_dependency('sinatra-simple-navigation')
|
26
26
|
s.add_dependency('rack-flash3')
|
27
27
|
s.add_dependency('json', '~> 1.7.7')
|
metadata
CHANGED
@@ -1,148 +1,130 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taskwarrior-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.10
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jake Bell
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-06-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: sinatra
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: parseconfig
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: vegas
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rinku
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: versionomy
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: activesupport
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
89
|
+
version: '3'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
96
|
+
version: '3'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: sinatra-simple-navigation
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rack-flash3
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: json
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ~>
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ~>
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,65 +139,57 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: rake
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- -
|
143
|
+
- - '>='
|
164
144
|
- !ruby/object:Gem::Version
|
165
145
|
version: '0'
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- -
|
150
|
+
- - '>='
|
172
151
|
- !ruby/object:Gem::Version
|
173
152
|
version: '0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: rack-test
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - '>='
|
180
158
|
- !ruby/object:Gem::Version
|
181
159
|
version: '0'
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
|
-
- -
|
164
|
+
- - '>='
|
188
165
|
- !ruby/object:Gem::Version
|
189
166
|
version: '0'
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: rspec
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
|
-
- -
|
171
|
+
- - '>='
|
196
172
|
- !ruby/object:Gem::Version
|
197
173
|
version: '0'
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
|
-
- -
|
178
|
+
- - '>='
|
204
179
|
- !ruby/object:Gem::Version
|
205
180
|
version: '0'
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: rspec-html-matchers
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
|
-
- -
|
185
|
+
- - '>='
|
212
186
|
- !ruby/object:Gem::Version
|
213
187
|
version: '0'
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
|
-
- -
|
192
|
+
- - '>='
|
220
193
|
- !ruby/object:Gem::Version
|
221
194
|
version: '0'
|
222
195
|
description: This gem provides a graphical frontend for the Taskwarrior task manager.
|
@@ -280,7 +253,7 @@ files:
|
|
280
253
|
- lib/taskwarrior-web/views/layout.erb
|
281
254
|
- lib/taskwarrior-web/views/partials/_flash.erb
|
282
255
|
- lib/taskwarrior-web/views/partials/_footer.erb
|
283
|
-
- lib/taskwarrior-web/views/partials/
|
256
|
+
- lib/taskwarrior-web/views/partials/_help.erb
|
284
257
|
- lib/taskwarrior-web/views/partials/_subnav.erb
|
285
258
|
- lib/taskwarrior-web/views/partials/_topbar.erb
|
286
259
|
- lib/taskwarrior-web/views/projects/index.erb
|
@@ -305,30 +278,26 @@ files:
|
|
305
278
|
- taskwarrior-web.gemspec
|
306
279
|
homepage: http://github.com/theunraveler/taskwarrior-web
|
307
280
|
licenses: []
|
281
|
+
metadata: {}
|
308
282
|
post_install_message:
|
309
283
|
rdoc_options: []
|
310
284
|
require_paths:
|
311
285
|
- lib
|
312
286
|
required_ruby_version: !ruby/object:Gem::Requirement
|
313
|
-
none: false
|
314
287
|
requirements:
|
315
|
-
- -
|
288
|
+
- - '>='
|
316
289
|
- !ruby/object:Gem::Version
|
317
290
|
version: 1.9.0
|
318
291
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
319
|
-
none: false
|
320
292
|
requirements:
|
321
|
-
- -
|
293
|
+
- - '>='
|
322
294
|
- !ruby/object:Gem::Version
|
323
295
|
version: '0'
|
324
|
-
segments:
|
325
|
-
- 0
|
326
|
-
hash: -1134852019242031936
|
327
296
|
requirements: []
|
328
297
|
rubyforge_project: taskwarrior-web
|
329
|
-
rubygems_version:
|
298
|
+
rubygems_version: 2.0.3
|
330
299
|
signing_key:
|
331
|
-
specification_version:
|
300
|
+
specification_version: 4
|
332
301
|
summary: Web frontend for taskwarrior command line task manager.
|
333
302
|
test_files:
|
334
303
|
- spec/app/app_spec.rb
|