terjira 0.4.4 → 0.4.5

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
  SHA256:
3
- metadata.gz: 2858756e19a519405b4eea90687184b58880c6ee9316e169df4753fa363765ad
4
- data.tar.gz: 3286711b9f84a07edf59d23fe8b949dc722511727eebbbddfdc030ec3aae17c4
3
+ metadata.gz: d5ee0dcef09fef89e14eb9988ec488d155f64dc9abdf6b40e580608f2e1df210
4
+ data.tar.gz: a73fc739d2c2baebfcc1104f8c09a32dbfd6bbfedefe549791f5ef288e833f57
5
5
  SHA512:
6
- metadata.gz: 8f89f03640087c88b7a1b37624d096e85e9fe1f80d08cd0d5b0c7da818e99919b9f62a39b1a834b4574546d9b2372dee567a1ca225b4e89581062cd9c9cd4bc8
7
- data.tar.gz: a5019efe2f4300e29a4a5b6d6d8fa8178a9917149466dec15d09ced49f34231fbb45532c0088ad10951c395d9b4f5a04724ae4458488d7f256077e38ee6676aa
6
+ metadata.gz: cb451d9a5f4a97d7dcde64c75d7d83fbe23acbe7383e32f89de5c02d3603f4bd02100efe4a6078cf190ca9b0ed09be01d9eda50b5926ab29ee550443e375dff8
7
+ data.tar.gz: 4d13204a71527cc1cfe03f43f5b3bfe431641ee3d2a87a69e642fe390e696a200837a93aca805b0e321c6d0016af9d95e1346946f306e6f6078d1bf37165d1a9
data/.travis.yml CHANGED
@@ -8,6 +8,7 @@ rvm:
8
8
  - 2.4
9
9
  - 2.5
10
10
  - 2.6
11
+ - 2.7
11
12
 
12
13
  before_install:
13
14
  - gem install i18n --no-document
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- terjira (0.4.4)
4
+ terjira (0.4.5)
5
5
  activesupport (= 5.2.3)
6
6
  jira-ruby (= 1.7.1)
7
7
  thor (~> 0.20.0)
@@ -36,7 +36,7 @@ GEM
36
36
  method_source (0.9.2)
37
37
  minitest (5.13.0)
38
38
  multipart-post (2.1.1)
39
- necromancer (0.5.0)
39
+ necromancer (0.5.1)
40
40
  oauth (0.5.4)
41
41
  pastel (0.7.3)
42
42
  equatable (~> 0.6)
@@ -63,7 +63,7 @@ GEM
63
63
  json (>= 1.8, < 3)
64
64
  simplecov-html (~> 0.10.0)
65
65
  simplecov-html (0.10.2)
66
- strings (0.1.7)
66
+ strings (0.1.8)
67
67
  strings-ansi (~> 0.1)
68
68
  unicode-display_width (~> 1.5)
69
69
  unicode_utils (~> 1.4)
@@ -81,7 +81,7 @@ GEM
81
81
  tty-screen (~> 0.7)
82
82
  wisper (~> 2.0.0)
83
83
  tty-screen (0.7.0)
84
- tty-spinner (0.9.1)
84
+ tty-spinner (0.9.2)
85
85
  tty-cursor (~> 0.7)
86
86
  tty-table (0.11.0)
87
87
  equatable (~> 0.6)
@@ -89,7 +89,7 @@ GEM
89
89
  pastel (~> 0.7.2)
90
90
  strings (~> 0.1.5)
91
91
  tty-screen (~> 0.7)
92
- tzinfo (1.2.5)
92
+ tzinfo (1.2.6)
93
93
  thread_safe (~> 0.1)
94
94
  unicode-display_width (1.6.0)
95
95
  unicode_utils (1.4.0)
@@ -99,7 +99,7 @@ PLATFORMS
99
99
  ruby
100
100
 
101
101
  DEPENDENCIES
102
- bundler (~> 1.17)
102
+ bundler (~> 2.1)
103
103
  pry (~> 0.12.0)
104
104
  rake (~> 13.0)
105
105
  rspec (~> 3.9)
@@ -107,4 +107,4 @@ DEPENDENCIES
107
107
  terjira!
108
108
 
109
109
  BUNDLED WITH
110
- 1.17.2
110
+ 2.1.2
data/README.md CHANGED
@@ -61,7 +61,7 @@ Sprint:
61
61
  Issue:
62
62
  jira issue help [COMMAND] # Describe one specific subcommand
63
63
  jira issue ( ls | list ) # List of issues
64
- # default assignee option is current loggined user
64
+ # Default assignee option is current logged-in user
65
65
  # To show issues of all users(include no assignee)
