iruby 0.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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