playwright-cli 0.1.6 → 0.1.8
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/.gitignore +2 -0
- data/Gemfile.lock +3 -1
- data/README.md +51 -0
- data/lib/assets/templates/expanded_script_template.erb +1 -1
- data/lib/assets/templates/simple_script_template.erb +1 -1
- data/lib/assets/templates/version_subcommand_template.erb +1 -1
- data/lib/playwright/cli.rb +3 -0
- data/lib/playwright/cli/command.rb +1 -0
- data/lib/playwright/cli/utils.rb +2 -0
- data/lib/playwright/cli/utils/ask.rb +19 -5
- data/lib/playwright/cli/utils/display.rb +11 -10
- data/lib/playwright/cli/utils/file_manager.rb +7 -11
- data/lib/playwright/cli/utils/os.rb +36 -0
- data/lib/playwright/cli/utils/util.rb +13 -0
- data/lib/playwright/cli/version.rb +1 -1
- data/playwright-cli.gemspec +2 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d87579b2ff3473151b43b2ba48189ecc51ac5191d0ca04f25854e312304b0ab
|
4
|
+
data.tar.gz: e0c6dabc8b3744c2e6e9017f9b16ef07bcea7abf0d630f28cc5d3f928e84c3b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbc645bc301c06dc95c08799927c5975540b9b972128629ece2f829c523508ebaa0c25b321f38810f5fb8fd3fa9c5317ea795b350d719adeae7acaeaca6dabfc
|
7
|
+
data.tar.gz: 7f69dee107031ac44616a9c29fb1d494d082172db9409fcad23ce9a72c2384f23ab38cc9837d2d39e9e4ef6b4a0487aab1364d3e94a1d3e93bfef61e5d4374c5
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
playwright-cli (0.1.
|
4
|
+
playwright-cli (0.1.8)
|
5
5
|
colorize (~> 0.1)
|
6
6
|
hanami-cli (~> 0.1)
|
7
7
|
|
@@ -20,6 +20,7 @@ GEM
|
|
20
20
|
transproc (~> 1.0)
|
21
21
|
memfs (1.0.0)
|
22
22
|
method_source (0.9.0)
|
23
|
+
os (1.0.0)
|
23
24
|
pry (0.9.12.6)
|
24
25
|
coderay (~> 1.0)
|
25
26
|
method_source (~> 0.8)
|
@@ -49,6 +50,7 @@ PLATFORMS
|
|
49
50
|
DEPENDENCIES
|
50
51
|
bundler (~> 1.16)
|
51
52
|
memfs (~> 1.0)
|
53
|
+
os (~> 1.0)
|
52
54
|
playwright-cli!
|
53
55
|
pry (~> 0.9.0)
|
54
56
|
pry-nav (~> 0.2.4)
|
data/README.md
CHANGED
@@ -161,6 +161,57 @@ $ my-script greet tom #=> Why, hello tom!
|
|
161
161
|
$ my-script version #=> 0.0.1
|
162
162
|
```
|
163
163
|
|
164
|
+
### Helpers
|
165
|
+
|
166
|
+
Inside of your command, you have access to a few helper objects to make
|
167
|
+
interactions easier. You can see any of your helpers actions by calling the
|
168
|
+
`#actions` method on it.
|
169
|
+
|
170
|
+
#### Display
|
171
|
+
|
172
|
+
The Display helper has 3 actions, `print`, `error`, and `abort`. Each takes a
|
173
|
+
message as the first argument and can optionally take a color. `error` and
|
174
|
+
`abort` also exit the program.
|
175
|
+
|
176
|
+
`abort` should be used over `error` only if the user has triggered the exit.
|
177
|
+
A good example would be if you ask a user, "File already exists? Overwrite it?
|
178
|
+
[yn]" and they choose 'n'
|
179
|
+
|
180
|
+
```ruby
|
181
|
+
class Greet < Playwright::CLI::Command
|
182
|
+
def call(**)
|
183
|
+
display.print "Hello!", color: :blue
|
184
|
+
end
|
185
|
+
end
|
186
|
+
```
|
187
|
+
|
188
|
+
#### Ask
|
189
|
+
|
190
|
+
The Ask helper has 3 actions, `question`, `boolean_question`, and
|
191
|
+
`url_question`. Each takes a message as the only argument. `boolean_question`
|
192
|
+
and `url_question` validate the response. `question` does not.
|
193
|
+
|
194
|
+
```ruby
|
195
|
+
class Greet < Playwright::CLI::Command
|
196
|
+
def call(**)
|
197
|
+
ask.boolean_question "What's your name?" #=> "What's your name? [yn]"
|
198
|
+
end
|
199
|
+
end
|
200
|
+
```
|
201
|
+
|
202
|
+
#### OS
|
203
|
+
|
204
|
+
The OS helper has 2 actions, `open_url` and `open_editor`. `open_url` takes a
|
205
|
+
url and an optional name. `open_editor` takes a path and an optional name.
|
206
|
+
|
207
|
+
```ruby
|
208
|
+
class Greet < Playwright::CLI::Command
|
209
|
+
def call(**)
|
210
|
+
os.open_url url: 'http://google.com', name: 'google'
|
211
|
+
os.open_editor path: Dir.pwd, name: 'working directory'
|
212
|
+
end
|
213
|
+
end
|
214
|
+
```
|
164
215
|
|
165
216
|
### Edit An App
|
166
217
|
|
data/lib/playwright/cli.rb
CHANGED
data/lib/playwright/cli/utils.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'playwright/cli/utils/util'
|
1
2
|
require 'playwright/cli/utils/display'
|
2
3
|
|
3
4
|
module Playwright
|
@@ -9,20 +10,33 @@ module Playwright
|
|
9
10
|
@ask ||= Ask.new
|
10
11
|
end
|
11
12
|
|
12
|
-
class Ask
|
13
|
+
class Ask < Util
|
13
14
|
include Display
|
14
15
|
|
15
|
-
DEFAULT_COLOR = :
|
16
|
+
DEFAULT_COLOR = :light_blue
|
16
17
|
TRUE_RESPONSE = :y
|
17
18
|
FALSE_RESPONSE = :n
|
18
19
|
|
19
|
-
def boolean_question
|
20
|
-
|
21
|
-
response = $stdin.gets
|
20
|
+
def boolean_question user_question
|
21
|
+
response = question "#{user question} [yn]"
|
22
22
|
sanitized_response = response.chomp.strip.downcase.to_sym if response && response.length > 0
|
23
23
|
boolean_response_map[response]
|
24
24
|
end
|
25
25
|
|
26
|
+
def url_question user_question
|
27
|
+
response = question user_question
|
28
|
+
if response =~ URI::regexp
|
29
|
+
response
|
30
|
+
else
|
31
|
+
display.error "Invalid URL!"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def question user_question
|
36
|
+
display.print "#{user_question} ", color: DEFAULT_COLOR, method: :print
|
37
|
+
$stdin.gets
|
38
|
+
end
|
39
|
+
|
26
40
|
private
|
27
41
|
|
28
42
|
def boolean_response_map
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'playwright/cli/utils/util'
|
1
2
|
module Playwright
|
2
3
|
class CLI < Hanami::CLI
|
3
4
|
module Utils
|
@@ -7,8 +8,8 @@ module Playwright
|
|
7
8
|
@display ||= Display.new
|
8
9
|
end
|
9
10
|
|
10
|
-
class Display
|
11
|
-
|
11
|
+
class Display < Util
|
12
|
+
|
12
13
|
InvalidPrintMethod = Class.new StandardError
|
13
14
|
|
14
15
|
VALID_PRINT_METHODS = [:p, :puts, :print]
|
@@ -17,19 +18,19 @@ module Playwright
|
|
17
18
|
ERROR_COLOR = :red
|
18
19
|
|
19
20
|
def error msg, msg2 = nil
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
exit
|
21
|
+
print msg, color: :red
|
22
|
+
print "Action Cancelled.", color: ERROR_COLOR
|
23
|
+
print msg2, color: ERROR_COLOR if msg2
|
24
|
+
exit 1
|
24
25
|
end
|
25
26
|
|
26
27
|
def abort msg = nil
|
27
|
-
|
28
|
-
|
29
|
-
exit
|
28
|
+
print msg, color: WARNING_COLOR if msg
|
29
|
+
print "Action Cancelled.", color: WARNING_COLOR
|
30
|
+
exit 1
|
30
31
|
end
|
31
32
|
|
32
|
-
def
|
33
|
+
def print msg, method: :puts, color: DEFAULT_COLOR
|
33
34
|
validate_print_method!(method)
|
34
35
|
msg = msg.send(color) if defined?(Colorize)
|
35
36
|
send(method, msg)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'playwright/cli/utils/ask'
|
2
2
|
require 'playwright/cli/utils/display'
|
3
|
+
require 'playwright/cli/utils/os'
|
3
4
|
require 'playwright/cli/configuration'
|
4
5
|
require 'playwright/cli/template'
|
5
6
|
|
@@ -40,12 +41,7 @@ module Playwright
|
|
40
41
|
|
41
42
|
def open_editor script_name: nil
|
42
43
|
@script_name ||= script_name
|
43
|
-
|
44
|
-
if $?.success?
|
45
|
-
display.color_print "Opening `#{@script_name}` in your editor..."
|
46
|
-
else
|
47
|
-
display.error "Could not open Editor!"
|
48
|
-
end
|
44
|
+
os.open_editor name: @script_name, path: root_dir
|
49
45
|
end
|
50
46
|
|
51
47
|
def script_name_rb
|
@@ -140,9 +136,9 @@ module Playwright
|
|
140
136
|
validate_before_create_script_files!
|
141
137
|
self.class.create_file_structure
|
142
138
|
FileUtils.mkdir_p root_dir
|
143
|
-
display.
|
139
|
+
display.print "New Directory Created: #{root_dir}"
|
144
140
|
FileUtils.touch executable_file
|
145
|
-
display.
|
141
|
+
display.print "New File Created: #{executable_file}"
|
146
142
|
create_expanded_files if type == :expanded
|
147
143
|
end
|
148
144
|
|
@@ -153,7 +149,7 @@ module Playwright
|
|
153
149
|
|
154
150
|
def set_permissions
|
155
151
|
FileUtils.chmod "u+x", executable_file
|
156
|
-
display.
|
152
|
+
display.print "Executable Permissions Set: #{executable_file}"
|
157
153
|
end
|
158
154
|
|
159
155
|
def write_template
|
@@ -171,7 +167,7 @@ module Playwright
|
|
171
167
|
|
172
168
|
def create_symlink
|
173
169
|
FileUtils.symlink(executable_file, symlink_file)
|
174
|
-
display.
|
170
|
+
display.print "New Symlink Created: #{symlink_file} from #{executable_file}"
|
175
171
|
end
|
176
172
|
|
177
173
|
def validate_before_create_script_files!
|
@@ -194,7 +190,7 @@ module Playwright
|
|
194
190
|
validate_before_delete_script_files!
|
195
191
|
FileUtils.rm_rf root_dir
|
196
192
|
FileUtils.rm symlink_file
|
197
|
-
display.
|
193
|
+
display.print "Playwright script '#{script_name}' destroyed!"
|
198
194
|
end
|
199
195
|
|
200
196
|
def validate_before_delete_script_files!
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'playwright/cli/utils/util'
|
2
|
+
require 'playwright/cli/utils/display'
|
3
|
+
|
4
|
+
module Playwright
|
5
|
+
class CLI < Hanami::CLI
|
6
|
+
module Utils
|
7
|
+
module OS
|
8
|
+
|
9
|
+
def os
|
10
|
+
@os ||= OS.new
|
11
|
+
end
|
12
|
+
|
13
|
+
class OS < Util
|
14
|
+
include Display
|
15
|
+
|
16
|
+
def open_url url:, name: URI(url).host
|
17
|
+
if %x[ #{::OS.open_file_command} #{url} ]
|
18
|
+
display.print "Opening #{name} in your default browser..."
|
19
|
+
else
|
20
|
+
display.error "Failed to open your browser!"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def open_editor path:, name: Pathname.new(path).base
|
25
|
+
if %x[ $EDITOR #{path} ]
|
26
|
+
display.print "Opening #{name} in your default editor..."
|
27
|
+
else
|
28
|
+
display.error "Failed to open your editor!"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/playwright-cli.gemspec
CHANGED
@@ -36,7 +36,8 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency "rspec", "~> 3.0"
|
37
37
|
spec.add_development_dependency "pry", "~> 0.9.0"
|
38
38
|
spec.add_development_dependency "pry-nav", "~> 0.2.4"
|
39
|
-
spec.add_development_dependency "memfs",
|
39
|
+
spec.add_development_dependency "memfs", "~> 1.0"
|
40
|
+
spec.add_development_dependency "os", "~> 1.0"
|
40
41
|
|
41
42
|
spec.add_runtime_dependency "hanami-cli", "~>0.1"
|
42
43
|
spec.add_runtime_dependency "colorize", "~>0.1"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playwright-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Gregory
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: os
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: hanami-cli
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,6 +175,8 @@ files:
|
|
161
175
|
- lib/playwright/cli/utils/ask.rb
|
162
176
|
- lib/playwright/cli/utils/display.rb
|
163
177
|
- lib/playwright/cli/utils/file_manager.rb
|
178
|
+
- lib/playwright/cli/utils/os.rb
|
179
|
+
- lib/playwright/cli/utils/util.rb
|
164
180
|
- lib/playwright/cli/version.rb
|
165
181
|
- playwright-cli.gemspec
|
166
182
|
homepage: https://github.com/mgreg90/playwright-cli
|