66
66
                                      # pass `--assignee ALL` or `-a ALL`.
67
67
  jira issue jql "[QUERY]" # Search issues with JQL
@@ -81,7 +81,7 @@ Issue:
81
81
  jira issue new # Create an issue
82
82
  # pass `-E` or `--editor` to open system default editor for composing issue description
83
83
  jira issue open [ISSUE_KEY] # Open browser
84
- jira issue url [ISSUE_KEY] # return url of the issue
84
+ jira issue url [ISSUE_KEY] # Return url of the issue
85
85
  jira issue take [ISSUE_KEY] # Assign the issue to self
86
86
  jira issue trans [ISSUE_KEY] ([STATUS]) # Do transition
87
87
 
@@ -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
@@ -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
@@ -61,7 +61,7 @@ module Terjira
61
61
  def update(issue, options = {})
62
62
  params = extract_to_update_params(options)
63
63
  params.merge!(extract_to_fields_params(options))
64
- resp = api_put "issue/#{issue.key_value}", params.to_json
64
+ api_put "issue/#{issue.key_value}", params.to_json
65
65
  find(issue)
66
66
  end
67
67
 
@@ -101,9 +101,7 @@ module Terjira
101
101
  end
102
102
 
103
103
  [:project, :parent].each do |resource|
104
- if opts.key?(resource)
105
- params[resource] = { key: opts.delete(resource).key_value }
106
- end
104
+ params[resource] = { key: opts.delete(resource).key_value } if opts.key?(resource)
107
105
  end
108
106
 
109
107
  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
@@ -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
@@ -3,7 +3,7 @@ module Terjira
3
3
  OPTIONS = {
4
4
  'project' => {
5
5
  type: :string,
6
- aliases: '-p',
6
+ aliases: '-p'
7
7
  },
8
8
  'board' => {
9
9
  type: :numeric,
@@ -23,9 +23,9 @@ module Terjira
23
23
  'state' => {
24
24
  type: :array,
25
25
  aliases: '-s',
26
- default: %w(Active Future),
27
- lazy_default: %w(Active Future),
28
- enum: %w(Active Future Closed)
26
+ default: %w[Active Future],
27
+ lazy_default: %w[Active Future],
28
+ enum: %w[Active Future Closed]
29
29
  },
30
30
  'status' => {
31
31
  type: :string,
@@ -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
 
@@ -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.4'.freeze
4
+ VERSION = '0.4.5'.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
data/terjira.gemspec CHANGED
@@ -7,8 +7,8 @@ require 'terjira/version'
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = "terjira"
9
9
  spec.version = Terjira::VERSION
10
- spec.authors = ["Jaehyun Shin"]
11
- spec.email = ["keepcosmos@gmail.com"]
10
+ spec.authors = ["Jaehyun Shin", "Ren Guoy"]
11
+ spec.email = ["keepcosmos@gmail.com", "guoy.ren@gmail.com"]
12
12
 
13
13
  spec.summary = "Terjira is interactive command line application for Jira"
14
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."
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency "tty-prompt", "~> 0.19.0"
29
29
  spec.add_dependency "tty-spinner", "~> 0.9.1"
30
30
 
31
- spec.add_development_dependency "bundler", "~> 1.17"
31
+ spec.add_development_dependency "bundler", "~> 2.1"
32
32
  spec.add_development_dependency "rake", "~> 13.0"
33
33
  spec.add_development_dependency "rspec", "~> 3.9"
34
34
  spec.add_development_dependency "simplecov", "~> 0"
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terjira
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaehyun Shin
8
+ - Ren Guoy
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2019-11-24 00:00:00.000000000 Z
12
+ date: 2020-01-02 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: thor
@@ -100,14 +101,14 @@ dependencies:
100
101
  requirements:
101
102
  - - "~>"
102
103
  - !ruby/object:Gem::Version
103
- version: '1.17'
104
+ version: '2.1'
104
105
  type: :development
105
106
  prerelease: false
106
107
  version_requirements: !ruby/object:Gem::Requirement
107
108
  requirements:
108
109
  - - "~>"
109
110
  - !ruby/object:Gem::Version
110
- version: '1.17'
111
+ version: '2.1'
111
112
  - !ruby/object:Gem::Dependency
112
113
  name: rake
113
114
  requirement: !ruby/object:Gem::Requirement
@@ -169,6 +170,7 @@ description: |-
169
170
  You do not need to remember resource key or id. Terjira suggests with interactive prompt.
170
171
  email:
171
172
  - keepcosmos@gmail.com
173
+ - guoy.ren@gmail.com
172
174
  executables:
173
175
  - jira
174
176
  extensions: []