iruby 0.3 → 0.7.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.md +203 -0
  4. data/Gemfile +3 -1
  5. data/LICENSE +1 -1
  6. data/README.md +137 -87
  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 +14 -18
  14. data/lib/iruby.rb +14 -8
  15. data/lib/iruby/backend.rb +38 -10
  16. data/lib/iruby/command.rb +67 -15
  17. data/lib/iruby/display.rb +77 -41
  18. data/lib/iruby/event_manager.rb +40 -0
  19. data/lib/iruby/formatter.rb +3 -3
  20. data/lib/iruby/input.rb +6 -6
  21. data/lib/iruby/input/README.md +299 -0
  22. data/lib/iruby/input/autoload.rb +1 -1
  23. data/lib/iruby/input/builder.rb +4 -4
  24. data/lib/iruby/input/button.rb +2 -2
  25. data/lib/iruby/input/cancel.rb +1 -1
  26. data/lib/iruby/input/checkbox.rb +3 -3
  27. data/lib/iruby/input/date.rb +3 -3
  28. data/lib/iruby/input/field.rb +2 -2
  29. data/lib/iruby/input/file.rb +3 -3
  30. data/lib/iruby/input/form.rb +6 -6
  31. data/lib/iruby/input/label.rb +4 -4
  32. data/lib/iruby/input/multiple.rb +10 -10
  33. data/lib/iruby/input/popup.rb +2 -2
  34. data/lib/iruby/input/radio.rb +6 -6
  35. data/lib/iruby/input/select.rb +8 -8
  36. data/lib/iruby/input/textarea.rb +1 -1
  37. data/lib/iruby/input/widget.rb +2 -2
  38. data/lib/iruby/jupyter.rb +77 -0
  39. data/lib/iruby/kernel.rb +204 -36
  40. data/lib/iruby/ostream.rb +29 -8
  41. data/lib/iruby/session.rb +117 -0
  42. data/lib/iruby/session/cztop.rb +4 -0
  43. data/lib/iruby/session_adapter.rb +72 -0
  44. data/lib/iruby/session_adapter/cztop_adapter.rb +45 -0
  45. data/lib/iruby/session_adapter/ffirzmq_adapter.rb +55 -0
  46. data/lib/iruby/session_adapter/pyzmq_adapter.rb +77 -0
  47. data/lib/iruby/session_adapter/test_adapter.rb +49 -0
  48. data/lib/iruby/utils.rb +13 -2
  49. data/lib/iruby/version.rb +1 -1
  50. data/run-test.sh +12 -0
  51. data/tasks/ci.rake +65 -0
  52. data/test/helper.rb +136 -0
  53. data/test/integration_test.rb +22 -11
  54. data/test/iruby/backend_test.rb +37 -0
  55. data/test/iruby/command_test.rb +207 -0
  56. data/test/iruby/event_manager_test.rb +92 -0
  57. data/test/iruby/jupyter_test.rb +27 -0
  58. data/test/iruby/kernel_test.rb +185 -0
  59. data/test/iruby/mime_test.rb +50 -0
  60. data/test/iruby/multi_logger_test.rb +1 -5
  61. data/test/iruby/session_adapter/cztop_adapter_test.rb +20 -0
  62. data/test/iruby/session_adapter/ffirzmq_adapter_test.rb +20 -0
  63. data/test/iruby/session_adapter/session_adapter_test_base.rb +27 -0
  64. data/test/iruby/session_adapter_test.rb +91 -0
  65. data/test/iruby/session_test.rb +48 -0
  66. data/test/run-test.rb +19 -0
  67. metadata +120 -50
  68. data/.travis.yml +0 -16
  69. data/CHANGES +0 -143
  70. data/CONTRIBUTORS +0 -19
  71. data/lib/iruby/session/rbczmq.rb +0 -68
  72. data/test/test_helper.rb +0 -5
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.3'
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mendler
@@ -9,50 +9,64 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-26 00:00:00.000000000 Z
12
+ date: 2021-05-28 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: irb
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '0.5'
48
+ version: '0'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: mime-types
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
54
61
  - !ruby/object:Gem::Version
55
- version: '0.5'
62
+ version: 3.3.1
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 3.3.1
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: multi_json
58
72
  requirement: !ruby/object:Gem::Requirement
@@ -68,35 +82,62 @@ dependencies:
68
82
  - !ruby/object:Gem::Version
