iruby 0.2.8 → 0.6.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.
Files changed (72) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ubuntu.yml +62 -0
  3. data/CHANGES +76 -0
  4. data/Gemfile +3 -1
  5. data/LICENSE +1 -1
  6. data/README.md +130 -82
  7. data/Rakefile +36 -10
  8. data/ci/Dockerfile.base.erb +41 -0
  9. data/ci/Dockerfile.main.erb +7 -0
  10. data/ci/requirements.txt +1 -0
  11. data/docker/setup.sh +15 -0
  12. data/docker/test.sh +7 -0
  13. data/iruby.gemspec +13 -17
  14. data/lib/iruby.rb +14 -6
  15. data/lib/iruby/backend.rb +41 -7
  16. data/lib/iruby/command.rb +68 -12
  17. data/lib/iruby/display.rb +80 -39
  18. data/lib/iruby/event_manager.rb +40 -0
  19. data/lib/iruby/formatter.rb +5 -4
  20. data/lib/iruby/input.rb +41 -0
  21. data/lib/iruby/input/README.ipynb +502 -0
  22. data/lib/iruby/input/README.md +299 -0
  23. data/lib/iruby/input/autoload.rb +25 -0
  24. data/lib/iruby/input/builder.rb +67 -0
  25. data/lib/iruby/input/button.rb +47 -0
  26. data/lib/iruby/input/cancel.rb +32 -0
  27. data/lib/iruby/input/checkbox.rb +74 -0
  28. data/lib/iruby/input/date.rb +37 -0
  29. data/lib/iruby/input/field.rb +31 -0
  30. data/lib/iruby/input/file.rb +57 -0
  31. data/lib/iruby/input/form.rb +77 -0
  32. data/lib/iruby/input/label.rb +27 -0
  33. data/lib/iruby/input/multiple.rb +76 -0
  34. data/lib/iruby/input/popup.rb +41 -0
  35. data/lib/iruby/input/radio.rb +59 -0
  36. data/lib/iruby/input/select.rb +59 -0
  37. data/lib/iruby/input/textarea.rb +23 -0
  38. data/lib/iruby/input/widget.rb +34 -0
  39. data/lib/iruby/jupyter.rb +77 -0
  40. data/lib/iruby/kernel.rb +106 -27
  41. data/lib/iruby/ostream.rb +29 -8
  42. data/lib/iruby/session.rb +116 -0
  43. data/lib/iruby/session/{rbczmq.rb → cztop.rb} +25 -13
  44. data/lib/iruby/session/ffi_rzmq.rb +15 -2
  45. data/lib/iruby/session_adapter.rb +72 -0
  46. data/lib/iruby/session_adapter/cztop_adapter.rb +45 -0
  47. data/lib/iruby/session_adapter/ffirzmq_adapter.rb +55 -0
  48. data/lib/iruby/session_adapter/pyzmq_adapter.rb +77 -0
  49. data/lib/iruby/session_adapter/test_adapter.rb +49 -0
  50. data/lib/iruby/utils.rb +5 -2
  51. data/lib/iruby/version.rb +1 -1
  52. data/run-test.sh +12 -0
  53. data/tasks/ci.rake +65 -0
  54. data/test/helper.rb +133 -0
  55. data/test/integration_test.rb +22 -11
  56. data/test/iruby/backend_test.rb +37 -0
  57. data/test/iruby/command_test.rb +207 -0
  58. data/test/iruby/event_manager_test.rb +92 -0
  59. data/test/iruby/jupyter_test.rb +27 -0
  60. data/test/iruby/kernel_test.rb +153 -0
  61. data/test/iruby/mime_test.rb +43 -0
  62. data/test/iruby/multi_logger_test.rb +1 -2
  63. data/test/iruby/session_adapter/cztop_adapter_test.rb +20 -0
  64. data/test/iruby/session_adapter/ffirzmq_adapter_test.rb +20 -0
  65. data/test/iruby/session_adapter/session_adapter_test_base.rb +27 -0
  66. data/test/iruby/session_adapter_test.rb +91 -0
  67. data/test/iruby/session_test.rb +48 -0
  68. data/test/run-test.rb +19 -0
  69. metadata +132 -43
  70. data/.travis.yml +0 -16
  71. data/CONTRIBUTORS +0 -19
  72. data/test/test_helper.rb +0 -5
