intent 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1321e09760e2c379bf1d27e59f97d4a78cae695
4
- data.tar.gz: eceb5752851780fe423fbe4b1aa9ea65d2e94ea8
3
+ metadata.gz: 05e221afb2e22f8bc1036834504fead73e926d5e
4
+ data.tar.gz: 7d5b41109ed9a427e82df76c7dd4745bee6bedb7
5
5
  SHA512:
6
- metadata.gz: c665e8c6034e82abcaaa9a812247557b96a01e3e95b246b1cd2d15ea23680e242ebdb681ec06c93aa5a27cf88f755fd68aff2d41841212ecded1538cf502b950
7
- data.tar.gz: 7f537021f26eaae80f4184be6c24702a7361d7016d8e286689335089f334ec53b8bbaf6289664c1907f4086a27ff5fb2fc00fa63c78cd169049cc80cbb68bee3
6
+ metadata.gz: d8949751f8b1b33fb1d5b33dd4837f66d86df5f0dc0d4984c45bc7161d730ab601200d6ac127f62fedf961f370f988eba01d53ea3a1fd5cd457bb02c5ed7936c
7
+ data.tar.gz: 9cf1931fc838cb01c5f01441f3651c2578c3ac4eb29da8a2e52025aa5b1e5f120bee805752c98737666e1930ec925951ce83c01c6ec1e68105233f94006f0f0c
data/intent.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_runtime_dependency "todo-txt", "~> 0.9"
22
+ spec.add_runtime_dependency "pastel", "~> 0.6"
22
23
 
23
24
  spec.add_development_dependency "bundler", "~> 1.10"
24
25
  spec.add_development_dependency "rake", "~> 10.0"
@@ -88,6 +88,45 @@ module Intent
88
88
  file.puts(task)
89
89
  end
90
90
  end
91
+ when :status
92
+ pastel = Pastel.new
93
+ percentage = true
94
+
95
+ project_names = list.inject([]) { |names, task| names.concat(task.projects) }.uniq
96
+
97
+ projects = project_names.map do |project|
98
+ high_priority = list.by_not_done.by_project(project).by_priority('A').size
99
+ {
100
+ name: project,
101
+ done: list.by_done.by_project(project).size,
102
+ not_done: list.by_not_done.by_project(project).size - high_priority,
103
+ priority: high_priority
104
+ }
105
+ end
106
+
107
+ pad_to = project_names.max { |a,b| a.length <=> b.length }.length + 1
108
+ bar_to = (pad_to * 2).to_f
109
+
110
+ projects.each do |project|
111
+ total = project[:done] + project[:not_done] + project[:priority]
112
+
113
+ if percentage
114
+ done_ratio = bar_to / total * project[:done]
115
+ not_done_ratio = bar_to / total * project[:not_done]
116
+ priority_ratio = bar_to / total * project[:priority]
117
+ else
118
+ done_ratio = project[:done]
119
+ not_done_ratio = project[:not_done]
120
+ priority_ratio = project[:priority]
121
+ end
122
+
123
+ print project[:name].ljust(pad_to), "|"
124
+
125
+ done_ratio.round.times { print pastel.green("█") }
126
+ not_done_ratio.round.times { print pastel.yellow("█") }
127
+ priority_ratio.floor.times { print pastel.red("█") }
128
+ print "\n"
129
+ end
91
130
  end
92
131
  end
93
132
  end
@@ -103,6 +142,7 @@ module Intent
103
142
  output.puts "todo projects - list all project tags in the list"
104
143
  output.puts "todo contexts - list all context tags in the list"
105
144
  output.puts "todo archive - archive completed tasks in the nearest `done.txt`"
145
+ output.puts "todo status - show completion status for all projects"
106
146
  end
107
147
  end
108
148
  end
data/lib/intent/todo.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'todo-txt'
2
+ require 'pastel'
2
3
  require 'intent/todo/manager'
3
4
 
4
5
  Todo.customize do |options|
@@ -1,3 +1,3 @@
1
1
  module Intent
2
- VERSION = '0.1.9'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rickerby
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pastel
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.6'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement