terjira 0.4.3 → 0.4.8

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
- SHA1:
3
- metadata.gz: e30907d10396a3cd1ef50cddb41c0ef4dc9f031a
4
- data.tar.gz: b9b3740d7fd88e3c2dd16a2a02217ee68214a8c8
2
+ SHA256:
3
+ metadata.gz: a991b9bffdc241eecbee477c0472644b9c4bd995f0ff1ae1d5501fb6db744b22
4
+ data.tar.gz: be798aeb119fb896a56cdc486701a65dbfc83d145e8d02dec4276ad835233a1c
5
5
  SHA512:
6
- metadata.gz: 2378d90d53b86930dedb5edc5243a70c42c2b84854efcce896345492bc16f0a8c37f6778f6b5363eda42cf401be6cb90008a233f8a97134319905f51eb1b7ff4
7
- data.tar.gz: bb45d72965e08c66f93fd37749d05e00e2b86f173955e69c6a164d2e14d4f340e392af5a37a9317807287c32e390b0c79adf2453a1ddc53d1b0e9b7c6d03cc62
6
+ metadata.gz: a46d31fe879bebef6382d6175f9792632fa8e7cf7b31379ae805ca0807c6a6aa486bae041c58992910ee2630474b028efbbc4b9f1d721c1efefcccc111c5554b
7
+ data.tar.gz: 2ad8959446f5b6a1e27be7e791d4d0dd73752a9f1e67d17c92344bb8528c89db1526a078766c8de2729d91427fab40b4856e058032d67c225d0a986963ab4591
data/.gitignore CHANGED
@@ -47,7 +47,7 @@ build-iPhoneSimulator/
47
47
  # for a library or gem, you might want to ignore these files since the code is
48
48
  # intended to run in multiple environments; otherwise, check them in:
49
49
  # Gemfile.lock
50
- # .ruby-version
50
+ .ruby-version
51
51
  # .ruby-gemset
52
52
 
53
53
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
@@ -5,15 +5,21 @@ addons:
5
5
  repo_token: 98123461fbec752591c40e3e7af46bcdc6576723bfac2d89c084bfae989e4db3
6
6
 
7
7
  rvm:
8
- - 2.0
9
- - 2.1
10
- - 2.2
11
- - 2.3
8
+ - 2.5
9
+ - 2.6
10
+ - 2.7
12
11
 
13
12
  before_install:
14
- - gem install i18n --no-rdoc --no-ri --no-document
13
+ - gem install i18n --no-document
14
+
15
+ before_script:
16
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
17
+ - chmod +x ./cc-test-reporter
18
+ - ./cc-test-reporter before-build
15
19
 
16
20
  script: bundle exec rspec spec/
17
21
 
18
22
  after_success:
19
- - bundle exec codeclimate-test-reporter
23
+ after_script:
24
+ - ./cc-test-reporter format-coverage -t simplecov
25
+ - if [[ "$TRAVIS_TEST_RESULT" == 0 ]]; then ./cc-test-reporter upload-coverage; fi
@@ -1,114 +1,110 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- terjira (0.4.2)
5
- activesupport (= 4.1.11)
6
- jira-ruby (= 1.5.0)
7
- thor (~> 0.19.0)
8
- tty-prompt (~> 0.16.1)
9
- tty-spinner (~> 0.4.1)
10
- tty-table (~> 0.10.0)
4
+ terjira (0.4.8)
5
+ activesupport (>= 4)
6
+ jira-ruby (~> 2.1)
7
+ thor (~> 1.0.1)
8
+ tty-prompt (~> 0.20.0)
9
+ tty-spinner (~> 0.9.3)
10
+ tty-table (~> 0.11.0)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- activesupport (4.1.11)
16
- i18n (~> 0.6, >= 0.6.9)
17
- json (~> 1.7, >= 1.7.7)
15
+ activesupport (6.0.3.4)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 0.7, < 2)
18
18
  minitest (~> 5.1)
19
- thread_safe (~> 0.1)
20
19
  tzinfo (~> 1.1)