69
83
  version: '1.11'
70
84
  - !ruby/object:Gem::Dependency
71
- name: mimemagic
85
+ name: pycall
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
- - - "~>"
88
+ - - ">="
75
89
  - !ruby/object:Gem::Version
76
- version: '0.3'
77
- type: :runtime
90
+ version: 1.2.1
91
+ type: :development
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
80
94
  requirements:
81
- - - "~>"
95
+ - - ">="
82
96
  - !ruby/object:Gem::Version
83
- version: '0.3'
97
+ version: 1.2.1
84
98
  - !ruby/object:Gem::Dependency
85
- name: data_uri
99
+ name: rake
86
100
  requirement: !ruby/object:Gem::Requirement
87
101
  requirements:
88
- - - "~>"
102
+ - - ">="
89
103
  - !ruby/object:Gem::Version
90
- version: '0.1'
91
- type: :runtime
104
+ version: '0'
105
+ type: :development
92
106
  prerelease: false
93
107
  version_requirements: !ruby/object:Gem::Requirement
94
108
  requirements:
95
- - - "~>"
109
+ - - ">="
96
110
  - !ruby/object:Gem::Version
97
- version: '0.1'
98
- description: A Ruby kernel for Jupyter/IPython frontends (e.g. notebook). Try it at
99
- try.jupyter.org.
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: test-unit
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
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: test-unit-rr
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ description: A Ruby kernel for Jupyter environment. Try it at try.jupyter.org.
100
141
  email:
101
142
  - mail@daniel-mendler.de
102
143
  executables:
@@ -104,15 +145,19 @@ executables:
104
145
  extensions: []
105
146
  extra_rdoc_files: []
106
147
  files:
148
+ - ".github/workflows/ubuntu.yml"
107
149
  - ".gitignore"
108
- - ".travis.yml"
109
- - CHANGES
110
- - CONTRIBUTORS
150
+ - CHANGES.md
111
151
  - Gemfile
112
152
  - LICENSE
113
153
  - README.md
114
154
  - Rakefile
115
155
  - bin/iruby
156
+ - ci/Dockerfile.base.erb
157
+ - ci/Dockerfile.main.erb
158
+ - ci/requirements.txt
159
+ - docker/setup.sh
160
+ - docker/test.sh
116
161
  - iruby.gemspec
117
162
  - lib/iruby.rb
118
163
  - lib/iruby/assets/kernel.css
@@ -123,9 +168,11 @@ files:
123
168
  - lib/iruby/comm.rb
124
169
  - lib/iruby/command.rb
125
170
  - lib/iruby/display.rb
171
+ - lib/iruby/event_manager.rb
126
172
  - lib/iruby/formatter.rb
127
173
  - lib/iruby/input.rb
128
174
  - lib/iruby/input/README.ipynb
175
+ - lib/iruby/input/README.md
129
176
  - lib/iruby/input/autoload.rb
130
177
  - lib/iruby/input/builder.rb
131
178
  - lib/iruby/input/button.rb
@@ -142,34 +189,46 @@ files:
142
189
  - lib/iruby/input/select.rb
143
190
  - lib/iruby/input/textarea.rb
144
191
  - lib/iruby/input/widget.rb
192
+ - lib/iruby/jupyter.rb
145
193
  - lib/iruby/kernel.rb
146
194
  - lib/iruby/logger.rb
147
195
  - lib/iruby/ostream.rb
196
+ - lib/iruby/session.rb
148
197
  - lib/iruby/session/cztop.rb
149
198
  - lib/iruby/session/ffi_rzmq.rb
150
199
  - lib/iruby/session/mixin.rb
151
- - lib/iruby/session/rbczmq.rb
200
+ - lib/iruby/session_adapter.rb
201
+ - lib/iruby/session_adapter/cztop_adapter.rb
202
+ - lib/iruby/session_adapter/ffirzmq_adapter.rb
203
+ - lib/iruby/session_adapter/pyzmq_adapter.rb
204
+ - lib/iruby/session_adapter/test_adapter.rb
152
205
  - lib/iruby/utils.rb
153
206
  - lib/iruby/version.rb
154
207
  - logo/logo-32x32.png
155
208
  - logo/logo-64x64.png
156
209
  - logo/ruby.svg
210
+ - run-test.sh
211
+ - tasks/ci.rake
212
+ - test/helper.rb
157
213
  - test/integration_test.rb
