Go.rb 0.1.3 → 0.2.0
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/go.rb +2 -0
- data/lib/go/kernel.rb +8 -0
- data/lib/go/process/channel.rb +51 -0
- data/lib/go/process/goprocess.rb +28 -0
- data/lib/go/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e83d89e95b8c04124d749769213f95cde616d2b4
|
4
|
+
data.tar.gz: d13d4a943eb24c3bba7f0b6e6c32bde158c7c955
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5f2b7ab6fb493a82ad4f2d82fcb47b16f3c7d8adb81506a520246ab46392271c078048008960829b0c3c07642e01017eb3510aafdc7ea5554c98def82b0356e
|
7
|
+
data.tar.gz: ea7b1925d8f6365b442f79d929b690527c5b2ffd52b748e8eaaface9552ee040b276a67a68401e660c9c2e5488b441228ce9085201ce1b9eea5edef01794da6b
|
data/lib/go.rb
CHANGED
data/lib/go/kernel.rb
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
module Go
|
2
|
+
class Channel
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
@reader, @writer = IO.pipe
|
6
|
+
end
|
7
|
+
|
8
|
+
def puts data
|
9
|
+
@writer.puts data
|
10
|
+
end
|
11
|
+
|
12
|
+
def << data
|
13
|
+
write data
|
14
|
+
end
|
15
|
+
|
16
|
+
def gets
|
17
|
+
@reader.gets
|
18
|
+
end
|
19
|
+
|
20
|
+
def write data
|
21
|
+
@writer.write data
|
22
|
+
end
|
23
|
+
|
24
|
+
def read length=-1
|
25
|
+
if length == -1
|
26
|
+
@reader.read
|
27
|
+
else
|
28
|
+
@reader.read length
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def reader
|
33
|
+
@reader
|
34
|
+
end
|
35
|
+
|
36
|
+
def writer
|
37
|
+
@writer
|
38
|
+
end
|
39
|
+
|
40
|
+
def close
|
41
|
+
destroy
|
42
|
+
end
|
43
|
+
|
44
|
+
def destroy
|
45
|
+
@reader.close
|
46
|
+
@writer.close
|
47
|
+
@reader = nil
|
48
|
+
@writer = nil
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Go
|
2
|
+
class Process
|
3
|
+
|
4
|
+
def initialize *channels, &block
|
5
|
+
@channels = channels
|
6
|
+
@pid = fork {
|
7
|
+
block.call *channels
|
8
|
+
}
|
9
|
+
end
|
10
|
+
|
11
|
+
def wait
|
12
|
+
::Process.wait @pid
|
13
|
+
end
|
14
|
+
|
15
|
+
def channels
|
16
|
+
@channels
|
17
|
+
end
|
18
|
+
|
19
|
+
def pid
|
20
|
+
@pid
|
21
|
+
end
|
22
|
+
|
23
|
+
def kill
|
24
|
+
::Process.kill 9, @pid
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/go/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Go.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JacisNonsense
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,6 +86,8 @@ files:
|
|
86
86
|
- lib/go/engine.rb
|
87
87
|
- lib/go/goconfig.rb
|
88
88
|
- lib/go/kernel.rb
|
89
|
+
- lib/go/process/channel.rb
|
90
|
+
- lib/go/process/goprocess.rb
|
89
91
|
- lib/go/version.rb
|
90
92
|
homepage: http://www.github.com/JacisNonsense/go.rb
|
91
93
|
licenses: []
|