21
- codeclimate-test-reporter (1.0.8)
22
- simplecov (<= 0.13)
23
- coderay (1.1.2)
24
- concurrent-ruby (1.0.5)
25
- diff-lcs (1.3)
26
- docile (1.1.5)
27
- equatable (0.5.0)
28
- hitimes (1.3.0)
29
- i18n (0.9.5)
20
+ zeitwerk (~> 2.2, >= 2.2.2)
21
+ atlassian-jwt (0.2.0)
22
+ jwt (~> 2.1.0)
23
+ coderay (1.1.3)
24
+ concurrent-ruby (1.1.7)
25
+ diff-lcs (1.4.4)
26
+ docile (1.3.2)
27
+ equatable (0.6.1)
28
+ i18n (1.8.5)
30
29
  concurrent-ruby (~> 1.0)
31
- jira-ruby (1.5.0)
30
+ jira-ruby (2.1.3)
32
31
  activesupport
32
+ atlassian-jwt
33
33
  multipart-post
34
34
  oauth (~> 0.5, >= 0.5.0)
35
- json (1.8.6)
36
- method_source (0.8.2)
37
- minitest (5.11.3)
38
- multipart-post (2.0.0)
39
- necromancer (0.4.0)
35
+ jwt (2.1.0)
36
+ method_source (0.9.2)
37
+ minitest (5.14.2)
38
+ multipart-post (2.1.1)
39
+ necromancer (0.5.1)
40
40
  oauth (0.5.4)
41
- pastel (0.7.2)
42
- equatable (~> 0.5.0)
43
- tty-color (~> 0.4.0)
44
- pry (0.10.4)
41
+ pastel (0.7.4)
42
+ equatable (~> 0.6)
43
+ tty-color (~> 0.5)
44
+ pry (0.12.2)
45
45
  coderay (~> 1.1.0)
46
- method_source (~> 0.8.1)
47
- slop (~> 3.4)
48
- rake (10.5.0)
49
- rspec (3.7.0)
50
- rspec-core (~> 3.7.0)
51
- rspec-expectations (~> 3.7.0)
52
- rspec-mocks (~> 3.7.0)
53
- rspec-core (3.7.1)
54
- rspec-support (~> 3.7.0)
55
- rspec-expectations (3.7.0)
46
+ method_source (~> 0.9.0)
47
+ rake (13.0.1)
48
+ rspec (3.10.0)
49
+ rspec-core (~> 3.10.0)
50
+ rspec-expectations (~> 3.10.0)
51
+ rspec-mocks (~> 3.10.0)
52
+ rspec-core (3.10.0)
53
+ rspec-support (~> 3.10.0)
54
+ rspec-expectations (3.10.0)
56
55
  diff-lcs (>= 1.2.0, < 2.0)
57
- rspec-support (~> 3.7.0)
58
- rspec-mocks (3.7.0)
56
+ rspec-support (~> 3.10.0)
57
+ rspec-mocks (3.10.0)
59
58
  diff-lcs (>= 1.2.0, < 2.0)
60
- rspec-support (~> 3.7.0)
61
- rspec-support (3.7.1)
62
- simplecov (0.13.0)
63
- docile (~> 1.1.0)
64
- json (>= 1.8, < 3)
65
- simplecov-html (~> 0.10.0)
66
- simplecov-html (0.10.2)
67
- slop (3.6.0)
68
- strings (0.1.1)
69
- unicode-display_width (~> 1.3.0)
70
- unicode_utils (~> 1.4.0)
71
- thor (0.19.4)
59
+ rspec-support (~> 3.10.0)
60
+ rspec-support (3.10.0)
61
+ simplecov (0.19.1)
62
+ docile (~> 1.1)
63
+ simplecov-html (~> 0.11)
64
+ simplecov-html (0.12.3)
65
+ strings (0.1.8)
66
+ strings-ansi (~> 0.1)
67
+ unicode-display_width (~> 1.5)
68
+ unicode_utils (~> 1.4)
69
+ strings-ansi (0.2.0)
70
+ thor (1.0.1)
72
71
  thread_safe (0.3.6)
