abt-cli 0.0.17 → 0.0.22
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 +4 -4
- data/bin/abt +3 -3
- data/lib/abt.rb +6 -6
- data/lib/abt/ari.rb +20 -0
- data/lib/abt/ari_list.rb +13 -0
- data/lib/abt/base_command.rb +63 -0
- data/lib/abt/cli.rb +58 -59
- data/lib/abt/cli/arguments_parser.rb +8 -27
- data/lib/abt/cli/global_commands.rb +23 -0
- data/lib/abt/cli/global_commands/commands.rb +23 -0
- data/lib/abt/cli/global_commands/examples.rb +23 -0
- data/lib/abt/cli/global_commands/help.rb +23 -0
- data/lib/abt/cli/global_commands/readme.rb +23 -0
- data/lib/abt/cli/global_commands/share.rb +36 -0
- data/lib/abt/cli/global_commands/version.rb +23 -0
- data/lib/abt/cli/prompt.rb +52 -20
- data/lib/abt/docs.rb +48 -25
- data/lib/abt/docs/cli.rb +7 -7
- data/lib/abt/docs/markdown.rb +13 -12
- data/lib/abt/git_config.rb +21 -39
- data/lib/abt/providers/asana/api.rb +9 -9
- data/lib/abt/providers/asana/base_command.rb +16 -38
- data/lib/abt/providers/asana/commands/add.rb +18 -15
- data/lib/abt/providers/asana/commands/branch_name.rb +13 -8
- data/lib/abt/providers/asana/commands/clear.rb +8 -7
- data/lib/abt/providers/asana/commands/current.rb +23 -38
- data/lib/abt/providers/asana/commands/finalize.rb +11 -16
- data/lib/abt/providers/asana/commands/harvest_time_entry_data.rb +14 -9
- data/lib/abt/providers/asana/commands/init.rb +8 -41
- data/lib/abt/providers/asana/commands/pick.rb +22 -17
- data/lib/abt/providers/asana/commands/projects.rb +5 -5
- data/lib/abt/providers/asana/commands/share.rb +6 -8
- data/lib/abt/providers/asana/commands/start.rb +26 -23
- data/lib/abt/providers/asana/commands/tasks.rb +6 -5
- data/lib/abt/providers/asana/configuration.rb +34 -40
- data/lib/abt/providers/asana/path.rb +36 -0
- data/lib/abt/providers/devops/api.rb +23 -11
- data/lib/abt/providers/devops/base_command.rb +18 -43
- data/lib/abt/providers/devops/commands/boards.rb +5 -7
- data/lib/abt/providers/devops/commands/branch_name.rb +14 -10
- data/lib/abt/providers/devops/commands/clear.rb +8 -7
- data/lib/abt/providers/devops/commands/current.rb +25 -49
- data/lib/abt/providers/devops/commands/harvest_time_entry_data.rb +20 -12
- data/lib/abt/providers/devops/commands/init.rb +29 -25
- data/lib/abt/providers/devops/commands/pick.rb +11 -18
- data/lib/abt/providers/devops/commands/share.rb +7 -6
- data/lib/abt/providers/devops/commands/{work-items.rb → work_items.rb} +3 -3
- data/lib/abt/providers/devops/configuration.rb +31 -56
- data/lib/abt/providers/devops/path.rb +51 -0
- data/lib/abt/providers/git/commands/branch.rb +29 -25
- data/lib/abt/providers/harvest/api.rb +8 -8
- data/lib/abt/providers/harvest/base_command.rb +18 -38
- data/lib/abt/providers/harvest/commands/clear.rb +8 -7
- data/lib/abt/providers/harvest/commands/current.rb +28 -35
- data/lib/abt/providers/harvest/commands/init.rb +10 -39
- data/lib/abt/providers/harvest/commands/pick.rb +11 -12
- data/lib/abt/providers/harvest/commands/projects.rb +5 -5
- data/lib/abt/providers/harvest/commands/share.rb +6 -8
- data/lib/abt/providers/harvest/commands/start.rb +5 -3
- data/lib/abt/providers/harvest/commands/stop.rb +13 -13
- data/lib/abt/providers/harvest/commands/tasks.rb +9 -6
- data/lib/abt/providers/harvest/commands/track.rb +40 -32
- data/lib/abt/providers/harvest/configuration.rb +28 -37
- data/lib/abt/providers/harvest/path.rb +36 -0
- data/lib/abt/version.rb +1 -1
- metadata +18 -6
- data/lib/abt/cli/base_command.rb +0 -61
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Abt
|
4
|
+
module Providers
|
5
|
+
module Harvest
|
6
|
+
class Path < String
|
7
|
+
PATH_REGEX = %r{^(?<project_id>\d+)?/?(?<task_id>\d+)?$}.freeze
|
8
|
+
|
9
|
+
def self.from_ids(project_id = nil, task_id = nil)
|
10
|
+
path = project_id ? [project_id, *task_id].join("/") : ""
|
11
|
+
new(path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(path = "")
|
15
|
+
raise Abt::Cli::Abort, "Invalid path: #{path}" unless PATH_REGEX.match?(path)
|
16
|
+
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
def project_id
|
21
|
+
match[:project_id]
|
22
|
+
end
|
23
|
+
|
24
|
+
def task_id
|
25
|
+
match[:task_id]
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def match
|
31
|
+
@match ||= PATH_REGEX.match(self)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/abt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abt-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesper Sørensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-inflector
|
@@ -75,9 +75,18 @@ extensions: []
|
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
77
|
- "./lib/abt.rb"
|
78
|
+
- "./lib/abt/ari.rb"
|
79
|
+
- "./lib/abt/ari_list.rb"
|
80
|
+
- "./lib/abt/base_command.rb"
|
78
81
|
- "./lib/abt/cli.rb"
|
79
82
|
- "./lib/abt/cli/arguments_parser.rb"
|
80
|
-
- "./lib/abt/cli/
|
83
|
+
- "./lib/abt/cli/global_commands.rb"
|
84
|
+
- "./lib/abt/cli/global_commands/commands.rb"
|
85
|
+
- "./lib/abt/cli/global_commands/examples.rb"
|
86
|
+
- "./lib/abt/cli/global_commands/help.rb"
|
87
|
+
- "./lib/abt/cli/global_commands/readme.rb"
|
88
|
+
- "./lib/abt/cli/global_commands/share.rb"
|
89
|
+
- "./lib/abt/cli/global_commands/version.rb"
|
81
90
|
- "./lib/abt/cli/prompt.rb"
|
82
91
|
- "./lib/abt/docs.rb"
|
83
92
|
- "./lib/abt/docs/cli.rb"
|
@@ -102,6 +111,7 @@ files:
|
|
102
111
|
- "./lib/abt/providers/asana/commands/start.rb"
|
103
112
|
- "./lib/abt/providers/asana/commands/tasks.rb"
|
104
113
|
- "./lib/abt/providers/asana/configuration.rb"
|
114
|
+
- "./lib/abt/providers/asana/path.rb"
|
105
115
|
- "./lib/abt/providers/devops.rb"
|
106
116
|
- "./lib/abt/providers/devops/api.rb"
|
107
117
|
- "./lib/abt/providers/devops/base_command.rb"
|
@@ -113,8 +123,9 @@ files:
|
|
113
123
|
- "./lib/abt/providers/devops/commands/init.rb"
|
114
124
|
- "./lib/abt/providers/devops/commands/pick.rb"
|
115
125
|
- "./lib/abt/providers/devops/commands/share.rb"
|
116
|
-
- "./lib/abt/providers/devops/commands/
|
126
|
+
- "./lib/abt/providers/devops/commands/work_items.rb"
|
117
127
|
- "./lib/abt/providers/devops/configuration.rb"
|
128
|
+
- "./lib/abt/providers/devops/path.rb"
|
118
129
|
- "./lib/abt/providers/git.rb"
|
119
130
|
- "./lib/abt/providers/git/commands/branch.rb"
|
120
131
|
- "./lib/abt/providers/harvest.rb"
|
@@ -131,6 +142,7 @@ files:
|
|
131
142
|
- "./lib/abt/providers/harvest/commands/tasks.rb"
|
132
143
|
- "./lib/abt/providers/harvest/commands/track.rb"
|
133
144
|
- "./lib/abt/providers/harvest/configuration.rb"
|
145
|
+
- "./lib/abt/providers/harvest/path.rb"
|
134
146
|
- "./lib/abt/version.rb"
|
135
147
|
- bin/abt
|
136
148
|
homepage: https://github.com/abtion/abt
|
@@ -147,14 +159,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
147
159
|
requirements:
|
148
160
|
- - ">="
|
149
161
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
162
|
+
version: 2.5.0
|
151
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
164
|
requirements:
|
153
165
|
- - ">="
|
154
166
|
- !ruby/object:Gem::Version
|
155
167
|
version: '0'
|
156
168
|
requirements: []
|
157
|
-
rubygems_version: 3.
|
169
|
+
rubygems_version: 3.1.4
|
158
170
|
signing_key:
|
159
171
|
specification_version: 4
|
160
172
|
summary: Versatile scripts
|
data/lib/abt/cli/base_command.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Abt
|
4
|
-
class Cli
|
5
|
-
class BaseCommand
|
6
|
-
def self.usage
|
7
|
-
raise NotImplementedError, 'Command classes must implement .command'
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.description
|
11
|
-
raise NotImplementedError, 'Command classes must implement .description'
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.flags
|
15
|
-
[]
|
16
|
-
end
|
17
|
-
|
18
|
-
attr_reader :path, :flags, :cli
|
19
|
-
|
20
|
-
def initialize(path:, flags:, cli:)
|
21
|
-
@cli = cli
|
22
|
-
@path = path
|
23
|
-
@flags = parse_flags(flags)
|
24
|
-
end
|
25
|
-
|
26
|
-
def perform
|
27
|
-
raise NotImplementedError, 'Command classes must implement #perform'
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def parse_flags(flags)
|
33
|
-
result = {}
|
34
|
-
|
35
|
-
flag_parser.parse!(flags.dup, into: result)
|
36
|
-
|
37
|
-
cli.exit_with_message(flag_parser.help) if result[:help]
|
38
|
-
|
39
|
-
result
|
40
|
-
rescue OptionParser::InvalidOption => e
|
41
|
-
cli.abort e.message
|
42
|
-
end
|
43
|
-
|
44
|
-
def flag_parser
|
45
|
-
@flag_parser ||= OptionParser.new do |opts|
|
46
|
-
opts.banner = <<~TXT
|
47
|
-
#{self.class.description}
|
48
|
-
|
49
|
-
Usage: #{self.class.usage}
|
50
|
-
TXT
|
51
|
-
|
52
|
-
opts.on('-h', '--help')
|
53
|
-
|
54
|
-
self.class.flags.each do |(*flag)|
|
55
|
-
opts.on(*flag)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|