214
+ - test/iruby/backend_test.rb
215
+ - test/iruby/command_test.rb
216
+ - test/iruby/event_manager_test.rb
217
+ - test/iruby/jupyter_test.rb
218
+ - test/iruby/kernel_test.rb
219
+ - test/iruby/mime_test.rb
158
220
  - test/iruby/multi_logger_test.rb
159
- - test/test_helper.rb
221
+ - test/iruby/session_adapter/cztop_adapter_test.rb
222
+ - test/iruby/session_adapter/ffirzmq_adapter_test.rb
223
+ - test/iruby/session_adapter/session_adapter_test_base.rb
224
+ - test/iruby/session_adapter_test.rb
225
+ - test/iruby/session_test.rb
226
+ - test/run-test.rb
160
227
  homepage: https://github.com/SciRuby/iruby
161
228
  licenses:
162
229
  - MIT
163
230
  metadata: {}
164
- post_install_message: |+
165
- Consider installing the optional dependencies to get additional functionality:
166
- * pry
167
- * pry-doc
168
- * awesome_print
169
- * gnuplot
170
- * rubyvis
171
- * nyaplot
172
-
231
+ post_install_message:
173
232
  rdoc_options: []
174
233
  require_paths:
175
234
  - lib
@@ -177,19 +236,30 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
236
  requirements:
178
237
  - - ">="
179
238
  - !ruby/object:Gem::Version
180
- version: 2.1.0
239
+ version: 2.3.0
181
240
  required_rubygems_version: !ruby/object:Gem::Requirement
182
241
  requirements:
183
242
  - - ">="
184
243
  - !ruby/object:Gem::Version
185
244
  version: '0'
186
245
  requirements: []
187
- rubyforge_project:
188
- rubygems_version: 2.5.2
246
+ rubygems_version: 3.3.0.dev
189
247
  signing_key:
190
248
  specification_version: 4
191
- summary: Ruby Kernel for Jupyter/IPython
249
+ summary: Ruby Kernel for Jupyter
192
250
  test_files:
251
+ - test/helper.rb
193
252
  - test/integration_test.rb
253
+ - test/iruby/backend_test.rb
254
+ - test/iruby/command_test.rb
255
+ - test/iruby/event_manager_test.rb
256
+ - test/iruby/jupyter_test.rb
257
+ - test/iruby/kernel_test.rb
258
+ - test/iruby/mime_test.rb
194
259
  - test/iruby/multi_logger_test.rb
