gm-notepad 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/gm-notepad.gemspec +1 -0
- data/lib/gm/notepad/container.rb +16 -0
- data/lib/gm/notepad/input_handlers/shell_out_handler.rb +4 -3
- data/lib/gm/notepad/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 183a799326643a98e2ee4936d5788549453746e1f74fcd5439b85ffbcfbb24f8
|
4
|
+
data.tar.gz: 1e55a32eaab16d88b6ae07ecfa155b01fb2c261943d80cf95175200b3c239553
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ca9a59b30268a02d7e94718276f597f6c120f4f5cfa120e0f6159a2ee340eb7e69491326d1f04c148994b040f704b876acfd53f02d463b66ff407e0990b34de
|
7
|
+
data.tar.gz: 6207a2cd3628d05ebf53e97e232c25c3ee1cb5bfd36a909ed6177ff4c79089957ab32c3829badbb11863a5a72bc814de0ddf93c562d335e104775a4ce2de95d0
|
data/gm-notepad.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_dependency "dry-container"
|
27
27
|
spec.add_dependency "dry-initializer"
|
28
28
|
spec.add_dependency "term-ansicolor"
|
29
|
+
spec.add_dependency "popen4"
|
29
30
|
spec.add_development_dependency "bundler"
|
30
31
|
spec.add_development_dependency "rake"
|
31
32
|
spec.add_development_dependency "rspec"
|
data/lib/gm/notepad/container.rb
CHANGED
@@ -11,6 +11,22 @@ module Gm
|
|
11
11
|
Config
|
12
12
|
end
|
13
13
|
|
14
|
+
# Responsible for handling command line parsing. I wanted a separate function to unit test.
|
15
|
+
register "shell_handler" do
|
16
|
+
require "popen4"
|
17
|
+
->(input) do
|
18
|
+
output = ""
|
19
|
+
POpen4.popen4(input.to_s) do |stdout, stderr, stdin, pid|
|
20
|
+
output = stdout.read.strip
|
21
|
+
end
|
22
|
+
if output.empty?
|
23
|
+
"# Command Not Found: #{input.to_s.inspect}"
|
24
|
+
else
|
25
|
+
output
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
14
30
|
register "table_registry" do
|
15
31
|
require 'gm/notepad/table_registry'
|
16
32
|
TableRegistry.build_and_load
|
@@ -1,9 +1,11 @@
|
|
1
1
|
require "gm/notepad/input_handlers/default_handler"
|
2
|
-
require "shellwords"
|
3
2
|
module Gm
|
4
3
|
module Notepad
|
5
4
|
module InputHandlers
|
5
|
+
# Responsible for handling shell out commands
|
6
6
|
class ShellOutHandler < DefaultHandler
|
7
|
+
option :shell_handler, default: -> { Container.resolve(:shell_handler) }
|
8
|
+
|
7
9
|
SHELL_OUT_HANDLER_REGEXP = /^`/.freeze
|
8
10
|
TO_OUTPUT_REGEXP = /^\>/.freeze
|
9
11
|
|
@@ -20,8 +22,7 @@ module Gm
|
|
20
22
|
else
|
21
23
|
to_output = false
|
22
24
|
end
|
23
|
-
|
24
|
-
response = `#{command.shelljoin}`.strip
|
25
|
+
response = shell_handler.call(input)
|
25
26
|
|
26
27
|
input.for_rendering(
|
27
28
|
text: response,
|
data/lib/gm/notepad/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gm-notepad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Friesen
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: popen4
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|