@@ -0,0 +1,48 @@
1
+ module IRubyTest
2
+ class SessionAdapterSelectionTest < TestBase
3
+ def setup
4
+ # https://jupyter-client.readthedocs.io/en/stable/kernels.html#connection-files
5
+ @session_config = {
6
+ "control_port" => 0,
7
+ "shell_port" => 0,
8
+ "transport" => "tcp",
9
+ "signature_scheme" => "hmac-sha256",
10
+ "stdin_port" => 0,
11
+ "hb_port" => 0,
12
+ "ip" => "127.0.0.1",
13
+ "iopub_port" => 0,
14
+ "key" => "a0436f6c-1916-498b-8eb9-e81ab9368e84"
15
+ }
16
+ end
17
+
18
+ def test_new_with_session_adapter
19
+ adapter_name = ENV['IRUBY_TEST_SESSION_ADAPTER_NAME']
20
+ adapter_class = case adapter_name
21
+ when 'cztop'
22
+ IRuby::SessionAdapter::CztopAdapter
23
+ when 'ffi-rzmq'
24
+ IRuby::SessionAdapter::FfirzmqAdapter
25
+ when 'pyzmq'
26
+ omit("pyzmq adapter is disabled")
27
+ # IRuby::SessionAdapter::PyzmqAdapter
28
+ else
29
+ flunk "Unknown session adapter: #{adapter_name.inspect}"
30
+ end
31
+
32
+ session = IRuby::Session.new(@session_config, adapter_name)
33
+ assert_kind_of(adapter_class, session.adapter)
34
+ end
35
+
36
+ def test_without_any_session_adapter
37
+ assert_rr do
38
+ stub(IRuby::SessionAdapter::CztopAdapter).available? { false }
39
+ stub(IRuby::SessionAdapter::FfirzmqAdapter).available? { false }
40
+ stub(IRuby::SessionAdapter::PyzmqAdapter).available? { false }
41
+ stub(IRuby::SessionAdapter::TestAdapter).available? { false }
42
+ assert_raises IRuby::SessionAdapterNotFound do
43
+ IRuby::Session.new(@session_config)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
data/test/run-test.rb ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $VERBOSE = true
4
+
5
+ require "pathname"
6
+
7
+ base_dir = Pathname.new(__dir__).parent.expand_path
8
+
9
+ lib_dir = base_dir + "lib"
10
+ test_dir = base_dir + "test"
11
+
12
+ $LOAD_PATH.unshift(lib_dir.to_s)
13
+
14
+ require_relative "helper"
15
+
16
+ ENV["TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"] ||= "10000"
17
+ ENV["IRUBY_TEST_SESSION_ADAPTER_NAME"] ||= "ffi-rzmq"
18
+
19
+ exit Test::Unit::AutoRunner.run(true, test_dir)
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.2.8
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mendler
@@ -9,50 +9,50 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-12-06 00:00:00.000000000 Z
12
+ date: 2021-05-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rake
15
+ name: data_uri
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '10.4'
21
- type: :development
20
+ version: '0.1'
21
+ type: :runtime
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: '10.4'
27
+ version: '0.1'
28
28
  - !ruby/object:Gem::Dependency
29
- name: minitest
29
+ name: ffi-rzmq
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '5.6'
35
- type: :development
34
+ version: '0'
35
+ type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '5.6'
41
+ version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: bond
43
+ name: mime-types
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '0.5'
48
+ version: 3.3.1
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '0.5'
55
+ version: 3.3.1
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: multi_json
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -68,21 +68,62 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  version: '1.11'
70
70
  - !ruby/object:Gem::Dependency
71
- name: mimemagic
71
+ name: pycall
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - "~>"
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: '0.3'
77
- type: :runtime
76
+ version: 1.2.1
77
+ type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - "~>"
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.2.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: rake
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: test-unit
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: test-unit-rr
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
82
124
  - !ruby/object:Gem::Version
