notcurses 0.0.1 → 0.0.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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +9 -1
  5. data/Rakefile +11 -0
  6. data/Rakefile.new +28 -0
  7. data/TODO +19 -0
  8. data/checksums/notcurses-0.0.1.gem.sha512 +1 -0
  9. data/data/PurpleDrank.jpg +0 -0
  10. data/data/Windows10Logo.png +0 -0
  11. data/data/aidsrobots.jpeg +0 -0
  12. data/data/atma.png +0 -0
  13. data/data/changes.jpg +0 -0
  14. data/data/changes.xcf +0 -0
  15. data/data/chunli01.png +0 -0
  16. data/data/chunli02.png +0 -0
  17. data/data/chunli03.png +0 -0
  18. data/data/chunli04.png +0 -0
  19. data/data/chunli05.png +0 -0
  20. data/data/chunli06.png +0 -0
  21. data/data/chunli07.png +0 -0
  22. data/data/chunli08.png +0 -0
  23. data/data/chunli09.png +0 -0
  24. data/data/chunli1.bmp +0 -0
  25. data/data/chunli10.png +0 -0
  26. data/data/chunli11.png +0 -0
  27. data/data/chunli12.png +0 -0
  28. data/data/chunli13.png +0 -0
  29. data/data/chunli14.png +0 -0
  30. data/data/chunli15.png +0 -0
  31. data/data/chunli16.png +0 -0
  32. data/data/chunli17.png +0 -0
  33. data/data/chunli18.png +0 -0
  34. data/data/chunli19.png +0 -0
  35. data/data/chunli2.bmp +0 -0
  36. data/data/chunli20.png +0 -0
  37. data/data/chunli21.png +0 -0
  38. data/data/chunli22.png +0 -0
  39. data/data/chunli23.png +0 -0
  40. data/data/chunli24.png +0 -0
  41. data/data/chunli25.png +0 -0
  42. data/data/chunli26.png +0 -0
  43. data/data/chunli27.png +0 -0
  44. data/data/chunli28.png +0 -0
  45. data/data/chunli29.png +0 -0
  46. data/data/chunli3.bmp +0 -0
  47. data/data/chunli30.png +0 -0
  48. data/data/chunli31.png +0 -0
  49. data/data/chunli32.png +1 -0
  50. data/data/chunli33.png +1 -0
  51. data/data/chunli34.png +1 -0
  52. data/data/chunli35.png +1 -0
  53. data/data/chunli36.png +1 -0
  54. data/data/chunli37.png +1 -0
  55. data/data/chunli38.png +0 -0
  56. data/data/chunli39.png +1 -0
  57. data/data/chunli4.bmp +0 -0
  58. data/data/chunli40.png +0 -0
  59. data/data/chunli41.png +1 -0
  60. data/data/chunli42.png +1 -0
  61. data/data/chunli43.png +1 -0
  62. data/data/chunli44.png +1 -0
  63. data/data/chunli45.png +0 -0
  64. data/data/chunli5.bmp +0 -0
  65. data/data/chunli6.bmp +0 -0
  66. data/data/chunli7.bmp +0 -0
  67. data/data/chunli8.bmp +0 -0
  68. data/data/covid19.jpg +0 -0
  69. data/data/dsscaw-purp.png +0 -0
  70. data/data/eagles.png +0 -0
  71. data/data/fm6.mov +0 -0
  72. data/data/fonts.jpg +0 -0
  73. data/data/freebsd.png +0 -0
  74. data/data/lamepatents.jpg +0 -0
  75. data/data/megaman2.bmp +0 -0
  76. data/data/natasha-blur.png +0 -0
  77. data/data/natasha-blur.xcf +0 -0
  78. data/data/normal.png +0 -0
  79. data/data/normal.xcf +0 -0
  80. data/data/notcurses.png +0 -0
  81. data/data/notcursesIII.mov +0 -0
  82. data/data/onedot.png +0 -0
  83. data/data/samoa.avi +0 -0
  84. data/data/samoa.osp +296 -0
  85. data/data/spaceship.png +0 -0
  86. data/data/tetris-background.jpg +0 -0
  87. data/data/tetris-background.xcf +0 -0
  88. data/data/warmech.bmp +0 -0
  89. data/data/worldmap.png +0 -0
  90. data/exe/notcurses-ruby-testscript +57 -0
  91. data/ext/notcurses/extconf.rb +56 -17
  92. data/ext/notcurses/{notcurses_wrap.c → src/notcurses_wrap.c} +55459 -18930
  93. data/ext/notcurses/swig/notcurses.i +552 -0
  94. data/lib/notcurses/swig_mixins/struct_initializer.rb +25 -0
  95. data/lib/notcurses/swig_mixins/to_h.rb +22 -0
  96. data/lib/notcurses/version.rb +1 -1
  97. data/lib/notcurses.rb +34 -1
  98. metadata +98 -11
  99. data/ext/notcurses/Makefile +0 -269
  100. data/ext/notcurses/notcurses.i +0 -282
  101. data/ext/notcurses/notcurses_wrapper.h +0 -20
  102. /data/ext/notcurses/{ncplane_vprintf_aligned.c → src/ruby_ncplane_vprintf_aligned.c} +0 -0
  103. /data/ext/notcurses/{ncplane_vprintf_stained.c → src/ruby_ncplane_vprintf_stained.c} +0 -0
  104. /data/ext/notcurses/{ncplane_vprintf_yx.c → src/ruby_ncplane_vprintf_yx.c} +0 -0
  105. /data/ext/notcurses/{modified_ruby_std_wstring.i → swig/modified_ruby_std_wstring.i} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd810d72f17887b44315230c0eaa70cd0a1989fb036cad822fb40f9cebbca536
