iruby 0.8.0 → 0.8.2
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/.github/workflows/ci.yml +32 -8
- data/CHANGES.md +18 -0
- data/Gemfile +8 -0
- data/README.md +19 -27
- data/iruby.gemspec +10 -2
- data/lib/iruby/application.rb +2 -2
- data/lib/iruby/backend.rb +14 -2
- data/lib/iruby/comm.rb +6 -6
- data/lib/iruby/display.rb +3 -4
- data/lib/iruby/formatter.rb +1 -1
- data/lib/iruby/ostream.rb +5 -1
- data/lib/iruby/session/mixin.rb +2 -2
- data/lib/iruby/session.rb +2 -2
- data/lib/iruby/session_adapter.rb +1 -1
- data/lib/iruby/version.rb +1 -1
- data/run-test.sh +1 -1
- data/test/integration_test.rb +1 -1
- data/test/iruby/application/kernel_test.rb +1 -1
- data/test/iruby/application/register_test.rb +1 -1
- metadata +10 -21
- data/ext/Rakefile +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f389a45d763afc30ae093cb65b479b727bde7f1a4ecf04246329f56099ec280
|
4
|
+
data.tar.gz: 16dc91aaba973d5b0e8cc4c2d9444266c9c8f479704a5394103a732f2f70ba01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2fcf2691c1f795abad87a5bfe174f17dd49980c11a6ffc1c3fc665e4345cf14caf3be273ff6123224864d261b9b6b730c9bd16907dcd535d2a168ce07f6763a
|
7
|
+
data.tar.gz: 523123ce6314e0f5e5e49dc0156dd00e6d3aac45b49af8780009df1977c7edd3306388ed2b3375a315ed5267da0c2311a6da21bbd0fffae58ef8fe19a8079ce6
|
data/.github/workflows/ci.yml
CHANGED
@@ -3,10 +3,7 @@ name: CI
|
|
3
3
|
on:
|
4
4
|
push:
|
5
5
|
pull_request:
|
6
|
-
|
7
|
-
- opened
|
8
|
-
- synchronize
|
9
|
-
- reopened
|
6
|
+
workflow_dispatch:
|
10
7
|
|
11
8
|
jobs:
|
12
9
|
ubuntu:
|
@@ -19,11 +16,14 @@ jobs:
|
|
19
16
|
os:
|
20
17
|
- ubuntu-latest
|
21
18
|
ruby:
|
19
|
+
- "3.4"
|
22
20
|
- "3.3"
|
23
21
|
- "3.2"
|
24
22
|
- "3.1"
|
25
23
|
- "3.0"
|
26
24
|
- "2.7"
|
25
|
+
- "2.6"
|
26
|
+
- "2.5"
|
27
27
|
- debug
|
28
28
|
|
29
29
|
steps:
|
@@ -37,17 +37,41 @@ jobs:
|
|
37
37
|
|
38
38
|
- run: rake build
|
39
39
|
|
40
|
-
- name: Install ffi
|
40
|
+
- name: Install ffi (if Ruby 2.7)
|
41
41
|
if: |
|
42
42
|
matrix.ruby == '2.7'
|
43
43
|
run: |
|
44
44
|
cat <<GEMFILE > Gemfile.irb
|
45
45
|
source 'https://rubygems.org'
|
46
|
-
gem 'ffi'
|
46
|
+
gem 'ffi'
|
47
47
|
GEMFILE
|
48
48
|
BUNDLE_GEMFILE=Gemfile.irb bundle install --jobs 4 --retry 3
|
49
49
|
|
50
|
-
-
|
50
|
+
- name: Install ffi 1.6.x (if Ruby 2.6)
|
51
|
+
if: |
|
52
|
+
matrix.ruby == '2.6'
|
53
|
+
run: |
|
54
|
+
cat <<GEMFILE > Gemfile.irb
|
55
|
+
source 'https://rubygems.org'
|
56
|
+
gem 'ffi', '~> 1.6.0'
|
57
|
+
GEMFILE
|
58
|
+
BUNDLE_GEMFILE=Gemfile.irb bundle install --jobs 4 --retry 3
|
59
|
+
|
60
|
+
- name: Install ffi 1.6.x and irb < 1.4.3 (if Ruby 2.5)
|
61
|
+
if: |
|
62
|
+
matrix.ruby == '2.5'
|
63
|
+
run: |
|
64
|
+
cat <<GEMFILE > Gemfile.irb
|
65
|
+
source 'https://rubygems.org'
|
66
|
+
gem 'ffi', '~> 1.6.0'
|
67
|
+
gem 'irb', '< 1.4.3'
|
68
|
+
GEMFILE
|
69
|
+
BUNDLE_GEMFILE=Gemfile.irb bundle install --jobs 4 --retry 3
|
70
|
+
|
71
|
+
- name: Install IRuby gem
|
72
|
+
run: |
|
73
|
+
gem install rubygems-requirements-system
|
74
|
+
gem install pkg/*.gem
|
51
75
|
|
52
76
|
- run: ruby -r iruby -e "p IRuby::SessionAdapter.select_adapter_class"
|
53
77
|
env:
|
@@ -112,7 +136,7 @@ jobs:
|
|
112
136
|
|
113
137
|
- run: rake build
|
114
138
|
|
115
|
-
- run: gem install pkg/*.gem
|
139
|
+
- run: gem install rubygems-requirements-system pkg/*.gem
|
116
140
|
|
117
141
|
- run: ruby -r iruby -e "p IRuby::SessionAdapter.select_adapter_class"
|
118
142
|
env:
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
# 0.8.2 (2025-04-10)
|
2
|
+
|
3
|
+
* Update CI to refresh apt packages before installing IRuby gem by @kojix2 in https://github.com/SciRuby/iruby/pull/367
|
4
|
+
* Fix missing `OStream#closed?` method by @RobinDaugherty in https://github.com/SciRuby/iruby/pull/368
|
5
|
+
* Use rubygems-requirements-system to install system dependencies automatically by @kou in https://github.com/SciRuby/iruby/pull/369
|
6
|
+
* Various typo corrections by @kojix2 in https://github.com/SciRuby/iruby/pull/370
|
7
|
+
* Minor changes to README by @kojix2 in https://github.com/SciRuby/iruby/pull/371
|
8
|
+
|
9
|
+
# 0.8.1 (2025-02-16)
|
10
|
+
|
11
|
+
* Add support for jupyter widgets by @matt-do-it in https://github.com/SciRuby/iruby/pull/350
|
12
|
+
* Suppress "literal string will be frozen in the future" warning by @tikkss in https://github.com/SciRuby/iruby/pull/353
|
13
|
+
* Fix warnings in project by @simpl1g in https://github.com/SciRuby/iruby/pull/356
|
14
|
+
* restore support for IRB <= v1.13.0 by @sealocal in https://github.com/SciRuby/iruby/pull/358
|
15
|
+
* Restore ruby 2.6 and 2.5 in CI by @sealocal in https://github.com/SciRuby/iruby/pull/359
|
16
|
+
* Add Ruby 3.4 to CI by @kojix2 in https://github.com/SciRuby/iruby/pull/360
|
17
|
+
* Fix NoMethodError in backend by @edsinclair in https://github.com/SciRuby/iruby/pull/364
|
18
|
+
|
1
19
|
# 0.8.0 (2024-07-28)
|
2
20
|
|
3
21
|
* Hide output on assignment by @ankane in https://github.com/SciRuby/iruby/pull/312
|
data/Gemfile
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
plugin 'rubygems-requirements-system'
|
4
|
+
|
2
5
|
gemspec
|
3
6
|
|
4
7
|
group :pry do
|
@@ -15,3 +18,8 @@ end
|
|
15
18
|
group :test do
|
16
19
|
gem 'cztop'
|
17
20
|
end
|
21
|
+
|
22
|
+
# Tests are failing on Ruby 3.3 because warnings related to OpenStruct are being written to the standard error output.
|
23
|
+
# This is being captured by Open3.capture2e and then mistakenly parsed as JSON.
|
24
|
+
# This gem can be removed when json gem is updated
|
25
|
+
gem 'ostruct'
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[](https://github.com/SciRuby/iruby/actions)
|
5
5
|
[](https://mybinder.org/v2/gh/RubyData/binder/master?filepath=ruby-data.ipynb)
|
6
6
|
|
7
|
-
IRuby is a Ruby kernel for [Jupyter project](
|
7
|
+
IRuby is a Ruby kernel for [Jupyter project](https://jupyter.org/).
|
8
8
|
|
9
9
|
## Try IRuby
|
10
10
|
|
@@ -20,54 +20,44 @@ The following URL launches JupyterLab directly on Binder.
|
|
20
20
|
|
21
21
|
### Requirements
|
22
22
|
|
23
|
-
|
23
|
+
- [Jupyter](https://jupyter.org)
|
24
24
|
|
25
25
|
The following requirements are automatically installed.
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
- [ffi-rzmq](https://github.com/chuckremes/ffi-rzmq)
|
28
|
+
- [libzmq](https://github.com/zeromq/libzmq)
|
29
29
|
|
30
30
|
The following dependencies are optional.
|
31
31
|
|
32
|
-
|
32
|
+
- [Pry][Pry], if you want to use [Pry][Pry] instead of IRB for the code execution backend
|
33
33
|
|
34
34
|
### Installing Jupyter Notebook and/or JupyterLab
|
35
35
|
|
36
36
|
See the official document to know how to install Jupyter Notebook and/or JupyterLab.
|
37
37
|
|
38
|
-
|
39
|
-
|
38
|
+
- <https://jupyter.readthedocs.io/en/latest/install/notebook-classic.html>
|
39
|
+
- <https://jupyter.readthedocs.io/en/latest/install.html>
|
40
40
|
|
41
41
|
### Ubuntu
|
42
42
|
|
43
|
-
#### Ubuntu
|
43
|
+
#### Ubuntu 22.04+
|
44
44
|
|
45
45
|
```shell
|
46
46
|
sudo apt install libtool libffi-dev ruby ruby-dev make
|
47
47
|
|
48
|
-
gem install --user-install
|
49
|
-
iruby register --force
|
50
|
-
```
|
51
|
-
|
52
|
-
#### Ubuntu 16
|
53
|
-
|
54
|
-
The latest IRuby requires Ruby >= 2.4 while Ubuntu's official Ruby package is version 2.3.
|
55
|
-
So you need to install Ruby >= 2.4 by yourself before preparing IRuby.
|
56
|
-
We recommend to use rbenv.
|
57
|
-
|
58
|
-
```shell
|
59
|
-
sudo apt install libtool libffi-dev ruby ruby-dev make
|
48
|
+
gem install --user-install rubygems-requirements-system
|
60
49
|
gem install --user-install iruby
|
61
50
|
iruby register --force
|
62
51
|
```
|
63
52
|
|
64
53
|
### Fedora
|
65
54
|
|
66
|
-
#### Fedora
|
55
|
+
#### Fedora 40+
|
67
56
|
|
68
57
|
```shell
|
69
58
|
sudo dnf install ruby ruby-dev make zeromq-devel
|
70
59
|
|
60
|
+
gem install --user-install rubygems-requirements-system
|
71
61
|
gem install --user-install iruby
|
72
62
|
iruby register --force
|
73
63
|
```
|
@@ -89,6 +79,7 @@ Install Jupyter.
|
|
89
79
|
#### Homebrew
|
90
80
|
|
91
81
|
```shell
|
82
|
+
gem install rubygems-requirements-system
|
92
83
|
gem install iruby
|
93
84
|
iruby register --force
|
94
85
|
```
|
@@ -99,6 +90,7 @@ If you are using macports, run the following commands.
|
|
99
90
|
|
100
91
|
```shell
|
101
92
|
port install libtool autoconf automake autogen
|
93
|
+
gem install rubygems-requirements-system
|
102
94
|
gem install iruby
|
103
95
|
iruby register --force
|
104
96
|
```
|
@@ -116,8 +108,8 @@ docker run --rm -it -p 8888:8888 rubydata/datascience-notebook
|
|
116
108
|
|
117
109
|
You can use Java classes in your IRuby notebook.
|
118
110
|
|
119
|
-
|
120
|
-
|
111
|
+
- JRuby version >= 9.0.4.0
|
112
|
+
- iruby gem
|
121
113
|
|
122
114
|
After installation, make sure that your `env` is set up to use jruby.
|
123
115
|
|
@@ -160,8 +152,8 @@ export IRUBY_SESSION_ADAPTER="cztop"
|
|
160
152
|
|
161
153
|
There are two backends: PlainBackend and PryBackend.
|
162
154
|
|
163
|
-
|
164
|
-
|
155
|
+
- PlainBackend is the default backend. It uses [IRB](https://github.com/ruby/irb).
|
156
|
+
- PryBackend uses [Pry][Pry].
|
165
157
|
|
166
158
|
You can switch the backend to PryBackend by running the code below.
|
167
159
|
|
@@ -171,9 +163,9 @@ IRuby::Kernel.instance.switch_backend!(:pry)
|
|
171
163
|
|
172
164
|
## Notebooks
|
173
165
|
|
174
|
-
Take a look at the [example notebook](
|
166
|
+
Take a look at the [example notebook](https://nbviewer.jupyter.org/urls/raw.github.com/SciRuby/sciruby-notebooks/master/getting_started.ipynb)
|
175
167
|
and the [collection of notebooks](https://github.com/SciRuby/sciruby-notebooks/) which includes a Dockerfile to create a containerized installation of iruby
|
176
|
-
and other scientific gems.
|
168
|
+
and other scientific gems.
|
177
169
|
|
178
170
|
## Contributing
|
179
171
|
|
data/iruby.gemspec
CHANGED
@@ -15,7 +15,6 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = %w[iruby]
|
16
16
|
s.test_files = s.files.grep(%r{^test/})
|
17
17
|
s.require_paths = %w[lib]
|
18
|
-
s.extensions = %w[ext/Rakefile]
|
19
18
|
|
20
19
|
s.required_ruby_version = '>= 2.3.0'
|
21
20
|
|
@@ -25,12 +24,21 @@ Gem::Specification.new do |s|
|
|
25
24
|
s.add_dependency 'logger'
|
26
25
|
s.add_dependency 'mime-types', '>= 3.3.1'
|
27
26
|
s.add_dependency 'multi_json', '~> 1.11'
|
28
|
-
s.add_dependency 'native-package-installer'
|
29
27
|
|
30
28
|
s.add_development_dependency 'pycall', '>= 1.2.1'
|
31
29
|
s.add_development_dependency 'rake'
|
32
30
|
s.add_development_dependency 'test-unit'
|
33
31
|
s.add_development_dependency 'test-unit-rr'
|
34
32
|
|
33
|
+
[
|
34
|
+
['arch_linux', 'zeromq'],
|
35
|
+
['debian', 'libzmq3-dev'],
|
36
|
+
['freebsd', 'libzmq4'],
|
37
|
+
['homebrew', 'zmq'],
|
38
|
+
['macports', 'zmq'],
|
39
|
+
].each do |platform, package|
|
40
|
+
s.requirements << "system: libzmq: #{platform}: #{package}"
|
41
|
+
end
|
42
|
+
|
35
43
|
s.metadata['msys2_mingw_dependencies'] = 'zeromq'
|
36
44
|
end
|
data/lib/iruby/application.rb
CHANGED
@@ -225,7 +225,7 @@ module IRuby
|
|
225
225
|
end
|
226
226
|
|
227
227
|
if ipython_dir
|
228
|
-
File.join(ipython_dir, '
|
228
|
+
File.join(ipython_dir, 'kernels')
|
229
229
|
else
|
230
230
|
Jupyter.kernelspec_dir
|
231
231
|
end
|
@@ -265,7 +265,7 @@ module IRuby
|
|
265
265
|
opts.on(
|
266
266
|
"--display-name=VALUE", String,
|
267
267
|
"Specify the display name for the kernelspec. This is helpful when you have multiple IRuby kernels."
|
268
|
-
) {|v|
|
268
|
+
) {|v| params.display_name = v }
|
269
269
|
|
270
270
|
# TODO: --profile
|
271
271
|
# TODO: --prefix
|
data/lib/iruby/backend.rb
CHANGED
@@ -50,6 +50,7 @@ module IRuby
|
|
50
50
|
@irb = IRB::Irb.new(@workspace)
|
51
51
|
@eval_path = @irb.context.irb_path
|
52
52
|
IRB.conf[:MAIN_CONTEXT] = @irb.context
|
53
|
+
@completor = IRB::RegexpCompletor.new if defined? IRB::RegexpCompletor # IRB::VERSION >= 1.8.2
|
53
54
|
end
|
54
55
|
|
55
56
|
def eval_binding
|
@@ -57,12 +58,23 @@ module IRuby
|
|
57
58
|
end
|
58
59
|
|
59
60
|
def eval(code, store_history)
|
60
|
-
@irb.context.evaluate(
|
61
|
+
@irb.context.evaluate(parse_code(code), 0)
|
61
62
|
@irb.context.last_value unless IRuby.silent_assignment && assignment_expression?(code)
|
62
63
|
end
|
63
64
|
|
65
|
+
def parse_code(code)
|
66
|
+
return code if Gem::Version.new(IRB::VERSION) < Gem::Version.new('1.13.0')
|
67
|
+
return @irb.parse_input(code) if @irb.respond_to?(:parse_input)
|
68
|
+
return @irb.build_statement(code) if @irb.respond_to?(:build_statement)
|
69
|
+
end
|
70
|
+
|
64
71
|
def complete(code)
|
65
|
-
|
72
|
+
if @completor
|
73
|
+
# preposing and postposing never used, so they are empty, pass only target as code
|
74
|
+
@completor.completion_candidates('', code, '', bind: @workspace.binding)
|
75
|
+
else
|
76
|
+
IRB::InputCompletor::CompletionProc.call(code)
|
77
|
+
end
|
66
78
|
end
|
67
79
|
|
68
80
|
private
|
data/lib/iruby/comm.rb
CHANGED
@@ -13,17 +13,17 @@ module IRuby
|
|
13
13
|
@target_name, @comm_id = target_name, comm_id
|
14
14
|
end
|
15
15
|
|
16
|
-
def open(**data)
|
17
|
-
Kernel.instance.session.send(:publish, :comm_open, comm_id: @comm_id, data: data, target_name: @target_name)
|
16
|
+
def open(metadata = nil, **data)
|
17
|
+
Kernel.instance.session.send(:publish, :comm_open, metadata, comm_id: @comm_id, data: data, target_name: @target_name)
|
18
18
|
Comm.comm[@comm_id] = self
|
19
19
|
end
|
20
20
|
|
21
|
-
def send(**data)
|
22
|
-
Kernel.instance.session.send(:publish, :comm_msg, comm_id: @comm_id, data: data)
|
21
|
+
def send(metadata = nil, **data)
|
22
|
+
Kernel.instance.session.send(:publish, :comm_msg, metadata, comm_id: @comm_id, data: data)
|
23
23
|
end
|
24
24
|
|
25
|
-
def close(**data)
|
26
|
-
Kernel.instance.session.send(:publish, :comm_close, comm_id: @comm_id, data: data)
|
25
|
+
def close(metadata = nil, **data)
|
26
|
+
Kernel.instance.session.send(:publish, :comm_close, metadata, comm_id: @comm_id, data: data)
|
27
27
|
Comm.comm.delete(@comm_id)
|
28
28
|
end
|
29
29
|
|
data/lib/iruby/display.rb
CHANGED
@@ -7,7 +7,7 @@ module IRuby
|
|
7
7
|
"text/markdown" => :to_markdown,
|
8
8
|
"image/svg+xml" => :to_svg,
|
9
9
|
"image/png" => :to_png,
|
10
|
-
"
|
10
|
+
"application/pdf" => :to_pdf,
|
11
11
|
"image/jpeg" => :to_jpeg,
|
12
12
|
"text/latex" => [:to_latex, :to_tex],
|
13
13
|
# NOTE: Do not include the entry of "application/json" because
|
@@ -113,14 +113,14 @@ module IRuby
|
|
113
113
|
if FORCE_TEXT_TYPES.include?(mime)
|
114
114
|
true
|
115
115
|
else
|
116
|
-
MIME::Type.new(mime).ascii?
|
116
|
+
MIME::Type.new("content-type" => mime).ascii?
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
120
120
|
private def render_mimebundle(obj, exact_mime, fuzzy_mime)
|
121
121
|
data = {}
|
122
122
|
include_mime = [exact_mime].compact
|
123
|
-
formats,
|
123
|
+
formats, _metadata = obj.to_iruby_mimebundle(include: include_mime)
|
124
124
|
formats.each do |mime, value|
|
125
125
|
if fuzzy_mime.nil? || mime.include?(fuzzy_mime)
|
126
126
|
data[mime] = value
|
@@ -407,7 +407,6 @@ module IRuby
|
|
407
407
|
|
408
408
|
type { Gruff::Base }
|
409
409
|
format 'image' do |obj|
|
410
|
-
image = obj.to_image
|
411
410
|
format_magick_image.(obj.to_image)
|
412
411
|
end
|
413
412
|
|
data/lib/iruby/formatter.rb
CHANGED
data/lib/iruby/ostream.rb
CHANGED
@@ -11,6 +11,10 @@ module IRuby
|
|
11
11
|
@session = nil
|
12
12
|
end
|
13
13
|
|
14
|
+
def closed?
|
15
|
+
@session.nil?
|
16
|
+
end
|
17
|
+
|
14
18
|
def flush
|
15
19
|
end
|
16
20
|
|
@@ -48,7 +52,7 @@ module IRuby
|
|
48
52
|
|
49
53
|
# Called by irb
|
50
54
|
def set_encoding(extern, intern)
|
51
|
-
|
55
|
+
extern
|
52
56
|
end
|
53
57
|
|
54
58
|
private
|
data/lib/iruby/session/mixin.rb
CHANGED
@@ -4,10 +4,10 @@ module IRuby
|
|
4
4
|
|
5
5
|
private
|
6
6
|
|
7
|
-
def serialize(idents, header, content)
|
7
|
+
def serialize(idents, header, metadata = nil, content)
|
8
8
|
msg = [MultiJson.dump(header),
|
9
9
|
MultiJson.dump(@last_recvd_msg ? @last_recvd_msg[:header] : {}),
|
10
|
-
|
10
|
+
MultiJson.dump(metadata || {}),
|
11
11
|
MultiJson.dump(content || {})]
|
12
12
|
frames = ([*idents].compact.map(&:to_s) << DELIM << sign(msg)) + msg
|
13
13
|
IRuby.logger.debug "Sent #{frames.inspect}"
|
data/lib/iruby/session.rb
CHANGED
@@ -70,7 +70,7 @@ module IRuby
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
def send(socket_type, message_type, content)
|
73
|
+
def send(socket_type, message_type, metadata = nil, content)
|
74
74
|
sock = check_socket_type(socket_type)
|
75
75
|
idents = if socket_type == :reply && @last_recvd_msg
|
76
76
|
@last_recvd_msg[:idents]
|
@@ -85,7 +85,7 @@ module IRuby
|
|
85
85
|
session: @session_id,
|
86
86
|
version: '5.0'
|
87
87
|
}
|
88
|
-
@adapter.send(sock, serialize(idents, header, content))
|
88
|
+
@adapter.send(sock, serialize(idents, header, metadata, content))
|
89
89
|
end
|
90
90
|
|
91
91
|
def recv(socket_type)
|
data/lib/iruby/version.rb
CHANGED
data/run-test.sh
CHANGED
data/test/integration_test.rb
CHANGED
@@ -83,7 +83,7 @@ module IRubyTest::ApplicationTests
|
|
83
83
|
|
84
84
|
add_kernel_options("--log=#{log_file}", boot_file)
|
85
85
|
|
86
|
-
|
86
|
+
_out, status = Open3.capture2e(*iruby_command("console"), in: :close)
|
87
87
|
assert status.success?
|
88
88
|
assert_path_exist log_file
|
89
89
|
assert_match(/\bINFO -- bootfile: !!! LOG MESSAGE FROM BOOT FILE !!!$/, File.read(log_file))
|
@@ -61,7 +61,7 @@ puts "Fake Jupyter"
|
|
61
61
|
test("a new IRuby kernel `#{DEFAULT_KERNEL_NAME}` will be installed in JUPYTER_DATA_DIR") do
|
62
62
|
assert_path_not_exist @kernel_json
|
63
63
|
|
64
|
-
|
64
|
+
_out, status = Open3.capture2e(*iruby_command("register"))
|
65
65
|
assert status.success?
|
66
66
|
assert_path_exist @kernel_json
|
67
67
|
|
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: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Mendler
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2025-04-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: data_uri
|
@@ -95,20 +95,6 @@ dependencies:
|
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '1.11'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: native-package-installer
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
105
|
-
type: :runtime
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
99
|
name: pycall
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,8 +156,7 @@ email:
|
|
170
156
|
- mail@daniel-mendler.de
|
171
157
|
executables:
|
172
158
|
- iruby
|
173
|
-
extensions:
|
174
|
-
- ext/Rakefile
|
159
|
+
extensions: []
|
175
160
|
extra_rdoc_files: []
|
176
161
|
files:
|
177
162
|
- ".github/workflows/ci.yml"
|
@@ -187,7 +172,6 @@ files:
|
|
187
172
|
- docker/setup.sh
|
188
173
|
- docker/test.sh
|
189
174
|
- exe/iruby
|
190
|
-
- ext/Rakefile
|
191
175
|
- iruby.gemspec
|
192
176
|
- lib/iruby.rb
|
193
177
|
- lib/iruby/application.rb
|
@@ -281,8 +265,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
281
265
|
- - ">="
|
282
266
|
- !ruby/object:Gem::Version
|
283
267
|
version: '0'
|
284
|
-
requirements:
|
285
|
-
|
268
|
+
requirements:
|
269
|
+
- 'system: libzmq: arch_linux: zeromq'
|
270
|
+
- 'system: libzmq: debian: libzmq3-dev'
|
271
|
+
- 'system: libzmq: freebsd: libzmq4'
|
272
|
+
- 'system: libzmq: homebrew: zmq'
|
273
|
+
- 'system: libzmq: macports: zmq'
|
274
|
+
rubygems_version: 3.5.22
|
286
275
|
signing_key:
|
287
276
|
specification_version: 4
|
288
277
|
summary: Ruby Kernel for Jupyter
|
data/ext/Rakefile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
task default: :all
|
2
|
-
|
3
|
-
task all: [:ensure_zeromq]
|
4
|
-
|
5
|
-
task :ensure_zeromq do
|
6
|
-
begin
|
7
|
-
require 'ffi-rzmq'
|
8
|
-
rescue LoadError
|
9
|
-
require 'native-package-installer'
|
10
|
-
unless NativePackageInstaller.install(arch_linux: 'zeromq',
|
11
|
-
debian: 'libzmq3-dev',
|
12
|
-
freebsd: 'libzmq4',
|
13
|
-
homebrew: 'zmq',
|
14
|
-
macports: 'zmq',
|
15
|
-
redhat: 'zeromq-devel')
|
16
|
-
raise 'Failed to install ZeroMQ'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|