jiraa 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/bin/jiraa CHANGED
@@ -3,14 +3,7 @@ require 'gli'
3
3
  require 'jira_client'
4
4
  require 'yaml'
5
5
  require 'colorize'
6
- begin # XXX: Remove this begin/rescue before distributing your app
7
6
  require 'jiraa'
8
- rescue LoadError
9
- STDERR.puts "In development, you need to use `bundle exec bin/jiraa` to run your app"
10
- STDERR.puts "At install-time, RubyGems will make sure lib, etc. are in the load path"
11
- STDERR.puts "Feel free to remove this message from bin/jiraa now"
12
- exit 64
13
- end
14
7
 
15
8
  include GLI::App
16
9
 
@@ -19,7 +12,6 @@ program_desc 'Command line application for accessing the Jira 5 API'
19
12
  desc 'Display version information'
20
13
  version Jiraa::VERSION
21
14
 
22
-
23
15
  desc 'The base URL of your Jira instance (e.g. https://jira.company.com)'
24
16
  arg_name 'URL'
25
17
  flag [:U,:url]
@@ -169,39 +161,13 @@ command :show do |c|
169
161
 
170
162
  c.action do |global_options,options,args|
171
163
  help_now! "Missing issue key" if args.length == 0
172
- fields = [:summary, :status, :issuetype]
164
+ fields = [:summary, :status, :issuetype, :assignee]
173
165
  fields << :description if options[:description]
174
166
  fields << :subtasks if options[:subtasks]
175
167
  fields << :comment if options[:comments]
176
168
  issue = JiraClient.find_issue_by_key(args[0], :fields => fields)
177
- color = issue_color(issue)
178
- header = "#{issue.key}\t#{issue.summary}".colorize(color)
179
- puts "#{header} [#{issue.status.name.upcase}]"
180
- if options[:subtasks]
181
- puts
182
- puts "SUBTASKS"
183
- puts
184
- issue.subtasks.each do |subtask|
185
- puts " #{subtask.key}\t#{subtask.summary} [#{subtask.status.name.upcase}]"
186
- end
187
- puts
188
- end
189
- if options[:description]
190
- puts
191
- puts "DESCRIPTION"
192
- puts
193
- puts " #{issue.description}".gsub("\n", "\n ") if options[:description]
194
- end
195
- if options[:comments]
196
- puts
197
- puts "COMMENTS"
198
- puts
199
- issue.comments.each do |comment|
200
- puts " #{comment.author}: #{comment.created.strftime("%e-%b-%Y (%H:%M)")}"
201
- puts " #{comment.body}"
202
- puts
203
- end
204
- end
169
+ formatter = Jiraa::Formatters::Issue.new(issue, options)
170
+ formatter.format
205
171
  end
206
172
  end
207
173
 
@@ -210,23 +176,28 @@ arg_name 'JQL'
210
176
  command :search do |c|
211
177
  c.action do |global_options,options,args|
212
178
  help_now! "Missing JQL statement" if args.length == 0
213
- issues = JiraClient.find_issues(:jql => args[0], :fields => [:summary, :status, :issuetype])
214
- issues.each do |issue|
215
- color = issue_color(issue)
216
- puts "#{issue.key}\t#{issue.summary}".colorize(color)
217
- end
218
- puts "No issues found" if issues.empty?
179
+ issues = JiraClient.find_issues(:jql => args[0], :fields => [:summary, :status, :issuetype, :assignee])
180
+ formatter = Jiraa::Formatters::IssueList.new(issues)
181
+ formatter.format
219
182
  end
220
183
  end
221
184
 
222
185
  desc 'Display issues currently in progress and assigned to you'
223
186
  command :current do |c|
224
187
  c.action do |global_options,options,args|
225
- issues = JiraClient.find_issues(:jql => "assignee = currentUser() AND status = 'In Progress'", :fields => [:summary, :status])
226
- issues.each do |issue|
227
- puts "#{issue.key}\t#{issue.summary}"
228
- end
229
- puts "No issues found" if issues.empty?
188
+ issues = JiraClient.find_issues(:jql => "assignee = currentUser() AND status = 'In Progress'", :fields => [:summary, :status, :issuetype, :assignee])
189
+ formatter = Jiraa::Formatters::IssueList.new(issues)
190
+ formatter.format
191
+ end
192
+ end
193
+
194
+ desc 'Comment on an issue'
195
+ arg_name 'ISSUE COMMENT'
196
+ command :comment do |c|
197
+ c.action do |global_options, options, args|
198
+ help_now! unless args.length == 2
199
+ JiraClient.comment_on_issue(args[0], args[1])
200
+ puts "Commented on #{args[0]}"
230
201
  end