83
- version: '0.3'
84
- description: A Ruby kernel for Jupyter/IPython frontends (e.g. notebook). Try it at
85
- try.jupyter.org.
125
+ version: '0'
126
+ description: A Ruby kernel for Jupyter environment. Try it at try.jupyter.org.
86
127
  email:
87
128
  - mail@daniel-mendler.de
88
129
  executables:
@@ -90,15 +131,19 @@ executables:
90
131
  extensions: []
91
132
  extra_rdoc_files: []
92
133
  files:
134
+ - ".github/workflows/ubuntu.yml"
93
135
  - ".gitignore"
94
- - ".travis.yml"
95
136
  - CHANGES
96
- - CONTRIBUTORS
97
137
  - Gemfile
98
138
  - LICENSE
99
139
  - README.md
100
140
  - Rakefile
101
141
  - bin/iruby
142
+ - ci/Dockerfile.base.erb
143
+ - ci/Dockerfile.main.erb
144
+ - ci/requirements.txt
145
+ - docker/setup.sh
146
+ - docker/test.sh
102
147
  - iruby.gemspec
103
148
  - lib/iruby.rb
104
149
  - lib/iruby/assets/kernel.css
@@ -109,34 +154,67 @@ files:
109
154
  - lib/iruby/comm.rb
110
155
  - lib/iruby/command.rb
111
156
  - lib/iruby/display.rb
157
+ - lib/iruby/event_manager.rb
112
158
  - lib/iruby/formatter.rb
159
+ - lib/iruby/input.rb
160
+ - lib/iruby/input/README.ipynb
161
+ - lib/iruby/input/README.md
162
+ - lib/iruby/input/autoload.rb
163
+ - lib/iruby/input/builder.rb
164
+ - lib/iruby/input/button.rb
165
+ - lib/iruby/input/cancel.rb
166
+ - lib/iruby/input/checkbox.rb
167
+ - lib/iruby/input/date.rb
168
+ - lib/iruby/input/field.rb
169
+ - lib/iruby/input/file.rb
170
+ - lib/iruby/input/form.rb
171
+ - lib/iruby/input/label.rb
172
+ - lib/iruby/input/multiple.rb
173
+ - lib/iruby/input/popup.rb
174
+ - lib/iruby/input/radio.rb
175
+ - lib/iruby/input/select.rb
176
+ - lib/iruby/input/textarea.rb
177
+ - lib/iruby/input/widget.rb
178
+ - lib/iruby/jupyter.rb
113
179
  - lib/iruby/kernel.rb
114
180
  - lib/iruby/logger.rb
115
181
  - lib/iruby/ostream.rb
182
+ - lib/iruby/session.rb
183
+ - lib/iruby/session/cztop.rb
116
184
  - lib/iruby/session/ffi_rzmq.rb
117
185
  - lib/iruby/session/mixin.rb
118
- - lib/iruby/session/rbczmq.rb
186
+ - lib/iruby/session_adapter.rb
187
+ - lib/iruby/session_adapter/cztop_adapter.rb
188
+ - lib/iruby/session_adapter/ffirzmq_adapter.rb
189
+ - lib/iruby/session_adapter/pyzmq_adapter.rb
190
+ - lib/iruby/session_adapter/test_adapter.rb
119
191
  - lib/iruby/utils.rb
120
192
  - lib/iruby/version.rb
121
193
  - logo/logo-32x32.png
122
194
  - logo/logo-64x64.png
123
195
  - logo/ruby.svg
196
+ - run-test.sh
197
+ - tasks/ci.rake
198
+ - test/helper.rb
124
199
  - test/integration_test.rb
200
+ - test/iruby/backend_test.rb
201
+ - test/iruby/command_test.rb
202
+ - test/iruby/event_manager_test.rb
203
+ - test/iruby/jupyter_test.rb
204
+ - test/iruby/kernel_test.rb
205
+ - test/iruby/mime_test.rb
125
206
  - test/iruby/multi_logger_test.rb
