intent 0.1.9 → 0.2.0

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.
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