iruby 0.3 → 0.4.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 +5 -5
- data/.travis.yml +35 -10
- data/Gemfile +4 -0
- data/README.md +115 -84
- data/Rakefile +26 -0
- data/ci/Dockerfile.base.erb +41 -0
- data/ci/Dockerfile.main.erb +9 -0
- data/ci/requirements.txt +1 -0
- data/docker/setup.sh +15 -0
- data/docker/test.sh +7 -0
- data/iruby.gemspec +4 -2
- data/lib/iruby.rb +13 -7
- data/lib/iruby/command.rb +67 -11
- data/lib/iruby/input/README.md +299 -0
- data/lib/iruby/jupyter.rb +76 -0
- data/lib/iruby/kernel.rb +49 -9
- data/lib/iruby/ostream.rb +4 -0
- data/lib/iruby/session.rb +116 -0
- data/lib/iruby/session/cztop.rb +4 -0
- data/lib/iruby/session/rbczmq.rb +5 -1
- data/lib/iruby/session_adapter.rb +68 -0
- data/lib/iruby/session_adapter/cztop_adapter.rb +45 -0
- data/lib/iruby/session_adapter/ffirzmq_adapter.rb +55 -0
- data/lib/iruby/session_adapter/pyzmq_adapter.rb +76 -0
- data/lib/iruby/session_adapter/rbczmq_adapter.rb +33 -0
- data/lib/iruby/utils.rb +1 -2
- data/lib/iruby/version.rb +1 -1
- data/run-test.sh +12 -0
- data/tasks/ci.rake +65 -0
- data/test/integration_test.rb +22 -10
- data/test/iruby/command_test.rb +208 -0
- data/test/iruby/jupyter_test.rb +28 -0
- data/test/iruby/multi_logger_test.rb +1 -1
- data/test/iruby/session_adapter/cztop_adapter_test.rb +20 -0
- data/test/iruby/session_adapter/ffirzmq_adapter_test.rb +20 -0
- data/test/iruby/session_adapter/rbczmq_adapter_test.rb +37 -0
- data/test/iruby/session_adapter/session_adapter_test_base.rb +29 -0
- data/test/iruby/session_adapter_test.rb +116 -0
- data/test/iruby/session_test.rb +53 -0
- data/test/test_helper.rb +44 -1
- metadata +72 -12
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'iruby/jupyter'
|
3
|
+
|
4
|
+
module IRubyTest
|
5
|
+
class JupyterDefaultKernelSpecDirectoryTest < TestBase
|
6
|
+
def setup
|
7
|
+
@kernel_spec = IRuby::Jupyter.kernelspec_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_default_windows
|
11
|
+
windows_only
|
12
|
+
appdata = IRuby::Jupyter.send :windows_user_appdata
|
13
|
+
assert_equal(File.join(appdata, 'jupyter/kernels'), @kernel_spec)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_default_apple
|
17
|
+
apple_only
|
18
|
+
assert_equal(File.expand_path('~/Library/Jupyter/kernels'), @kernel_spec)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_default_unix
|
22
|
+
unix_only
|
23
|
+
with_env('XDG_DATA_HOME' => nil) do
|
24
|
+
assert_equal(File.expand_path('~/.local/share/jupyter/kernels'), @kernel_spec)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -2,7 +2,7 @@ require 'stringio'
|
|
2
2
|
require 'test_helper'
|
3
3
|
require 'iruby/logger'
|
4
4
|
|
5
|
-
class MultiLoggerTest < IRubyTest
|
5
|
+
class IRubyTest::MultiLoggerTest < IRubyTest::TestBase
|
6
6
|
def test_multilogger
|
7
7
|
out, err = StringIO.new, StringIO.new
|
8
8
|
logger = IRuby::MultiLogger.new(Logger.new(out), Logger.new(err))
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative 'session_adapter_test_base'
|
2
|
+
require 'iruby'
|
3
|
+
|
4
|
+
module IRubyTest
|
5
|
+
if ENV['IRUBY_TEST_SESSION_ADAPTER_NAME'] == 'cztop'
|
6
|
+
class CztopAdapterTest < SessionAdapterTestBase
|
7
|
+
def adapter_class
|
8
|
+
IRuby::SessionAdapter::CztopAdapter
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_send
|
12
|
+
assert(adapter_class.available?)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_recv
|
16
|
+
skip
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative 'session_adapter_test_base'
|
2
|
+
require 'iruby'
|
3
|
+
|
4
|
+
module IRubyTest
|
5
|
+
if ENV['IRUBY_TEST_SESSION_ADAPTER_NAME'] == 'ffi-rzmq'
|
6
|
+
class FfirzmqAdapterTest < SessionAdapterTestBase
|
7
|
+
def adapter_class
|
8
|
+
IRuby::SessionAdapter::FfirzmqAdapter
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_send
|
12
|
+
assert(adapter_class.available?)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_recv
|
16
|
+
skip
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative 'session_adapter_test_base'
|
2
|
+
require 'iruby'
|
3
|
+
|
4
|
+
module IRubyTest
|
5
|
+
if ENV['IRUBY_TEST_SESSION_ADAPTER_NAME'] == 'rbczmq'
|
6
|
+
class RbczmqAdapterTest < SessionAdapterTestBase
|
7
|
+
def adapter_class
|
8
|
+
IRuby::SessionAdapter::RbczmqAdapter
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_send
|
12
|
+
dummy_message = MiniTest::Mock.new.expect(:called!, true)
|
13
|
+
|
14
|
+
dummy_socket = MiniTest::Mock.new.expect(:send_message, nil, [dummy_message])
|
15
|
+
|
16
|
+
ZMQ.stub(:Message, ->(message) { message.called!; message }) do
|
17
|
+
@session_adapter.send(dummy_socket, dummy_message)
|
18
|
+
end
|
19
|
+
|
20
|
+
assert(dummy_message.verify)
|
21
|
+
assert(dummy_socket.verify)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_recv
|
25
|
+
dummy_message = MiniTest::Mock.new
|
26
|
+
dummy_message.expect(:equal?, true, [dummy_message])
|
27
|
+
|
28
|
+
dummy_socket = MiniTest::Mock.new.expect(:recv_message, dummy_message)
|
29
|
+
|
30
|
+
assert_same(dummy_message, @session_adapter.recv(dummy_socket))
|
31
|
+
|
32
|
+
assert(dummy_message.verify)
|
33
|
+
assert(dummy_socket.verify)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module IRubyTest
|
4
|
+
class SessionAdapterTestBase < TestBase
|
5
|
+
# https://jupyter-client.readthedocs.io/en/stable/kernels.html#connection-files
|
6
|
+
def make_connection_config
|
7
|
+
{
|
8
|
+
"control_port" => 50160,
|
9
|
+
"shell_port" => 57503,
|
10
|
+
"transport" => "tcp",
|
11
|
+
"signature_scheme" => "hmac-sha256",
|
12
|
+
"stdin_port" => 52597,
|
13
|
+
"hb_port" => 42540,
|
14
|
+
"ip" => "127.0.0.1",
|
15
|
+
"iopub_port" => 40885,
|
16
|
+
"key" => "a0436f6c-1916-498b-8eb9-e81ab9368e84"
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def setup
|
21
|
+
@config = make_connection_config
|
22
|
+
@session_adapter = adapter_class.new(@config)
|
23
|
+
|
24
|
+
unless adapter_class.available?
|
25
|
+
skip "#{@session_adapter.name} is unavailable"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module IRubyTest
|
4
|
+
class SessionAdapterTest < TestBase
|
5
|
+
def test_available_p_return_false_when_load_error
|
6
|
+
subclass = Class.new(IRuby::SessionAdapter::BaseAdapter)
|
7
|
+
class << subclass
|
8
|
+
def load_requirements
|
9
|
+
raise LoadError
|
10
|
+
end
|
11
|
+
end
|
12
|
+
refute subclass.available?
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_select_adapter_class_with_rbczmq
|
16
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, true do
|
17
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, false do
|
18
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, false do
|
19
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, false do
|
20
|
+
cls = IRuby::SessionAdapter.select_adapter_class
|
21
|
+
assert_equal IRuby::SessionAdapter::RbczmqAdapter, cls
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_select_adapter_class_with_cztop
|
29
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, true do
|
30
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, false do
|
31
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, false do
|
32
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, false do
|
33
|
+
cls = IRuby::SessionAdapter.select_adapter_class
|
34
|
+
assert_equal IRuby::SessionAdapter::CztopAdapter, cls
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_select_adapter_class_with_ffirzmq
|
42
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, true do
|
43
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, false do
|
44
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, false do
|
45
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, false do
|
46
|
+
cls = IRuby::SessionAdapter.select_adapter_class
|
47
|
+
assert_equal IRuby::SessionAdapter::FfirzmqAdapter, cls
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_select_adapter_class_with_pyzmq
|
55
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, true do
|
56
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, false do
|
57
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, false do
|
58
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, false do
|
59
|
+
cls = IRuby::SessionAdapter.select_adapter_class
|
60
|
+
assert_equal IRuby::SessionAdapter::PyzmqAdapter, cls
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
def test_select_adapter_class_with_env
|
67
|
+
with_env('IRUBY_SESSION_ADAPTER' => 'rbczmq') do
|
68
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, true do
|
69
|
+
assert_equal IRuby::SessionAdapter::RbczmqAdapter, IRuby::SessionAdapter.select_adapter_class
|
70
|
+
end
|
71
|
+
|
72
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, false do
|
73
|
+
assert_raises IRuby::SessionAdapterNotFound do
|
74
|
+
IRuby::SessionAdapter.select_adapter_class
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
with_env('IRUBY_SESSION_ADAPTER' => 'cztop') do
|
80
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, true do
|
81
|
+
assert_equal IRuby::SessionAdapter::CztopAdapter, IRuby::SessionAdapter.select_adapter_class
|
82
|
+
end
|
83
|
+
|
84
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, false do
|
85
|
+
assert_raises IRuby::SessionAdapterNotFound do
|
86
|
+
IRuby::SessionAdapter.select_adapter_class
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
with_env('IRUBY_SESSION_ADAPTER' => 'ffi-rzmq') do
|
92
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, true do
|
93
|
+
assert_equal IRuby::SessionAdapter::FfirzmqAdapter, IRuby::SessionAdapter.select_adapter_class
|
94
|
+
end
|
95
|
+
|
96
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, false do
|
97
|
+
assert_raises IRuby::SessionAdapterNotFound do
|
98
|
+
IRuby::SessionAdapter.select_adapter_class
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
with_env('IRUBY_SESSION_ADAPTER' => 'pyzmq') do
|
104
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, true do
|
105
|
+
assert_equal IRuby::SessionAdapter::PyzmqAdapter, IRuby::SessionAdapter.select_adapter_class
|
106
|
+
end
|
107
|
+
|
108
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, false do
|
109
|
+
assert_raises IRuby::SessionAdapterNotFound do
|
110
|
+
IRuby::SessionAdapter.select_adapter_class
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module IRubyTest
|
4
|
+
class SessionAdapterSelectionTest < TestBase
|
5
|
+
def setup
|
6
|
+
# https://jupyter-client.readthedocs.io/en/stable/kernels.html#connection-files
|
7
|
+
@session_config = {
|
8
|
+
"control_port" => 0,
|
9
|
+
"shell_port" => 0,
|
10
|
+
"transport" => "tcp",
|
11
|
+
"signature_scheme" => "hmac-sha256",
|
12
|
+
"stdin_port" => 0,
|
13
|
+
"hb_port" => 0,
|
14
|
+
"ip" => "127.0.0.1",
|
15
|
+
"iopub_port" => 0,
|
16
|
+
"key" => "a0436f6c-1916-498b-8eb9-e81ab9368e84"
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_new_with_session_adapter
|
21
|
+
adapter_name = ENV['IRUBY_TEST_SESSION_ADAPTER_NAME']
|
22
|
+
adapter_class = case adapter_name
|
23
|
+
when 'cztop'
|
24
|
+
IRuby::SessionAdapter::CztopAdapter
|
25
|
+
when 'rbczmq'
|
26
|
+
IRuby::SessionAdapter::RbczmqAdapter
|
27
|
+
when 'ffi-rzmq'
|
28
|
+
IRuby::SessionAdapter::FfirzmqAdapter
|
29
|
+
when 'pyzmq'
|
30
|
+
IRuby::SessionAdapter::PyzmqAdapter
|
31
|
+
else
|
32
|
+
flunk "Unknown session adapter: #{adapter_name}"
|
33
|
+
end
|
34
|
+
|
35
|
+
session = IRuby::Session.new(@session_config, adapter_name)
|
36
|
+
assert_kind_of(adapter_class, session.adapter)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_without_any_session_adapter
|
40
|
+
IRuby::SessionAdapter::CztopAdapter.stub :available?, false do
|
41
|
+
IRuby::SessionAdapter::RbczmqAdapter.stub :available?, false do
|
42
|
+
IRuby::SessionAdapter::FfirzmqAdapter.stub :available?, false do
|
43
|
+
IRuby::SessionAdapter::PyzmqAdapter.stub :available?, false do
|
44
|
+
assert_raises IRuby::SessionAdapterNotFound do
|
45
|
+
IRuby::Session.new(@session_config)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,5 +1,48 @@
|
|
1
1
|
require 'iruby'
|
2
|
+
require 'tmpdir'
|
2
3
|
require 'minitest/autorun'
|
3
4
|
|
4
|
-
|
5
|
+
module IRubyTest
|
6
|
+
class TestBase < Minitest::Test
|
7
|
+
private
|
8
|
+
|
9
|
+
def ignore_warning
|
10
|
+
saved, $VERBOSE = $VERBOSE , nil
|
11
|
+
yield
|
12
|
+
ensure
|
13
|
+
$VERBOSE = saved
|
14
|
+
end
|
15
|
+
def with_env(env)
|
16
|
+
keys = env.keys
|
17
|
+
saved_values = ENV.values_at(*keys)
|
18
|
+
ENV.update(env)
|
19
|
+
yield
|
20
|
+
ensure
|
21
|
+
if keys && saved_values
|
22
|
+
keys.zip(saved_values) do |k, v|
|
23
|
+
ENV[k] = v
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def windows_only
|
29
|
+
skip('windows only test') unless windows?
|
30
|
+
end
|
31
|
+
|
32
|
+
def apple_only
|
33
|
+
skip('apple only test') unless windows?
|
34
|
+
end
|
35
|
+
|
36
|
+
def unix_only
|
37
|
+
skip('unix only test') if windows? || apple?
|
38
|
+
end
|
39
|
+
|
40
|
+
def windows?
|
41
|
+
/mingw|mswin/ =~ RUBY_PLATFORM
|
42
|
+
end
|
43
|
+
|
44
|
+
def apple?
|
45
|
+
/darwin/ =~ RUBY_PLATFORM
|
46
|
+
end
|
47
|
+
end
|
5
48
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Mendler
|
@@ -9,36 +9,64 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-07-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: minitest
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: ffi-rzmq
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: pycall
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.2.1
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
40
68
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
69
|
+
version: 1.2.1
|
42
70
|
- !ruby/object:Gem::Dependency
|
43
71
|
name: bond
|
44
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,6 +141,11 @@ files:
|
|
113
141
|
- README.md
|
114
142
|
- Rakefile
|
115
143
|
- bin/iruby
|
144
|
+
- ci/Dockerfile.base.erb
|
145
|
+
- ci/Dockerfile.main.erb
|
146
|
+
- ci/requirements.txt
|
147
|
+
- docker/setup.sh
|
148
|
+
- docker/test.sh
|
116
149
|
- iruby.gemspec
|
117
150
|
- lib/iruby.rb
|
118
151
|
- lib/iruby/assets/kernel.css
|
@@ -126,6 +159,7 @@ files:
|
|
126
159
|
- lib/iruby/formatter.rb
|
127
160
|
- lib/iruby/input.rb
|
128
161
|
- lib/iruby/input/README.ipynb
|
162
|
+
- lib/iruby/input/README.md
|
129
163
|
- lib/iruby/input/autoload.rb
|
130
164
|
- lib/iruby/input/builder.rb
|
131
165
|
- lib/iruby/input/button.rb
|
@@ -142,20 +176,37 @@ files:
|
|
142
176
|
- lib/iruby/input/select.rb
|
143
177
|
- lib/iruby/input/textarea.rb
|
144
178
|
- lib/iruby/input/widget.rb
|
179
|
+
- lib/iruby/jupyter.rb
|
145
180
|
- lib/iruby/kernel.rb
|
146
181
|
- lib/iruby/logger.rb
|
147
182
|
- lib/iruby/ostream.rb
|
183
|
+
- lib/iruby/session.rb
|
148
184
|
- lib/iruby/session/cztop.rb
|
149
185
|
- lib/iruby/session/ffi_rzmq.rb
|
150
186
|
- lib/iruby/session/mixin.rb
|
151
187
|
- lib/iruby/session/rbczmq.rb
|
188
|
+
- lib/iruby/session_adapter.rb
|
189
|
+
- lib/iruby/session_adapter/cztop_adapter.rb
|
190
|
+
- lib/iruby/session_adapter/ffirzmq_adapter.rb
|
191
|
+
- lib/iruby/session_adapter/pyzmq_adapter.rb
|
192
|
+
- lib/iruby/session_adapter/rbczmq_adapter.rb
|
152
193
|
- lib/iruby/utils.rb
|
153
194
|
- lib/iruby/version.rb
|
154
195
|
- logo/logo-32x32.png
|
155
196
|
- logo/logo-64x64.png
|
156
197
|
- logo/ruby.svg
|
198
|
+
- run-test.sh
|
199
|
+
- tasks/ci.rake
|
157
200
|
- test/integration_test.rb
|
201
|
+
- test/iruby/command_test.rb
|
202
|
+
- test/iruby/jupyter_test.rb
|
158
203
|
- test/iruby/multi_logger_test.rb
|
204
|
+
- test/iruby/session_adapter/cztop_adapter_test.rb
|
205
|
+
- test/iruby/session_adapter/ffirzmq_adapter_test.rb
|
206
|
+
- test/iruby/session_adapter/rbczmq_adapter_test.rb
|
207
|
+
- test/iruby/session_adapter/session_adapter_test_base.rb
|
208
|
+
- test/iruby/session_adapter_test.rb
|
209
|
+
- test/iruby/session_test.rb
|
159
210
|
- test/test_helper.rb
|
160
211
|
homepage: https://github.com/SciRuby/iruby
|
161
212
|
licenses:
|
@@ -169,6 +220,8 @@ post_install_message: |+
|
|
169
220
|
* gnuplot
|
170
221
|
* rubyvis
|
171
222
|
* nyaplot
|
223
|
+
* cztop
|
224
|
+
* rbczmq
|
172
225
|
|
173
226
|
rdoc_options: []
|
174
227
|
require_paths:
|
@@ -184,12 +237,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
237
|
- !ruby/object:Gem::Version
|
185
238
|
version: '0'
|
186
239
|
requirements: []
|
187
|
-
|
188
|
-
rubygems_version: 2.5.2
|
240
|
+
rubygems_version: 3.0.4
|
189
241
|
signing_key:
|
190
242
|
specification_version: 4
|
191
243
|
summary: Ruby Kernel for Jupyter/IPython
|
192
244
|
test_files:
|
193
245
|
- test/integration_test.rb
|
246
|
+
- test/iruby/command_test.rb
|
247
|
+
- test/iruby/jupyter_test.rb
|
194
248
|
- test/iruby/multi_logger_test.rb
|
249
|
+
- test/iruby/session_adapter/cztop_adapter_test.rb
|
250
|
+
- test/iruby/session_adapter/ffirzmq_adapter_test.rb
|
251
|
+
- test/iruby/session_adapter/rbczmq_adapter_test.rb
|
252
|
+
- test/iruby/session_adapter/session_adapter_test_base.rb
|
253
|
+
- test/iruby/session_adapter_test.rb
|
254
|
+
- test/iruby/session_test.rb
|
195
255
|
- test/test_helper.rb
|