126
- - test/test_helper.rb
207
+ - test/iruby/session_adapter/cztop_adapter_test.rb
208
+ - test/iruby/session_adapter/ffirzmq_adapter_test.rb
209
+ - test/iruby/session_adapter/session_adapter_test_base.rb
210
+ - test/iruby/session_adapter_test.rb
211
+ - test/iruby/session_test.rb
212
+ - test/run-test.rb
127
213
  homepage: https://github.com/SciRuby/iruby
128
214
  licenses:
129
215
  - MIT
130
216
  metadata: {}
131
- post_install_message: |+
132
- Consider installing the optional dependencies to get additional functionality:
133
- * pry
134
- * pry-doc
135
- * awesome_print
136
- * gnuplot
137
- * rubyvis
138
- * nyaplot
139
-
217
+ post_install_message:
140
218
  rdoc_options: []
141
219
  require_paths:
142
220
  - lib
@@ -144,19 +222,30 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
222
  requirements:
145
223
  - - ">="
146
224
  - !ruby/object:Gem::Version
147
- version: 2.1.0
225
+ version: 2.3.0
148
226
  required_rubygems_version: !ruby/object:Gem::Requirement
149
227
  requirements:
150
228
  - - ">="
151
229
  - !ruby/object:Gem::Version
152
230
  version: '0'
153
231
  requirements: []
154
- rubyforge_project:
155
- rubygems_version: 2.2.2
232
+ rubygems_version: 3.2.3
156
233
  signing_key:
157
234
  specification_version: 4
158
- summary: Ruby Kernel for Jupyter/IPython
235
+ summary: Ruby Kernel for Jupyter
159
236
  test_files:
237
+ - test/helper.rb
160
238
  - test/integration_test.rb
239
+ - test/iruby/backend_test.rb
240
+ - test/iruby/command_test.rb
241
+ - test/iruby/event_manager_test.rb
242
+ - test/iruby/jupyter_test.rb
243
+ - test/iruby/kernel_test.rb
244
+ - test/iruby/mime_test.rb
161
245
  - test/iruby/multi_logger_test.rb
162
- - test/test_helper.rb
246
+ - test/iruby/session_adapter/cztop_adapter_test.rb
247
+ - test/iruby/session_adapter/ffirzmq_adapter_test.rb
248
+ - test/iruby/session_adapter/session_adapter_test_base.rb
249
+ - test/iruby/session_adapter_test.rb
250
+ - test/iruby/session_test.rb
251
+ - test/run-test.rb
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - ruby-head
5
- - 2.2.2
6
- - 2.1.6
7
- - 2.0.0
8
-
9
- before_install:
10
- - "sudo apt-get install libzmq3-dev"
11
- - "sudo pip install 'ipython[notebook]'"
12
-
13
- script: bundle exec rake
14
-
15
- notifications:
16
- irc: "chat.freenode.net#sciruby"
data/CONTRIBUTORS DELETED
@@ -1,19 +0,0 @@
1
- Carlos Agarie <carlos.agarie@gmail.com>
2
- Damián Silvani <munshkr@gmail.com>
3
- Dangyi Liu <LeedyPKU@gmail.com>
4
- Daniel Mendler <mail@daniel-mendler.de>
5
- Dimitris Zorbas <zorbash@skroutz.gr>
6
- Domitry <domitry@gmail.com>
7
- Jan Vlnas <git@jan.vlnas.cz>
8
- John Woods <jwoods@vt.edu>
9
- Josh Adams <josh@isotope11.com>
10
- Julia Evans <julia@jvns.ca>
11
- martin sarsale <martin@properati.com>
12
- Matthias Bussonnier <bussonniermatthias@gmail.com>
13
- Michael Hauser-Raspe <michael.hauser-raspe@cantab.net>
14
- MinRK <benjaminrk@gmail.com>
15
- Naoki Nishida <domitry@gmail.com>
16
- Robby Clements <rclements@isotope11.com>
17
- Spacewander <spacewanderlzx@gmail.com>
18
- Takahiro Satoh <zalt50cc@gmail.com>
19
- Robert Haines <robert.haines@manchester.ac.uk>
data/test/test_helper.rb DELETED
@@ -1,5 +0,0 @@
1
- require 'iruby'
2
- require 'minitest/autorun'
3
-
4
- class IRubyTest < Minitest::Test
5
- end