195
- - test/test_helper.rb
260
+ - test/iruby/session_adapter/cztop_adapter_test.rb
261
+ - test/iruby/session_adapter/ffirzmq_adapter_test.rb
262
+ - test/iruby/session_adapter/session_adapter_test_base.rb
263
+ - test/iruby/session_adapter_test.rb
264
+ - test/iruby/session_test.rb
265
+ - 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/CHANGES DELETED
@@ -1,143 +0,0 @@
1
- 0.3 (2017-03-26)
2
-
3
- Bug Fixes:
4
- * Disable Jupyter keyboard manager for all popups made using IRuby.popup (@kylekyle).
5
- * Fix Iruby/Input date values bug that set date fields to whatever the last date value was (@kylekyle).
6
- * Fix a bug where time strings put into prompter would give an 'out of range' error (@kylekyle).
7
-
8
- Enhancements:
9
- * Improvements to IRuby dependency detection using `Bundler::Dependencies#specs` (@kou).
10
- * Use less memory forcing pry to store only the last 3 commands in memory (@kylekyle).
11
- * Use bigger z-index that is used accross all browsers (@kylekyle).
12
- * Ability to input date values as DateTime objects in IRuby/Input (@kylekyle).
13
- * Add option to have check boxes checked by default (@kylekyle).
14
- * Option for multi-select in drop down menus in the prompter (@kylekyle).
15
- * Add support for multiple widgets using `IRuby::Input::Multiple` (@kylekyle).
16
- * Calender icon for date selector icon (@kylekyle).
17
- * Add support for Numo/NArray (@zalt50).
18
- * Text now only completes after a space (@zalt50).
19
- * Remove the DONTWAIT flag when receiving a message (@cloud-oak).
20
- * Add support for CZTop (@kou).
21
-
22
- 0.2.9 (2016-05-02)
23
-
24
- Bug Fixes:
25
- * Fix an error where a NoMethodError was being raised where a table rendered using an Array of Hashes has more than `maxcols` columns. (@CGamesPlay)
26
- * Patch PryBackend to throw unterminated string and unexpected end-of-file syntax errors (@kylekyle)
27
-
28
- Enhnacements:
29
- * Add an IRuby::Input class which provides widgets for getting inputs from users. (@kylekyle)
30
- * Add data_uri dependency (@kylekyle)
31
- * Added a clear_output display function (@mrkn)
32
- * Doc fixes for installation (@kozo2, @generall)
33
-
34
- 0.2.8 (2015-12-06)
35
-
36
- * Add compatibility with ffi-rzmq
37
- * Windows support
38
-
39
- 0.2.7 (2015-07-02)
40
-
41
- * Fix problem with autoloaded constants in Display, problem with sciruby gem
42
-
43
- 0.2.6 (2015-06-21)
44
-
45
- * Check registered kernel and Gemfile to prevent gem loading problems
46
- * Support to_tex method for the rendering
47
-
48
- 0.2.5 (2015-06-07)
49
-
50
- * Fix #29, empty signatures
51
- * Move iruby utils to IRuby::Utils module
52
- * Add IRuby.tex alias for IRuby.latex
53
- * Remove example notebooks from gem
54
-
55
- 0.2.4 (2015-06-02)
56
-
57
- * Better exception handling
58
- * Fix ctrl-C issue #17
59
- * Fix timeout issue #19
60
-
61
- 0.2.3 (2015-05-31)
62
-
63
- * Fix notebook indentation
64
- * Fix tab completion for multiple lines
65
-
66
- 0.2.2 (2015-05-26)
67
-
68
- * Support history variables In, Out, _, _i etc
69
- * Internal refactoring and minor bugfixes
70
-
71
- 0.2.1 (2015-05-26)
72
-
73
- * Copy Ruby logo to kernel specification
74
-
75
- 0.2.0 (2015-05-25)
76
-
77
- * Dropped IPython2 support
78
- * Dropped Ruby < 2.0.0 support
79
- * Supports and requires now IPython3/Jupyter
80
- * Switch from ffi-rzmq to rbczmq
81
- * Added IRuby::Conn (experimental, to be used by widgets)
82
- * iruby register/unregister commands to register IRuby kernel in Jupyter
83
-
84
- 0.1.13 (2014-08-19)
85
-
86
- * Improved IRuby.table, supports :maxrows and :maxcols
87
- * IRuby#javascript workaround (https://github.com/ipython/ipython/issues/6259)
88
-
89
- 0.1.12 (2014-08-01)
90
-
91
- * IRuby#table add option maxrows
92
- * powerful display system with format and datatype registry, see #25
93
- * Add IRuby#javascript
94
- * Add IRuby#svg
95
-
96
- 0.1.11 (2014-07-08)
97
-
98
- * Push binding if pry binding stack is empty
99
-
100
- 0.1.10 (2014-07-08)
101
-
102
- * Fix #19 (pp)
103
- * Handle exception when symlink cannot be created
104
- * Fix dependencies and Pry backend
105
-
106
- 0.1.9 (2014-02-28)
107
-
108
- * Check IPython version
109
-
110
- 0.1.7/0.1.8
111
-
112
- * Bugfixes #11, #12, #13
113
-
114
- 0.1.6 (2013-10-11)
115
-
116
- * Print Matrix and GSL::Matrix as LaTeX
117
- * Add check for Pry version
118
-
119
- 0.1.5 (2013-10-03)
120
-
121
- * Implement a rich display system
122
- * Fix error output
123
-
124
- 0.1.4 (2013-10-03)
125
-
126
- * Extract display handler from kernel
127
- * Always return a text/plain response
128
-
129
- 0.1.3 (2013-10-03)
130
-
131
- * Implement missing request handlers
132
- * Detect if Bundler is running and set kernel_cmd appropriately
133
- * Improve Pry integration
134
- * Add support for the gems gnuplot, gruff, rmagick and mini_magick
135
-
136
- 0.1.2 (2013-10-02)
137
-
138
- * Support for Pry added
139
- * Launch `iruby console` if plain `iruby` is started
140
-
141
- 0.1.0 (2013-10-02)
142
-
143
- * Cleanup and rewrite of some parts