231
202
  end
232
203
 
@@ -294,16 +265,4 @@ def configure_client(config)
294
265
  end
295
266
  end
296
267
 
297
- def issue_color(issue)
298
- color = case issue.issuetype.name
299
- when "Bug"
300
- :red
301
- when "Task"
302
- :blue
303
- when "Story"
304
- :green
305
- end
306
- color
307
- end
308
-
309
268
  exit run(ARGV)
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "aruba"
24
24
  spec.add_development_dependency "cucumber"
25
25
 
26
- spec.add_runtime_dependency "jira_client", ">= 1.0.1"
26
+ spec.add_runtime_dependency "jira_client", ">= 1.0.2"
27
27
  spec.add_runtime_dependency "gli", "2.5.6"
28
28
  spec.add_runtime_dependency "colorize", "0.5.8"
29
29
  end
@@ -1,4 +1,3 @@
1
1
  require 'jiraa/version.rb'
2
-
3
- # Add requires for other files you add to your project here, so
4
- # you just need to require this one file in your bin file
2
+ require 'jiraa/formatters/issue'
3
+ require 'jiraa/formatters/issue_list'
@@ -0,0 +1,52 @@
1
+ module Jiraa
2
+ module Formatters
3
+ class Issue
4
+ def initialize(issue, opts)
5
+ @issue = issue
6
+ @options = opts
7
+ end
8
+
9
+ def format
10
+ color = issue_color(@issue.issuetype)
11
+ puts "#{@issue.key}\t#{@issue.summary} [#{@issue.status.name.upcase}] (#{@issue.assignee})".colorize(color)
12
+ if @options[:subtasks]
13
+ puts
14
+ puts "SUBTASKS"
15
+ puts
16
+ @issue.subtasks.each do |subtask|
17
+ puts " #{subtask.key}\t#{subtask.summary} [#{subtask.status.name.upcase}]"
18
+ end
19
+ puts
20
+ end
21
+ if @options[:description]
22
+ puts
23
+ puts "DESCRIPTION"
24
+ puts
25
+ puts " #{@issue.description}".gsub("\n", "\n ") if @options[:description]
26
+ end
27
+ if @options[:comments]
28
+ puts
29
+ puts "COMMENTS"
30
+ puts
31
+ @issue.comments.each do |comment|
32
+ puts " #{comment.author}: #{comment.created.strftime("%e-%b-%Y (%H:%M)")}"
33
+ puts " #{comment.body}".gsub("\n", "\n ")
34
+ puts
35
+ end
36
+ end
37
+ end
38
+
39
+ def issue_color(type)
40
+ color = case type.name
41
+ when "Bug"
42
+ :red
43
+ when "Task"
44
+ :blue
45
+ when "Story"
46
+ :green
47
+ end
48
+ color
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,30 @@
1
+ module Jiraa
2
+ module Formatters
3
+ class IssueList
4
+ def initialize(issues)
5
+ @issues = issues
6
+ end
7
+
8
+ def format
9
+ @issues.each do |issue|
10
+ color = issue_color(issue.issuetype)
11
+ puts "#{issue.key}\t#{issue.summary} [#{issue.status.name.upcase}] (#{issue.assignee})".colorize(color)
12
+ end
13
+ puts "No issues found" if @issues.empty?
14
+ end
15
+
16
+ def issue_color(type)
17
+ color = case type.name
18
+ when "Bug"
19
+ :red
20
+ when "Task"
21
+ :blue
22
+ when "Story"
23
+ :green
24
+ end
25
+ color
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module Jiraa
2
- VERSION = '1.0.4'
2
+ VERSION = '1.0.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jiraa
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-15 00:00:00.000000000 Z
12
+ date: 2013-05-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -82,7 +82,7 @@ dependencies:
82
82
  requirements:
83
83
  - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
- version: 1.0.1
85
+ version: 1.0.2
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
- version: 1.0.1
93
+ version: 1.0.2
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: gli
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -143,6 +143,8 @@ files:
143
143
  - jiraa.gemspec
144
144
  - jiraa.rdoc
145
145
  - lib/jiraa.rb
146
+ - lib/jiraa/formatters/issue.rb
147
+ - lib/jiraa/formatters/issue_list.rb
146
148
  - lib/jiraa/version.rb
147
149
  - test/default_test.rb
148
150
  - test/test_helper.rb