4
- data.tar.gz: 9e837bda0413fac9c29a9807c75ab034b30f9ed2d31ad95d5283f1994a9c2348
3
+ metadata.gz: 810a615c4a2f3fa3c5dbcb446bb6c2928afdbd6fc68d091ec3ca7c8cedc8e253
4
+ data.tar.gz: 335f4947eaf7af361b78338c45b6b050f7ead375b3d2d650fee060b0732810d0
5
5
  SHA512:
6
- metadata.gz: c959c58c769bca7a7a03d0649ed12ae889e1e6135e0f6cdd0d232d660e2f70f78bc9edd519952ad5722f9a504b88c57d1950a8868218d04776c7122789913b05
7
- data.tar.gz: 607a60f4a6cff5faec9c1e22e34d37ae8180ad7e67f8c6d2577e0637d5ef2468969eb7ec03ab735bc1b6cc7e1fea1f8995756f29e46f29a36cf1e91dcfcf0184
6
+ metadata.gz: 166087bdd4a77de7c3fd3084ec4e8559647c6d63af853d08dd014c56cff5a94a38b4b221efb8db0874ef213f0256d6a96afdfffa015af5aa2c29976092463b50
7
+ data.tar.gz: a6245cbb0cb41b93a76ce4d04f46d9ad0ecad2a1aec6bc2d2411e95ef9a89fcc2bc27a59692b53f6a4395be97b2ff1bbc2360fe6907f1ef03666034ee7e29743
data/CHANGELOG.md ADDED
@@ -0,0 +1,54 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ Up next I need to look into the constant pointer churn from the
11
+ typemaps. This may just be an expected thing but for instance, calling
12
+ stdplane_const gets a new memory address every call. I was under the
13
+ impression this should return a constant address. Need to look into it
14
+ more.
15
+
16
+ Timespecs are broken.
17
+
18
+ I'd also love to figure out how to build a type-checking mechanism
19
+ between SWIG and Ruby because it's really easy to coredump right now.
20
+
21
+ ## [0.0.2] - 2024-07-31
22
+
23
+ Still a WIP with a long way to go, but at the point I can replicate
24
+ notcurses-demo in Ruby to test the extension.
25
+
26
+ ### Added
27
+ - Added SWIG mixins to make SWIG-generated class instantiation cleaner,
28
+ as well as a mixin to get a hash from a SWIG-generated class instance.
29
+
30
+ ### Changed
31
+ - All functions now return a hash; the :return key has the retval from
32
+ the function, while the other keys contain the mutated arguments keyed
33
+ by their parameter name.
34
+
35
+ ### Deprecated
36
+ - N/A
37
+
38
+ ### Removed
39
+ - N/A
40
+
41
+ ### Fixed
42
+ - Many bugfixes related to typing
43
+
44
+ ### Security
45
+ - N/A
46
+
47
+ ## [0.0.1] - YYYY-MM-DD
48
+
49
+ ### Added
50
+ - Initial release. Crude, sorta works.
51
+
52
+ [Unreleased]: https://github.com/slithernix/notcurses-ruby/compare/v0.0.2...HEAD
53
+ [0.0.2]: https://github.com/slithernix/notcurses-ruby/compare/v0.0.1...v0.0.2
54
+ [0.0.1]: https://github.com/slithernix/notcurses-ruby/releases/tag/v0.0.1
data/Gemfile CHANGED
@@ -9,12 +9,14 @@ group :development, :test do
9
9
  gem 'debug', '>= 1.9.2'
10
10
  gem "minitest", "~> 5.0"
11
11
  gem 'pry', '>= 0.14.2'
