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.
@@ -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
@@ -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'
@@ -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
- @subnav = subnav('tasks')
50
- @tasks = TaskwarriorWeb::Task.find_by_status(params[:status]).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
+ 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.errors.map { |error| { :severity => 'alert-error', :message => error } }
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::Task.count(:status => :pending).to_s
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
@@ -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
- :errors
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.errors = []
41
- self.errors << 'You must provide a description' if self.description.nil? || self.description.empty?
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
  ##################################
@@ -5,6 +5,7 @@ $(document).ready(function() {
5
5
 
6
6
  // Fluid-specific stuff.
7
7
  refreshDockBadge();
8
+ refreshSubnavCount();
8
9
 
9
10
  // Hack to account for navbar when clicking anchor links.
10
11
  $('#sidebar .nav li a').click(function(event) {
@@ -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
- <ul class="nav nav-pills">
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
- <% tabs = { '/tasks' => 'Tasks', '/projects' => 'Projects' } %>
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-<%= idify(project) %>"><i class="icon-chevron-right"></i> <%= project %></a>
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-<%= idify(proj) %>">
16
+ <section class="project-container" id="project-<%= proj.parameterize %>">
17
17
  <h2 class="project <%= doneness == 100 ? 'done' : 'pending' %>">
18
18
  <%= proj %>&nbsp;
19
19
  <a href="/projects/<%= linkify(proj) %>"><i class="icon-circle-arrow-right"></i></a>
@@ -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
 
@@ -61,11 +61,5 @@ describe TaskwarriorWeb::App::Helpers do
61
61
  helpers.auto_link('hello')
62
62
  end
63
63
  end
64
-
65
- describe '#subnav' do
66
- it 'should be empty for an unrecognized type' do
67
- helpers.subnav('something').should be_empty
68
- end
69
- end
70
64
  end
71
65
 
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
- require 'taskwarrior-web/command'
2
+ require 'taskwarrior-web/model/command'
3
3
 
4
4
  describe TaskwarriorWeb::Command do
5
5
  describe '#initialize' do
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
- require 'taskwarrior-web/config'
2
+ require 'taskwarrior-web/model/config'
3
3
  require 'ostruct'
4
4
 
5
5
  describe TaskwarriorWeb::Config do
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
- require 'taskwarrior-web/task'
2
+ require 'taskwarrior-web/model/task'
3
3
 
4
4
  describe TaskwarriorWeb::Task do
5
5
  RSpec::Mocks::setup(TaskwarriorWeb::Runner)
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
- require 'taskwarrior-web/command'
2
+ require 'taskwarrior-web/model/command'
3
3
 
4
4
  describe TaskwarriorWeb::CommandBuilder::Base do
5
5
  describe '#task_command' do
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
  require 'taskwarrior-web/services/builder/v1'
3
- require 'taskwarrior-web/command'
3
+ require 'taskwarrior-web/model/command'
4
4
  require 'ostruct'
5
5
 
6
6
  describe TaskwarriorWeb::CommandBuilder::V1 do
@@ -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'
@@ -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.9'
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.9
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-19 00:00:00.000000000 Z
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: &70214969400280 !ruby/object:Gem::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: *70214969400280
24
+ version_requirements: *70364966614320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thin
27
- requirement: &70214969399720 !ruby/object:Gem::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: *70214969399720
35
+ version_requirements: *70364966613720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: parseconfig
38
- requirement: &70214969399240 !ruby/object:Gem::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: *70214969399240
46
+ version_requirements: *70364966613280
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: vegas
49
- requirement: &70214969398760 !ruby/object:Gem::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: *70214969398760
57
+ version_requirements: *70364966612800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rinku
60
- requirement: &70214969398260 !ruby/object:Gem::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: *70214969398260
68
+ version_requirements: *70364966612360
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: versionomy
71
- requirement: &70214969397720 !ruby/object:Gem::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: *70214969397720
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: &70214969397240 !ruby/object:Gem::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: *70214969397240
112
+ version_requirements: *70364966609880
91
113
  - !ruby/object:Gem::Dependency
92
114
  name: rack-test
93
- requirement: &70214969396600 !ruby/object:Gem::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: *70214969396600
123
+ version_requirements: *70364966609200
102
124
  - !ruby/object:Gem::Dependency
103
125
  name: rspec
104
- requirement: &70214969395900 !ruby/object:Gem::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: *70214969395900
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/command.rb
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/models/command_spec.rb
170
- - spec/models/config_spec.rb
171
- - spec/models/task_spec.rb
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: -561964061204943881
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/models/command_spec.rb
211
- - spec/models/config_spec.rb
212
- - spec/models/task_spec.rb
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