73
- timers (4.1.2)
74
- hitimes
75
- tty-color (0.4.3)
76
- tty-cursor (0.5.0)
77
- tty-prompt (0.16.1)
78
- necromancer (~> 0.4.0)
72
+ tty-color (0.6.0)
73
+ tty-cursor (0.7.1)
74
+ tty-prompt (0.20.0)
75
+ necromancer (~> 0.5.0)
79
76
  pastel (~> 0.7.0)
80
- timers (~> 4.0)
81
- tty-cursor (~> 0.5.0)
82
- tty-reader (~> 0.3.0)
83
- tty-reader (0.3.0)
84
- tty-cursor (~> 0.5.0)
85
- tty-screen (~> 0.6.4)
77
+ tty-reader (~> 0.7.0)
78
+ tty-reader (0.7.0)
79
+ tty-cursor (~> 0.7)
80
+ tty-screen (~> 0.7)
86
81
  wisper (~> 2.0.0)
87
- tty-screen (0.6.5)
88
- tty-spinner (0.4.1)
89
- tty-table (0.10.0)
90
- equatable (~> 0.5.0)
91
- necromancer (~> 0.4.0)
82
+ tty-screen (0.8.1)
83
+ tty-spinner (0.9.3)
84
+ tty-cursor (~> 0.7)
85
+ tty-table (0.11.0)
86
+ equatable (~> 0.6)
87
+ necromancer (~> 0.5)
92
88
  pastel (~> 0.7.2)
93
- strings (~> 0.1.0)
94
- tty-screen (~> 0.6.4)
95
- tzinfo (1.2.5)
89
+ strings (~> 0.1.5)
90
+ tty-screen (~> 0.7)
91
+ tzinfo (1.2.8)
96
92
  thread_safe (~> 0.1)
97
- unicode-display_width (1.3.3)
93
+ unicode-display_width (1.7.0)
98
94
  unicode_utils (1.4.0)
99
- wisper (2.0.0)
95
+ wisper (2.0.1)
96
+ zeitwerk (2.4.1)
100
97
 
101
98
  PLATFORMS
102
99
  ruby
103
100
 
104
101
  DEPENDENCIES
105
- bundler (~> 1.11)
106
- codeclimate-test-reporter (~> 1.0)
107
- pry (~> 0.10.0)
108
- rake (~> 10.0)
109
- rspec (~> 3.5)
102
+ bundler (~> 2.1)
103
+ pry (~> 0.12.0)
104
+ rake (~> 13.0)
105
+ rspec (~> 3.9)
110
106
  simplecov (~> 0)
111
107
  terjira!
112
108
 
113
109
  BUNDLED WITH
114
- 1.16.2
110
+ 2.1.4
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016 keepcosmos
3
+ Copyright (c) 2016 - 2020 keepcosmos
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  Terjira is an interactive and easy to use command line interface (or Application) for Jira. You do not need to remember the resource key or id. Terjira suggests it with an interactive prompt.
9
9
 
10
- Your Jira must support Rest API 2.0 and Agile Rest API 1.0
10
+ Your Jira must support Rest API 2.0 and Agile Rest API 1.0.
11
11
 
12
12
  ## Demo