12
+ gem 'pry-byebug', '>= 3.10.1'
12
13
  gem 'pry-doc', '>= 1.4.0'
13
14
  gem 'pry-nav', '>= 1.0.0'
14
15
  gem 'pry-remote', '>= 0.1.8'
15
16
  gem 'pry-rescue', '>= 1.5.2'
16
17
  gem 'pry-theme', '>= 1.3.1'
17
18
  gem 'rake', '>= 1.64.1'
19
+ gem 'rake-compiler', '>= 1.2.7'
18
20
  gem 'rubocop', '~> 1.64.0'
19
21
  end
20
22
 
data/Gemfile.lock CHANGED
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- notcurses (0.0.1)
4
+ notcurses (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  ast (2.4.2)
10
+ byebug (11.1.3)
10
11
  coderay (1.1.3)
11
12
  debug (1.9.2)
12
13
  irb (~> 1.10)
@@ -27,6 +28,9 @@ GEM
27
28
  pry (0.14.2)
28
29
  coderay (~> 1.1)
29
30
  method_source (~> 1.0)
31
+ pry-byebug (3.10.1)
32
+ byebug (~> 11.0)
33
+ pry (>= 0.13, < 0.15)
30
34
  pry-doc (1.5.0)
31
35
  pry (~> 0.11)
32
36
  yard (~> 0.9.11)
@@ -45,6 +49,8 @@ GEM
45
49
  racc (1.8.0)
46
50
  rainbow (3.1.1)
47
51
  rake (13.2.1)
52
+ rake-compiler (1.2.7)
53
+ rake
48
54
  rdoc (6.7.0)
49
55
  psych (>= 4.0.0)
50
56
  regexp_parser (2.9.2)
@@ -81,12 +87,14 @@ DEPENDENCIES
81
87
  minitest (~> 5.0)
82
88
  notcurses!
83
89
  pry (>= 0.14.2)
90
+ pry-byebug (>= 3.10.1)
84
91
  pry-doc (>= 1.4.0)
85
92
  pry-nav (>= 1.0.0)
86
93
  pry-remote (>= 0.1.8)
87
94
  pry-rescue (>= 1.5.2)
88
95
  pry-theme (>= 1.3.1)
89
96
  rake (>= 1.64.1)
97
+ rake-compiler (>= 1.2.7)
90
98
  rubocop (~> 1.64.0)
91
99
 
92
100
  BUNDLED WITH
data/Rakefile CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "bundler/gem_tasks"
4
4
  require "rake/testtask"
5
+ require 'rake/extensiontask'
5
6
 
6
7
  Rake::TestTask.new(:test) do |t|
7
8
  t.libs << "test"
@@ -13,5 +14,15 @@ require "rubocop/rake_task"
13
14
 
14
15
  RuboCop::RakeTask.new
15
16
 
17
+ Dir.glob('lib/tasks/**/*.rake').each { |r| import r }
18
+
16
19
  task default: %i[test rubocop]
17
20
 
21
+ Rake::ExtensionTask.new('notcurses') do |ext|
22
+ ext.ext_dir = 'ext/notcurses'
23
+ ext.lib_dir = 'lib/notcurses'
24
+ ext.lib_dir = 'lib/notcurses'
25
+ ext.name = 'notcurses'
26
+ ext.source_pattern = "*.{c,cpp}"
27
+ ext.tmp_dir = 'tmp'
28
+ end
data/Rakefile.new ADDED
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+ require 'rake/extensiontask'
6
+
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs << "test"
9
+ t.libs << "lib"
10
+ t.test_files = FileList["test/**/test_*.rb"]
11
+ end
12
+
13
+ require "rubocop/rake_task"
14
+
15
+ RuboCop::RakeTask.new
16
+
17
+ Dir.glob('lib/tasks/**/*.rake').each { |r| import r }
18
+
19
+ task default: %i[test rubocop]
20
+
21
+ Rake::ExtensionTask.new('notcurses') do |ext|
22
+ ext.ext_dir = 'ext/notcurses'
23
+ ext.lib_dir = 'lib/notcurses'
24
+ ext.lib_dir = 'lib/notcurses'
25
+ ext.name = 'notcurses'
26
+ ext.source_pattern = "*.{c,cpp}"
27
+ ext.tmp_dir = 'tmp'
28
+ end
data/TODO ADDED
@@ -0,0 +1,19 @@
1
+ * Fix timespec typemaps
2
+
3
+ Clearly not working right, test with notcurses_get.
4
+
5
+ * Split SWIG generation off into its own task
6
+
7
+ Right now it's kind of just assumed in extconf.rb,
8
+ it really is conceptually a different thing.
9
+
10
+ * Create separate SWIG generation for XML
11
+
12
+ This will facilitate FFI binding generation for
13
+ secondary notcurses-ffi backend.
14
+
15
+ * Add FFI generator task and gems to bundle
16
+
17
+ * Clean up TypeMaps if possible
18
+
19
+ They hurt my brain so, last on the agenda.
@@ -0,0 +1 @@
1
+ 9c3a3ec0e5fb78fe5f58c6f7e054bff7bb0dc9bf5fba3b424493bb4272d448b9b13c818cf0043a8e914fc12e398ad99da4c168978273bfb2749f2f3554831b25
Binary file
Binary file
Binary file
data/data/atma.png ADDED
Binary file
data/data/changes.jpg ADDED
Binary file
data/data/changes.xcf ADDED
Binary file
data/data/chunli01.png ADDED
Binary file
data/data/chunli02.png ADDED
Binary file
data/data/chunli03.png ADDED
Binary file
data/data/chunli04.png ADDED
Binary file
data/data/chunli05.png ADDED
Binary file
data/data/chunli06.png ADDED
Binary file
data/data/chunli07.png ADDED
Binary file
data/data/chunli08.png ADDED
Binary file
data/data/chunli09.png ADDED
Binary file
data/data/chunli1.bmp ADDED
Binary file
data/data/chunli10.png ADDED
Binary file
data/data/chunli11.png ADDED
Binary file
data/data/chunli12.png ADDED
Binary file
data/data/chunli13.png ADDED
Binary file
data/data/chunli14.png ADDED
Binary file
data/data/chunli15.png ADDED
Binary file
data/data/chunli16.png ADDED
Binary file
data/data/chunli17.png ADDED
Binary file
data/data/chunli18.png ADDED
Binary file
data/data/chunli19.png ADDED
Binary file
data/data/chunli2.bmp ADDED
Binary file
data/data/chunli20.png ADDED
Binary file
data/data/chunli21.png ADDED
Binary file
data/data/chunli22.png ADDED
Binary file
data/data/chunli23.png ADDED
Binary file
data/data/chunli24.png ADDED
Binary file
data/data/chunli25.png ADDED
Binary file
data/data/chunli26.png ADDED
Binary file
data/data/chunli27.png ADDED
Binary file
data/data/chunli28.png ADDED
Binary file
data/data/chunli29.png ADDED
Binary file
data/data/chunli3.bmp ADDED
Binary file
data/data/chunli30.png ADDED
Binary file
data/data/chunli31.png ADDED
Binary file
data/data/chunli32.png ADDED
@@ -0,0 +1 @@
1
+ chunli30.png
data/data/chunli33.png ADDED
@@ -0,0 +1 @@
1
+ chunli29.png
data/data/chunli34.png ADDED
@@ -0,0 +1 @@
1
+ chunli30.png
data/data/chunli35.png ADDED
@@ -0,0 +1 @@
1
+ chunli31.png
data/data/chunli36.png ADDED
@@ -0,0 +1 @@
1
+ chunli30.png
data/data/chunli37.png ADDED
@@ -0,0 +1 @@
1
+ chunli29.png
data/data/chunli38.png ADDED
Binary file
data/data/chunli39.png ADDED
@@ -0,0 +1 @@
1
+ chunli29.png
data/data/chunli4.bmp ADDED
Binary file
data/data/chunli40.png ADDED
Binary file
data/data/chunli41.png ADDED
@@ -0,0 +1 @@
1
+ chunli29.png
data/data/chunli42.png ADDED
@@ -0,0 +1 @@
1
+ chunli38.png
data/data/chunli43.png ADDED
@@ -0,0 +1 @@
1
+ chunli29.png
data/data/chunli44.png ADDED
@@ -0,0 +1 @@
1
+ chunli40.png
data/data/chunli45.png ADDED
Binary file
data/data/chunli5.bmp ADDED
Binary file
data/data/chunli6.bmp ADDED
Binary file
data/data/chunli7.bmp ADDED
Binary file
data/data/chunli8.bmp ADDED
Binary file
data/data/covid19.jpg ADDED
Binary file
Binary file
data/data/eagles.png ADDED
Binary file
data/data/fm6.mov ADDED
Binary file
data/data/fonts.jpg ADDED
Binary file
data/data/freebsd.png ADDED
Binary file
Binary file
data/data/megaman2.bmp ADDED
Binary file
Binary file
Binary file
data/data/normal.png ADDED
Binary file
data/data/normal.xcf ADDED
Binary file
Binary file
Binary file
data/data/onedot.png ADDED
Binary file
data/data/samoa.avi ADDED
Binary file