pivo 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pivo/commands.rb +9 -5
- data/lib/pivo/formatters.rb +1 -0
- data/lib/pivo/formatters/stories/kanban.rb +63 -0
- data/lib/pivo/version.rb +1 -1
- data/pivo.gemspec +1 -0
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0c22fc0e3eb5d1946f5419d969b60f3a890b778
|
4
|
+
data.tar.gz: b46e4c1726162364a8d656c783a76cdc2a17b679
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aeba5b748bb7c22514df2dd6421e0d0dbb52ffd2ec92887476c198c504e22d8a0ba002b5bcad2b8b0879af628840023fc6fb0f7cbfabe523bbc814f894f2f55
|
7
|
+
data.tar.gz: 14fbb3559af97ff2292cf036ffe8e076019b4e9f1849ea4ed9a9a4c4b6e08ea64c3a7d6b506f00f184eaa55649d5cbce9c89a26c42a83bea9e6faff843fcce2b
|
data/lib/pivo/commands.rb
CHANGED
@@ -11,7 +11,7 @@ module Pivo
|
|
11
11
|
desc "all PROJECT_NAME", "listing all stories"
|
12
12
|
option :status, type: 'string', desc: "unscheduled, unstarted, planned, rejected, started, finished, delivered, accepted"
|
13
13
|
option :mywork, type: 'string', desc: "listing mywork storeis of the specified user"
|
14
|
-
option :format, type: 'string', desc: "default, md"
|
14
|
+
option :format, type: 'string', desc: "default, md, kanban"
|
15
15
|
def all(project_name)
|
16
16
|
project = Resource::Project.find_by_name(project_name)
|
17
17
|
filtering_options = []
|
@@ -19,12 +19,14 @@ module Pivo
|
|
19
19
|
if options[:mywork]
|
20
20
|
filtering_options << "mywork:#{options[:mywork]}" if options[:mywork]
|
21
21
|
end
|
22
|
-
|
22
|
+
request_params = filtering_options.empty? ? {} : {filter: filtering_options.join(" ")}
|
23
23
|
case options[:format]
|
24
24
|
when 'md'
|
25
|
-
say Formatters::Stories::Markdown.new(project.stories(
|
25
|
+
say Formatters::Stories::Markdown.new(project.stories(request_params)).to_s
|
26
|
+
when 'kanban'
|
27
|
+
say Formatters::Stories::Kanban.new(project.stories(request_params)).to_s
|
26
28
|
else
|
27
|
-
say Formatters::Stories::Default.new(project.stories(
|
29
|
+
say Formatters::Stories::Default.new(project.stories(request_params)).to_s
|
28
30
|
end
|
29
31
|
end
|
30
32
|
|
@@ -39,7 +41,7 @@ module Pivo
|
|
39
41
|
|
40
42
|
desc "iteration PROJECT_NAME", "listing stories of iteration"
|
41
43
|
option :iterationnumber, type: 'numeric', default: 0, desc: "current iteration number = 0, prev iterationn number = 1, prev prev = 2..."
|
42
|
-
option :format, type: 'string', desc: "default, md"
|
44
|
+
option :format, type: 'string', desc: "default, md, kanban"
|
43
45
|
def iteration(project_name)
|
44
46
|
project = Resource::Project.find_by_name(project_name)
|
45
47
|
iteration_number = project.current_iteration_number
|
@@ -48,6 +50,8 @@ module Pivo
|
|
48
50
|
case options[:format]
|
49
51
|
when 'md'
|
50
52
|
say Formatters::Stories::Markdown.new(iteration.stories).to_s
|
53
|
+
when 'kanban'
|
54
|
+
say Formatters::Stories::Kanban.new(iteration.stories).to_s
|
51
55
|
else
|
52
56
|
say Formatters::Stories::Default.new(iteration.stories).to_s
|
53
57
|
end
|
data/lib/pivo/formatters.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'kosi'
|
2
|
+
|
3
|
+
module Pivo
|
4
|
+
module Formatters
|
5
|
+
module Stories
|
6
|
+
class Kanban
|
7
|
+
def initialize(stories)
|
8
|
+
@stories = stories
|
9
|
+
@rows = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
kanban = {
|
14
|
+
todo: { point: 0, stories: [] },
|
15
|
+
doing: { point: 0, stories: [] },
|
16
|
+
done: { point: 0, stories: [] }
|
17
|
+
}
|
18
|
+
|
19
|
+
@stories.each do |story|
|
20
|
+
row = Array.new(3, '')
|
21
|
+
key = category(story)
|
22
|
+
kanban[key][:point] += story.estimate.to_i
|
23
|
+
kanban[key][:stories] << story
|
24
|
+
end
|
25
|
+
|
26
|
+
collect!(kanban)
|
27
|
+
@rows << [kanban[:todo][:point], kanban[:doing][:point], kanban[:done][:point]]
|
28
|
+
|
29
|
+
kosi = Kosi::Table.new(align: Kosi::Align::TYPE::LEFT, header: ['ToDo', 'Doing', 'Done'])
|
30
|
+
kosi.render @rows
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def category(story)
|
36
|
+
case story.current_state
|
37
|
+
when 'unscheduled', 'unstarted', 'planned'
|
38
|
+
:todo
|
39
|
+
when 'started', 'finished', 'delivered'
|
40
|
+
:doing
|
41
|
+
when 'rejected', 'accepted'
|
42
|
+
:done
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def collect!(kanban)
|
47
|
+
todo = kanban[:todo][:stories].shift
|
48
|
+
doing = kanban[:doing][:stories].shift
|
49
|
+
done = kanban[:done][:stories].shift
|
50
|
+
|
51
|
+
if todo.nil? && doing.nil? && done.nil?
|
52
|
+
return
|
53
|
+
end
|
54
|
+
|
55
|
+
col = -> (story) { "[#{story.estimate.to_i}]#{story.name}" }
|
56
|
+
|
57
|
+
@rows << [todo ? col.call(todo): '', doing ? col.call(doing): '', done ? col.call(done) : '']
|
58
|
+
collect!(kanban)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/lib/pivo/version.rb
CHANGED
data/pivo.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pivo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AKAMATSU Yuki
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: kosi
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: for pivotal tracker
|
70
84
|
email:
|
71
85
|
- y.akamatsu@ukstudio.jp
|
@@ -84,6 +98,7 @@ files:
|
|
84
98
|
- lib/pivo/commands.rb
|
85
99
|
- lib/pivo/formatters.rb
|
86
100
|
- lib/pivo/formatters/stories/default.rb
|
101
|
+
- lib/pivo/formatters/stories/kanban.rb
|
87
102
|
- lib/pivo/formatters/stories/markdown.rb
|
88
103
|
- lib/pivo/resource.rb
|
89
104
|
- lib/pivo/version.rb
|