13
13
  [Watch full demo](https://www.youtube.com/watch?v=T0hbhaXtH-Y)
@@ -33,7 +33,9 @@ If you have permission problem,
33
33
  ## Usage
34
34
  ```
35
35
  Authentication:
36
- jira login # Login your Jira
36
+ jira login # Login your Jira using your Jira email & password
37
+ # for Server or API token for Cloud.
38
+ # Refer: https://confluence.atlassian.com/cloud/api-tokens-938839638.html
37
39
  # [--ssl-config] with ssl configuration
38
40
  # [--proxy-config] with proxy configuration
39
41
  jira logout # Logout your Jira
@@ -60,7 +62,7 @@ Sprint:
60
62
  Issue:
61
63
  jira issue help [COMMAND] # Describe one specific subcommand
62
64
  jira issue ( ls | list ) # List of issues
63
- # default assignee option is current loggined user
65
+ # Default assignee option is current logged-in user
64
66
  # To show issues of all users(include no assignee)
65
67
                                      # pass `--assignee ALL` or `-a ALL`.
66
68
  jira issue jql "[QUERY]" # Search issues with JQL
@@ -80,7 +82,7 @@ Issue:
80
82
  jira issue new # Create an issue
81
83
  # pass `-E` or `--editor` to open system default editor for composing issue description
82
84
  jira issue open [ISSUE_KEY] # Open browser
83
- jira issue url [ISSUE_KEY] # return url of the issue
85
+ jira issue url [ISSUE_KEY] # Return url of the issue
84
86
  jira issue take [ISSUE_KEY] # Assign the issue to self
85
87
  jira issue trans [ISSUE_KEY] ([STATUS]) # Do transition
86
88
 
@@ -30,7 +30,7 @@ module Terjira
30
30
  def open_url(url)
31
31
  open_cmd = case RUBY_PLATFORM
32
32
  when /darwin/ then 'open'
33
- when /cygwin/ then 'cygstart'
33
+ when /cygwin/ then 'cygstart'
34
34
  when /linux/ then 'xdg-open'
35
35
  when /msys/ then 'start ""'
36
36
  else nil
@@ -30,7 +30,7 @@ module Terjira
30
30
  key(:site).ask('Site (ex: https://myjira.atlassian.net):', required: true)
31
31
  key(:context_path).ask('Jira path in your site (just press enter if you don\'t have):', default: '')
32
32
  key(:username).ask('Username:', required: true)
33
- key(:password).mask('Password:', required: true)
33
+ key(:password).mask('Password (Server) / API Token (Cloud):', required: true)
34
34
 
35
35
  if options['ssl-config']
36
36
  key(:use_ssl).yes?('Use SSL?')
@@ -20,7 +20,7 @@ module Terjira
20
20
  def backlog(board_id, options = {})
21
21
  jql = build_jql(options)
22
22
  resp = if jql.present?
23
- agile_api_get("board/#{board_id}/backlog", jql: jql)
23
+ agile_api_get("board/#{board_id}/backlog", jql: jql)
24
24
  else
25
25
  agile_api_get("board/#{board_id}/backlog")
26
26
  end
@@ -7,7 +7,6 @@ module Terjira
7
7
  delegate :jql, :find, to: :resource
8
8
 
9
9
  def all(options = {})
10
- options.delete(:assignee) if options[:assignee] =~ /^all/i
11
10
  return resource.all if options.blank?
12
11
  max_results = options.delete(:max_results) || 500
13
12
  jql(build_jql(options), max_results: max_results)
@@ -61,7 +60,7 @@ module Terjira
61
60
  def update(issue, options = {})
62
61
  params = extract_to_update_params(options)
63
62
  params.merge!(extract_to_fields_params(options))
64
- resp = api_put "issue/#{issue.key_value}", params.to_json
63
+ api_put "issue/#{issue.key_value}", params.to_json
65
64
  find(issue)
66
65
  end
67
66
 
@@ -96,14 +95,12 @@ module Terjira
96
95
 
97
96
  custom_fields = options.keys.select { |k| k.to_s =~ /^customfield/ }
98
97
 
99
- (custom_fields + [:summary, :description]).each do |k, _v|
98
+ (custom_fields + [:summary, :description]).each_entry do |k, _v|
100
99
  params[k] = opts.delete(k) if opts.key?(k)
101
100
  end
102
101
 
103
102
  [:project, :parent].each do |resource|
104
- if opts.key?(resource)
105
- params[resource] = { key: opts.delete(resource).key_value }
106
- end
103
+ params[resource] = { key: opts.delete(resource).key_value } if opts.key?(resource)
107
104
  end
108
105
 
109
106
  opts.each { |k, v| params[k] = convert_param_key_value_hash(v) }
@@ -1,8 +1,8 @@
1
1
  module Terjira
2
2
  module Client
3
3
  module JQLBuilder
4
- STRICT_KEYS = %w(sprint assignee issuetype priority project status statusCategory).freeze
5
- SEARCH_KEYS = %w(summary description).freeze
4
+ STRICT_KEYS = %w[sprint assignee issuetype priority project status statusCategory].freeze
5
+ SEARCH_KEYS = %w[summary description].freeze
6
6
 
7
7
  def build_jql(options = {})
8
8
  search = options.select { |k, _v| SEARCH_KEYS.include?(k.to_s) }
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require_relative 'base_cli'
4
2
 
5
3
  module Terjira
@@ -56,8 +54,8 @@ module Terjira
56
54
  end
57
55
 
58
56
  desc 'new', 'Create an issue'
59
- jira_options :summary, :description, :project, :issuetype,
60
- :priority, :assignee, :parent, :epiclink, :editor
57
+ jira_options :assignee, :description, :epiclink, :editor,
58
+ :project, :priority, :summary, :issuetype, :parent
61
59
  def new
62
60
  opts = suggest_options(required: [:project, :summary, :issuetype])
63
61
 
@@ -68,10 +66,10 @@ module Terjira
68
66
  end
69
67
 
70
68
  desc 'edit [ISSUE_KEY]', 'Edit the issue'
71
- jira_options :summary, :description, :project, :issuetype,
72
- :priority, :assignee, :epiclink, :editor
69
+ jira_options :assignee, :epiclink, :editor, :description,
70
+ :project, :priority, :summary, :issuetype
73
71
  def edit(issue)
74
- return puts "Pass options you need to update" if options.blank?
72
+ return puts "Pass options to be updated. Use 'jira issue help edit' for the options." if options.blank?
75
73
  issue = client_class.find(issue)
76
74
  opts = suggest_options(resources: { issue: issue })
77
75
  suggest_related_value_options(opts)
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Terjira
4
2
  class Editor
5
3
  def self.editor_text(content = '')
@@ -1,8 +1,6 @@
1
- # encoding: utf-8
2
-
3
1
  require 'tty-prompt'
4
- require_relative 'resource_store'
5
2
  require_relative 'editor'
3
+ require_relative 'resource_store'
6
4
 
7
5
  module Terjira
8
6
  module OptionSelector
@@ -135,12 +133,12 @@ module Terjira
135
133
 
136
134
  def write_epiclink_key
137
135
  fetch(:epiclink) do
138
- option_prompt.ask('Epic key?')
136
+ option_prompt.ask('Epic Key?')
139
137
  end
140
138
  end
141
139
 
142
140
  def write_epic_name
143
- option_prompt.ask('Epic name?')
141
+ option_prompt.ask('Epic Name?')
144
142
  end
145
143
 
146
144
  def write_comment
@@ -180,7 +178,7 @@ module Terjira
180
178
  end
181
179
 
182
180
  def write_parent_issue_key
183
- fetch(:parent) { option_prompt.ask('Parent issue key?') }
181
+ fetch(:parent) { option_prompt.ask('Parent Issue Key?') }
184
182
  end
185
183
 
186
184
  private
@@ -241,15 +239,11 @@ module Terjira
241
239
  @_option_select_prompt.on(:keypress) do |event|
242
240
  # emacs key binding
243
241
  { "\u000E" => :keydown, "\u0010" => :keyup }.each do |key, action|
244
- if event.value == key
245
- @_option_select_prompt.trigger(action)
246
- end
242
+ @_option_select_prompt.trigger(action) if event.value == key
247
243
  end
248
244
  # vim key binding
249
245
  { 'j' => :keydown, 'k' => :keyup, 'h' => :keyleft, 'l' => :keyright }.each do |key, action|
250
- if event.value == key
251
- @_option_select_prompt.trigger(action)
252
- end
246
+ @_option_select_prompt.trigger(action) if event.value == key
253
247
  end
254
248
  end
255
249
  @_option_select_prompt
@@ -1,9 +1,9 @@
1
1
  module Terjira
2
2
  module SharedOptions
3
3
  OPTIONS = {
4
- 'project' => {
4
+ 'assignee' => {
5
5
  type: :string,
6
- aliases: '-p',
6
+ aliases: '-a'
7
7
  },
8
8
  'board' => {
9
9
  type: :numeric,
@@ -11,57 +11,57 @@ module Terjira
11
11
  banner: 'BOARD_ID',
12
12
  lazy_default: 'board'
13
13
  },
14
- 'sprint' => {
15
- type: :numeric,
16
- banner: 'SPRINT_ID',
17
- lazy_default: 'sprint'
18
- },
19
- 'assignee' => {
14
+ 'description' => {
20
15
  type: :string,
21
- aliases: '-a'
22
- },
23
- 'state' => {
24
- type: :array,
25
- aliases: '-s',
26
- default: %w(Active Future),
27
- lazy_default: %w(Active Future),
28
- enum: %w(Active Future Closed)
16
+ aliases: '-d'
29
17
  },
30
- 'status' => {
18
+ 'epiclink' => {
31
19
  type: :string,
32
- aliases: '-s',
20
+ aliases: '-e'
33
21
  },
34
- 'resolution' => {
22
+ 'editor' => {
23
+ type: :boolean,
24
+ aliases: '-E'
25
+ },
26
+ 'comment' => {
35
27
  type: :string,
36
- aliases: '-r'
28
+ aliases: '-m'
37
29
  },
38
- 'issuetype' => {
30
+ 'project' => {
39
31
  type: :string,
40
- aliases: '-t'
32
+ aliases: '-p'
41
33
  },
42
34
  'priority' => {
43
35
  type: :string,
44
36
  aliases: '-P'
45
37
  },
46
- 'summary' => {
38
+ 'resolution' => {
47
39
  type: :string,
48
- aliases: '-S'
40
+ aliases: '-r'
49
41
  },
50
- 'description' => {
42
+ 'state' => {
43
+ type: :array,
44
+ aliases: '-s',
45
+ default: %w[Active Future],
46
+ lazy_default: %w[Active Future],
47
+ enum: %w[Active Future Closed]
48
+ },
49
+ 'status' => {
51
50
  type: :string,
52
- aliases: '-d'
51
+ aliases: '-s',
53
52
  },
54
- 'comment' => {
53
+ 'summary' => {
55
54
  type: :string,
56
- aliases: '-m'
55
+ aliases: '-S'
57
56
  },
58
- 'epiclink' => {
57
+ 'issuetype' => {
59
58
  type: :string,
60
- aliases: '-e'
59
+ aliases: '-t'
61
60
  },
62
- 'editor' => {
63
- type: :boolean,
64
- aliases: '-E'
61
+ 'sprint' => {
62
+ type: :numeric,
63
+ banner: 'SPRINT_ID',
64
+ lazy_default: 'sprint'
65
65
  }
66
66
  }.freeze
67
67
 
@@ -13,22 +13,22 @@ module Terjira
13
13
  end
14
14
 
15
15
  OPTION_TO_SELECTOR = {
16
- project: :select_project,
16
+ assignee: :select_assignee,
17
17
  board: :select_board,
18
- summary: :write_summary,
18
+ comment: :write_comment,
19
19
  description: :write_description,
20
- sprint: :select_sprint,
20
+ editable_comment: :update_comment,
21
+ epiclink: :write_epiclink_key,
21
22
  issuetype: :select_issuetype,
22
- assignee: :select_assignee,
23
- status: :select_issue_status,
24
23
  priority: :select_priority,
24
+ project: :select_project,
25
25
  resolution: :select_resolution,
26
- epiclink: :write_epiclink_key,
27
- comment: :write_comment,
28
- editable_comment: :update_comment
26
+ sprint: :select_sprint,
27
+ status: :select_issue_status,
28
+ summary: :write_summary
29
29
  }.freeze
30
30
 
31
- # Transforming and clening options
31
+ # Transforming and cleaning options
32
32
  # and suggest list of option values
33
33
  def suggest_options(opts = {})
34
34
  origin = options.dup
@@ -63,13 +63,13 @@ module Terjira
63
63
  default_value_options = Hash[default_value_options]
64
64
 
65
65
  # Suggest option values and save to resource store
66
- default_value_options.each do |k, _v|
66
+ default_value_options.each_key do |k, _v|
67
67
  selector_method = OPTION_TO_SELECTOR[k.to_sym]
68
68
  send(selector_method) if selector_method
69
69
  end
70
70
 
71
71
  # Fetch selected values from resource store
72
- default_value_options.each do |k, _v|
72
+ default_value_options.each_key do |k, _v|
73
73
  default_value_options[k] = resource_store.get(k)
74
74
  end
75
75
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Terjira
4
2
  module BoardPresenter
5
3
  def render_boards_summary(boards)
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'tty-table'
4
2
  require 'pastel'
5
3
 
@@ -34,7 +32,11 @@ module Terjira
34
32
  if user.nil?
35
33
  dim_none
36
34
  else
37
- "#{user.displayName}(#{user.name})"
35
+ begin
36
+ "#{user.displayName} (#{user.name})"
37
+ rescue NoMethodError
38
+ user.displayName.to_s
39
+ end
38
40
  end
39
41
  end
40
42
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'tty-prompt'
4
2
  require 'tty-table'
5
3
  require 'pastel'
@@ -203,7 +201,7 @@ module Terjira
203
201
 
204
202
  def extract_status_names(issues)
205
203
  issue_names = issues.sort_by do |issue|
206
- status_key = %w(new indeterminate done)
204
+ status_key = %w[new indeterminate done]
207
205
  idx = if issue.status.respond_to? :statusCategory
208
206
  status_key.index(issue.status.statusCategory['key'])
209
207
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'tty-prompt'
4
2
  require 'tty-table'
5
3
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Terjira
4
2
  module SprintPresenter
5
3
  def render_sprint_detail(sprint)
@@ -15,7 +13,7 @@ module Terjira
15
13
  end
16
14
 
17
15
  def render_sprints_summary(sprints)
18
- headers = %w(ID Summary).map { |h| pastel.bold(h) }
16
+ headers = %w[ID Summary].map { |h| pastel.bold(h) }
19
17
  rows = []
20
18
  sort_sprint_by_state(sprints).each do |sprint|
21
19
  rows << [pastel.bold(sprint.id), summarise_sprint(sprint)]
@@ -60,7 +60,7 @@ module Terjira
60
60
 
61
61
  # Delete the value for the given key from the cache
62
62
  def delete(key)
63
- FileUtils.rm(get_path(key)) if File.exists? get_path(key)
63
+ FileUtils.rm(get_path(key)) if File.exist? get_path(key)
64
64
  end
65
65
 
66
66
  # Delete ALL data from the cache, regardless of expiry time
@@ -1,7 +1,7 @@
1
1
  require 'terjira/utils/file_cache'
2
2
 
3
3
  module Terjira
4
- VERSION = '0.4.3'.freeze
4
+ VERSION = '0.4.8'.freeze
5
5
 
6
6
  class VersionChecker
7
7
  VERSION_CHECK_DURATION = (60 * 60 * 24 * 5).freeze
@@ -43,6 +43,5 @@ module Terjira
43
43
  @version_alert_cache ||= Terjira::FileCache.new("version", VERSION_CHECK_DURATION)
44
44
  end
45
45
  end
46
-
47
46
  end
48
47
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ["keepcosmos@gmail.com"]
12
12
 
13
13
  spec.summary = "Terjira is interactive command line application for Jira"
14
- spec.description = "Terjira is interactive and easy to use command line interface (or Application) for Jira.\nYou do not need to remember reosurce key or id. Terjira suggests with interactive prompt."
14
+ spec.description = "Terjira is interactive and easy to use command line interface (or Application) for Jira.\nYou do not need to remember resource key or id. Terjira suggests with interactive prompt."
15
15
  spec.homepage = "https://github.com/keepcosmos/terjira"
16
16
  spec.license = "MIT"
17
17
 
@@ -20,18 +20,17 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = ["bin/jira"].map { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency "thor", "~> 0.19.0"
24
- spec.add_dependency "jira-ruby", "1.5.0"
25
- spec.add_dependency "activesupport", "4.1.11"
23
+ spec.add_dependency "thor", "~> 1.0.1"
24
+ spec.add_dependency "jira-ruby", "~> 2.1"
25
+ spec.add_dependency "activesupport", ">= 4"
26
26
 
27
- spec.add_dependency "tty-table", "~> 0.10.0"
28
- spec.add_dependency "tty-prompt", "~> 0.16.1"
29
- spec.add_dependency "tty-spinner", "~> 0.4.1"
27
+ spec.add_dependency "tty-table", "~> 0.11.0"
28
+ spec.add_dependency "tty-prompt", "~> 0.20.0"
29
+ spec.add_dependency "tty-spinner", "~> 0.9.3"
30
30
 
31
- spec.add_development_dependency "bundler", "~> 1.11"
32
- spec.add_development_dependency "rake", "~> 10.0"
33
- spec.add_development_dependency "rspec", "~> 3.5"
31
+ spec.add_development_dependency "bundler", "~> 2.1"
32
+ spec.add_development_dependency "rake", "~> 13.0"
33
+ spec.add_development_dependency "rspec", "~> 3.9"
34
34
  spec.add_development_dependency "simplecov", "~> 0"
35
- spec.add_development_dependency "codeclimate-test-reporter", "~> 1.0"
36
- spec.add_development_dependency "pry", "~> 0.10.0"
35
+ spec.add_development_dependency "pry", "~> 0.12.0"
37
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terjira
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaehyun Shin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-16 00:00:00.000000000 Z
11
+ date: 2020-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,126 +16,126 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.19.0
19
+ version: 1.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.19.0
26
+ version: 1.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jira-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.5.0
33
+ version: '2.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.5.0
40
+ version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 4.1.11
47
+ version: '4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 4.1.11
54
+ version: '4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: tty-table
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.10.0
61
+ version: 0.11.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.10.0
68
+ version: 0.11.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: tty-prompt
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.16.1
75
+ version: 0.20.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.16.1
82
+ version: 0.20.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: tty-spinner
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.4.1
89
+ version: 0.9.3
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.4.1
96
+ version: 0.9.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.11'
103
+ version: '2.1'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.11'
110
+ version: '2.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '10.0'
117
+ version: '13.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '10.0'
124
+ version: '13.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '3.5'
131
+ version: '3.9'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '3.5'
138
+ version: '3.9'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -150,37 +150,23 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: codeclimate-test-reporter
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1.0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1.0'
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: pry
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
157
  - - "~>"
172
158
  - !ruby/object:Gem::Version
173
- version: 0.10.0
159
+ version: 0.12.0
174
160
  type: :development
175
161
  prerelease: false
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
178
164
  - - "~>"
179
165
  - !ruby/object:Gem::Version
180
- version: 0.10.0
166
+ version: 0.12.0
181
167
  description: |-
182
168
  Terjira is interactive and easy to use command line interface (or Application) for Jira.
183
- You do not need to remember reosurce key or id. Terjira suggests with interactive prompt.
169
+ You do not need to remember resource key or id. Terjira suggests with interactive prompt.
184
170
  email:
185
171
  - keepcosmos@gmail.com
186
172
  executables:
@@ -260,8 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
246
  - !ruby/object:Gem::Version
261
247
  version: '0'
262
248
  requirements: []
263
- rubyforge_project:
264
- rubygems_version: 2.6.11
249
+ rubygems_version: 3.0.6
265
250
  signing_key:
266
251
  specification_version: 4
267
252
  summary: Terjira is interactive command line application for Jira