newline_hw 1.1.0 → 1.1.1
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/lib/newline_hw/chrome_manifest.rb +3 -7
- data/lib/newline_hw/cli.rb +0 -2
- data/lib/newline_hw/stream_processor.rb +19 -12
- data/lib/newline_hw/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 006d1fcbcffa671ac54794cdedb9df83e7b59aa6
|
4
|
+
data.tar.gz: 45198d4a1e3f9d9b7537a5c8e3a9f94b9fcf699f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d6293df57b622eb50fa4d32a01b729361278faad0ad4b4180fbe20f9f153e92d8ca054de3f3e48bc34adeeff5ebaae5176c5dae6493fcbb58e09f34690e07dc
|
7
|
+
data.tar.gz: 17777115ba1343f504f73bfebf19ff44bd85d691a4e89f26b21b81aab445c203e9615044749af2747b91505f270e6162e69f421e74f8ea6fde9476afe1e59877
|
@@ -6,7 +6,7 @@ module NewlineHw
|
|
6
6
|
module_function
|
7
7
|
|
8
8
|
def binary_path
|
9
|
-
File.expand_path File.join(
|
9
|
+
File.expand_path File.join(NewlineHw.root_path, "exe", "newline_hw_stream_shim")
|
10
10
|
end
|
11
11
|
|
12
12
|
def native_messaging_manifest_path
|
@@ -16,7 +16,7 @@ module NewlineHw
|
|
16
16
|
def generate
|
17
17
|
{
|
18
18
|
name: NAME,
|
19
|
-
description:
|
19
|
+
description: "Quickly Clone and setup basic ruby and JS projects.",
|
20
20
|
path: binary_path,
|
21
21
|
type: "stdio",
|
22
22
|
allowed_origins: [
|
@@ -28,7 +28,7 @@ module NewlineHw
|
|
28
28
|
|
29
29
|
def write
|
30
30
|
create_native_messaging_manifest_directory
|
31
|
-
|
31
|
+
|
32
32
|
File.open(native_messaging_manifest_path, "w+") do |f|
|
33
33
|
f.write(JSON.pretty_generate(generate))
|
34
34
|
end
|
@@ -38,9 +38,5 @@ module NewlineHw
|
|
38
38
|
return if Dir.exist?(File.dirname(native_messaging_manifest_path))
|
39
39
|
Dir.mkdir(File.dirname(native_messaging_manifest_path))
|
40
40
|
end
|
41
|
-
|
42
|
-
private def spec
|
43
|
-
@_gemspec ||= Gem::Specification.load("newline_hw.gemspec")
|
44
|
-
end
|
45
41
|
end
|
46
42
|
end
|
data/lib/newline_hw/cli.rb
CHANGED
@@ -14,8 +14,6 @@ module NewlineHw
|
|
14
14
|
desc "install newlinehw config file and chrome adapter",
|
15
15
|
"will setup a logging file and a chrome manifest to allow this app to be communicated to by the newline-assistant chrome extension."
|
16
16
|
def install
|
17
|
-
NewlineHw.make_log_directory
|
18
|
-
ChromeManifest.write
|
19
17
|
NewlineHw::Config.install_default
|
20
18
|
say "Installed a config file to `#{NewlineHw::Config::CONFIG_PATH}`"
|
21
19
|
install_chrome
|
@@ -14,29 +14,36 @@ module NewlineHw
|
|
14
14
|
|
15
15
|
def on_message(&block)
|
16
16
|
loop do
|
17
|
-
msg =
|
17
|
+
msg = self.class.read_native_json_message(@stdin)
|
18
18
|
sleep(SHUTDOWN_PAUSE) && exit(0) unless msg
|
19
19
|
@logger.debug "Receiving Message #{msg} of size:#{msg.length}"
|
20
20
|
instance_exec(msg, &block)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def send_message(message)
|
25
|
+
@logger.debug "Sending Message: #{message}"
|
26
|
+
self.class.write_message(@stdout, message)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.write_message(io, msg)
|
30
|
+
msg = msg.to_json
|
31
|
+
io.write [msg.length].pack("I")
|
32
|
+
io.write(msg)
|
33
|
+
io.flush
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.read_native_json_message(io)
|
25
37
|
# Read signed integer with a max length of 4 bytes.
|
26
|
-
text_length_bytes =
|
38
|
+
text_length_bytes = io.read(4)
|
27
39
|
return unless text_length_bytes
|
28
40
|
|
29
41
|
# Unpack bytes in a ruby int.
|
30
42
|
text_length = text_length_bytes.unpack("i")[0]
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
m = message.to_json
|
36
|
-
@logger.debug "Sending Message: #{m.length} #{m}"
|
37
|
-
@stdout.write [m.length].pack("I")
|
38
|
-
@stdout.write(m)
|
39
|
-
@stdout.flush
|
43
|
+
text = io.read(text_length)
|
44
|
+
JSON.parse(text)
|
45
|
+
rescue JSON::ParserError
|
46
|
+
puts text
|
40
47
|
end
|
41
48
|
end
|
42
49
|
end
|
data/lib/newline_hw/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newline_hw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Russell Osborne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|