onesignal 5.16.0 → 5.17.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile.lock +2 -2
  4. data/README.md +3 -3
  5. data/docs/DefaultApi.md +89 -6
  6. data/docs/DuplicateJourneyOverrides.md +30 -0
  7. data/docs/DuplicateJourneyRequest.md +18 -0
  8. data/docs/JourneyNode.md +2 -2
  9. data/docs/UpdateJourneyNodeRequest.md +2 -2
  10. data/lib/onesignal/api/default_api.rb +82 -6
  11. data/lib/onesignal/api_client.rb +1 -1
  12. data/lib/onesignal/models/duplicate_journey_overrides.rb +282 -0
  13. data/lib/onesignal/models/duplicate_journey_request.rb +219 -0
  14. data/lib/onesignal/models/journey.rb +1 -1
  15. data/lib/onesignal/models/journey_node.rb +2 -2
  16. data/lib/onesignal/models/update_journey_node_request.rb +2 -2
  17. data/lib/onesignal/version.rb +1 -1
  18. data/lib/onesignal.rb +2 -0
  19. data/spec/api/default_api_spec.rb +17 -3
  20. data/spec/models/duplicate_journey_overrides_spec.rb +69 -0
  21. data/spec/models/duplicate_journey_request_spec.rb +33 -0
  22. data/vendor/bundle/ruby/3.2.0/cache/io-console-0.9.4.gem +0 -0
  23. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-13.0.0/gem_make.out +5 -5
  24. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.5.1/gem_make.out +5 -5
  25. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{io-console-0.9.2 → io-console-0.9.4}/gem_make.out +12 -10
  26. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/io-console-0.9.4/io/console.so +0 -0
  27. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{io-console-0.9.2 → io-console-0.9.4}/mkmf.log +33 -6
  28. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/jaro_winkler-1.5.6/gem_make.out +5 -5
  29. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-5.5.0/gem_make.out +5 -5
  30. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/racc-1.8.1/gem_make.out +5 -5
  31. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.2.0/gem_make.out +5 -5
  32. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/ext/io/console/Makefile +3 -3
  33. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/ext/io/console/console.c +101 -13
  34. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/ext/io/console/extconf.rb +27 -2
  35. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/lib/io/console/size.rb +4 -2
  36. data/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/lib/io/console.so +0 -0
  37. data/vendor/bundle/ruby/3.2.0/specifications/{io-console-0.9.2.gemspec → io-console-0.9.4.gemspec} +3 -3
  38. metadata +117 -109
  39. data/vendor/bundle/ruby/3.2.0/cache/io-console-0.9.2.gem +0 -0
  40. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/io-console-0.9.2/io/console.so +0 -0
  41. data/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/lib/io/console.so +0 -0
  42. /data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{io-console-0.9.2 → io-console-0.9.4}/gem.build_complete +0 -0
  43. /data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/.document +0 -0
  44. /data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/BSDL +0 -0
  45. /data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/COPYING +0 -0
  46. /data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/README.md +0 -0
  47. /data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.9.2 → io-console-0.9.4}/ext/io/console/win32_vk.inc +0 -0
@@ -0,0 +1,33 @@
1
+ =begin
2
+ #OneSignal
3
+
4
+ #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
+
6
+ Contact: devrel@onesignal.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 6.0.0-SNAPSHOT
9
+
10
+ =end
11
+
12
+ require 'spec_helper'
13
+ require 'json'
14
+ require 'date'
15
+
16
+ # Unit tests for OneSignal::DuplicateJourneyRequest
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe OneSignal::DuplicateJourneyRequest do
20
+ let(:instance) { OneSignal::DuplicateJourneyRequest.new }
21
+
22
+ describe 'test an instance of DuplicateJourneyRequest' do
23
+ it 'should create an instance of DuplicateJourneyRequest' do
24
+ expect(instance).to be_instance_of(OneSignal::DuplicateJourneyRequest)
25
+ end
26
+ end
27
+ describe 'test attribute "overrides"' do
28
+ it 'should work' do
29
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
30
+ end
31
+ end
32
+
33
+ end
@@ -3,10 +3,10 @@ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendo
3
3
  creating Makefile
4
4
 
5
5
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/byebug-13.0.0/ext/byebug
6
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-n2pyhl sitelibdir\=./.gem.20260909-2239-n2pyhl clean
6
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-5un24x sitelibdir\=./.gem.20261002-2335-5un24x clean
7
7
 
8
8
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/byebug-13.0.0/ext/byebug
9
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-n2pyhl sitelibdir\=./.gem.20260909-2239-n2pyhl
9
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-5un24x sitelibdir\=./.gem.20261002-2335-5un24x
10
10
  compiling breakpoint.c
11
11
  compiling byebug.c
12
12
  byebug.c: In function ‘check_started’:
@@ -35,8 +35,8 @@ compiling threads.c
35
35
  linking shared-object byebug/byebug.so
36
36
 
37
37
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/byebug-13.0.0/ext/byebug
38
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-n2pyhl sitelibdir\=./.gem.20260909-2239-n2pyhl install
39
- /usr/bin/install -c -m 0755 byebug.so ./.gem.20260909-2239-n2pyhl/byebug
38
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-5un24x sitelibdir\=./.gem.20261002-2335-5un24x install
39
+ /usr/bin/install -c -m 0755 byebug.so ./.gem.20261002-2335-5un24x/byebug
40
40
 
41
41
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/byebug-13.0.0/ext/byebug
42
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-n2pyhl sitelibdir\=./.gem.20260909-2239-n2pyhl clean
42
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-5un24x sitelibdir\=./.gem.20261002-2335-5un24x clean
@@ -6,10 +6,10 @@ checking for altzone in time.h with -Werror... no
6
6
  creating Makefile
7
7
 
8
8
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/date-3.5.1/ext/date
9
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-xqdecz sitelibdir\=./.gem.20260909-2239-xqdecz clean
9
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-ayd2wm sitelibdir\=./.gem.20261002-2335-ayd2wm clean
10
10
 
11
11
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/date-3.5.1/ext/date
12
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-xqdecz sitelibdir\=./.gem.20260909-2239-xqdecz
12
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-ayd2wm sitelibdir\=./.gem.20261002-2335-ayd2wm
13
13
  compiling date_core.c
14
14
  compiling date_parse.c
15
15
  compiling date_strftime.c
@@ -17,8 +17,8 @@ compiling date_strptime.c
17
17
  linking shared-object date_core.so
18
18
 
19
19
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/date-3.5.1/ext/date
20
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-xqdecz sitelibdir\=./.gem.20260909-2239-xqdecz install
21
- /usr/bin/install -c -m 0755 date_core.so ./.gem.20260909-2239-xqdecz
20
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-ayd2wm sitelibdir\=./.gem.20261002-2335-ayd2wm install
21
+ /usr/bin/install -c -m 0755 date_core.so ./.gem.20261002-2335-ayd2wm
22
22
 
23
23
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/date-3.5.1/ext/date
24
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-xqdecz sitelibdir\=./.gem.20260909-2239-xqdecz clean
24
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-ayd2wm sitelibdir\=./.gem.20261002-2335-ayd2wm clean
@@ -1,4 +1,4 @@
1
- current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console
1
+ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console
2
2
  /opt/hostedtoolcache/Ruby/3.2.11/x64/bin/ruby extconf.rb
3
3
  checking for rb_interned_str_cstr()... yes
4
4
  checking for rb_ractor_local_storage_value_newkey()... yes
@@ -13,20 +13,22 @@ checking for HAVE_RUBY_FIBER_SCHEDULER_H... yes
13
13
  checking for rb_category_warn()... yes
14
14
  checking for RB_WARN_CATEGORY_DEPRECATED... yes
15
15
  checking for ttyname_r()... yes
16
+ checking for type of ttyname_r()... int
16
17
  checking for rb_prepend_module()... yes
18
+ checking for gperf... no
17
19
  creating Makefile
18
20
 
19
- current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console
20
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-ta9dwh sitelibdir\=./.gem.20260909-2239-ta9dwh clean
21
+ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console
22
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-i1qtru sitelibdir\=./.gem.20261002-2335-i1qtru clean
21
23
 
22
- current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console
23
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-ta9dwh sitelibdir\=./.gem.20260909-2239-ta9dwh
24
+ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console
25
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-i1qtru sitelibdir\=./.gem.20261002-2335-i1qtru
24
26
  compiling console.c
25
27
  linking shared-object io/console.so
26
28
 
27
- current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console
28
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-ta9dwh sitelibdir\=./.gem.20260909-2239-ta9dwh install
29
- /usr/bin/install -c -m 0755 console.so ./.gem.20260909-2239-ta9dwh/io
29
+ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console
30
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-i1qtru sitelibdir\=./.gem.20261002-2335-i1qtru install
31
+ /usr/bin/install -c -m 0755 console.so ./.gem.20261002-2335-i1qtru/io
30
32
 
31
- current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console
32
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-ta9dwh sitelibdir\=./.gem.20260909-2239-ta9dwh clean
33
+ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console
34
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-i1qtru sitelibdir\=./.gem.20261002-2335-i1qtru clean
@@ -143,8 +143,8 @@ checked program was:
143
143
  /* end */
144
144
 
145
145
  LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.2.11/x64/lib "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0 -I. -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -lruby -lm -lpthread -lc"
146
- /usr/bin/ld: /tmp/cc4oIifE.o: in function `t':
147
- /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console/conftest.c:17:(.text+0xb): undefined reference to `rb_io_path'
146
+ /usr/bin/ld: /tmp/ccpNTF49.o: in function `t':
147
+ /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console/conftest.c:17:(.text+0xb): undefined reference to `rb_io_path'
148
148
  collect2: error: ld returned 1 exit status
149
149
  checked program was:
150
150
  /* begin */
@@ -203,8 +203,8 @@ checked program was:
203
203
  /* end */
204
204
 
205
205
  LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.2.11/x64/lib "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0 -I. -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -lruby -lm -lpthread -lc"
206
- /usr/bin/ld: /tmp/ccJIKKCl.o: in function `t':
207
- /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console/conftest.c:17:(.text+0xb): undefined reference to `rb_io_closed_p'
206
+ /usr/bin/ld: /tmp/cc8Nhk4g.o: in function `t':
207
+ /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console/conftest.c:17:(.text+0xb): undefined reference to `rb_io_closed_p'
208
208
  collect2: error: ld returned 1 exit status
209
209
  checked program was:
210
210
  /* begin */
@@ -263,8 +263,8 @@ checked program was:
263
263
  /* end */
264
264
 
265
265
  LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.2.11/x64/lib "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0 -I. -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -lruby -lm -lpthread -lc"
266
- /usr/bin/ld: /tmp/ccifzkUt.o: in function `t':
267
- /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.2/ext/io/console/conftest.c:17:(.text+0xb): undefined reference to `rb_io_open_descriptor'
266
+ /usr/bin/ld: /tmp/ccUMKLPf.o: in function `t':
267
+ /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/ext/io/console/conftest.c:17:(.text+0xb): undefined reference to `rb_io_open_descriptor'
268
268
  collect2: error: ld returned 1 exit status
269
269
  checked program was:
270
270
  /* begin */
@@ -435,6 +435,29 @@ checked program was:
435
435
 
436
436
  --------------------
437
437
 
438
+ checking for type of ttyname_r()... -------------------- int
439
+
440
+ LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.2.11/x64/lib "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0 -I. -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -lruby -lm -lpthread -lc"
441
+ checked program was:
442
+ /* begin */
443
+ 1: #include "ruby.h"
444
+ 2:
445
+ 3: #include <unistd.h>
446
+ 4:
447
+ 5: int t(void) {char name[1024]; return ttyname_r(0, name, sizeof(name)) % 1024;}
448
+ 6: int main(int argc, char **argv)
449
+ 7: {
450
+ 8: if (argc > 1000000) {
451
+ 9: int (* volatile tp)(void)=(int (*)(void))&t;
452
+ 10: printf("%d", (*tp)());
453
+ 11: }
454
+ 12:
455
+ 13: return !!argv[argc];
456
+ 14: }
457
+ /* end */
458
+
459
+ --------------------
460
+
438
461
  have_func: checking for rb_prepend_module()... -------------------- yes
439
462
 
440
463
  LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.2.11/x64/lib "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.2.11/x64/include/ruby-3.2.0 -I. -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.2.11/x64/lib -lruby -lm -lpthread -lc"
@@ -458,3 +481,7 @@ checked program was:
458
481
 
459
482
  --------------------
460
483
 
484
+ find_executable: checking for gperf... -------------------- no
485
+
486
+ --------------------
487
+
@@ -3,10 +3,10 @@ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendo
3
3
  creating Makefile
4
4
 
5
5
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.6/ext/jaro_winkler
6
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-jg75sd sitelibdir\=./.gem.20260909-2239-jg75sd clean
6
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-povonv sitelibdir\=./.gem.20261002-2335-povonv clean
7
7
 
8
8
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.6/ext/jaro_winkler
9
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-jg75sd sitelibdir\=./.gem.20260909-2239-jg75sd
9
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-povonv sitelibdir\=./.gem.20261002-2335-povonv
10
10
  compiling adj_matrix.c
11
11
  adj_matrix.c: In function ‘adj_matrix_default’:
12
12
  adj_matrix.c:82:12: warning: old-style function definition [-Wold-style-definition]
@@ -22,8 +22,8 @@ compiling jaro_winkler.c
22
22
  linking shared-object jaro_winkler/jaro_winkler_ext.so
23
23
 
24
24
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.6/ext/jaro_winkler
25
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-jg75sd sitelibdir\=./.gem.20260909-2239-jg75sd install
26
- /usr/bin/install -c -m 0755 jaro_winkler_ext.so ./.gem.20260909-2239-jg75sd/jaro_winkler
25
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-povonv sitelibdir\=./.gem.20261002-2335-povonv install
26
+ /usr/bin/install -c -m 0755 jaro_winkler_ext.so ./.gem.20261002-2335-povonv/jaro_winkler
27
27
 
28
28
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.6/ext/jaro_winkler
29
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-jg75sd sitelibdir\=./.gem.20260909-2239-jg75sd clean
29
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-povonv sitelibdir\=./.gem.20261002-2335-povonv clean
@@ -3,13 +3,13 @@ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendo
3
3
  creating Makefile
4
4
 
5
5
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/psych-5.5.0/ext/psych
6
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-9bmrdv sitelibdir\=./.gem.20260909-2239-9bmrdv clean
6
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-2i1rb0 sitelibdir\=./.gem.20261002-2335-2i1rb0 clean
7
7
  cd libyaml && make clean
8
8
  /bin/sh: 1: cd: can't cd to libyaml
9
9
  make: [Makefile:283: clean-so] Error 2 (ignored)
10
10
 
11
11
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/psych-5.5.0/ext/psych
12
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-9bmrdv sitelibdir\=./.gem.20260909-2239-9bmrdv
12
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-2i1rb0 sitelibdir\=./.gem.20261002-2335-2i1rb0
13
13
  compiling psych.c
14
14
  compiling psych_emitter.c
15
15
  compiling psych_parser.c
@@ -18,11 +18,11 @@ compiling psych_yaml_tree.c
18
18
  linking shared-object psych.so
19
19
 
20
20
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/psych-5.5.0/ext/psych
21
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-9bmrdv sitelibdir\=./.gem.20260909-2239-9bmrdv install
22
- /usr/bin/install -c -m 0755 psych.so ./.gem.20260909-2239-9bmrdv
21
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-2i1rb0 sitelibdir\=./.gem.20261002-2335-2i1rb0 install
22
+ /usr/bin/install -c -m 0755 psych.so ./.gem.20261002-2335-2i1rb0
23
23
 
24
24
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/psych-5.5.0/ext/psych
25
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-9bmrdv sitelibdir\=./.gem.20260909-2239-9bmrdv clean
25
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-2i1rb0 sitelibdir\=./.gem.20261002-2335-2i1rb0 clean
26
26
  cd libyaml && make clean
27
27
  /bin/sh: 1: cd: can't cd to libyaml
28
28
  make: [Makefile:283: clean-so] Error 2 (ignored)
@@ -3,16 +3,16 @@ current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendo
3
3
  creating Makefile
4
4
 
5
5
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/racc-1.8.1/ext/racc/cparse
6
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-b2rtoj sitelibdir\=./.gem.20260909-2239-b2rtoj clean
6
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-mxhhl6 sitelibdir\=./.gem.20261002-2335-mxhhl6 clean
7
7
 
8
8
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/racc-1.8.1/ext/racc/cparse
9
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-b2rtoj sitelibdir\=./.gem.20260909-2239-b2rtoj
9
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-mxhhl6 sitelibdir\=./.gem.20261002-2335-mxhhl6
10
10
  compiling cparse.c
11
11
  linking shared-object racc/cparse.so
12
12
 
13
13
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/racc-1.8.1/ext/racc/cparse
14
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-b2rtoj sitelibdir\=./.gem.20260909-2239-b2rtoj install
15
- /usr/bin/install -c -m 0755 cparse.so ./.gem.20260909-2239-b2rtoj/racc
14
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-mxhhl6 sitelibdir\=./.gem.20261002-2335-mxhhl6 install
15
+ /usr/bin/install -c -m 0755 cparse.so ./.gem.20261002-2335-mxhhl6/racc
16
16
 
17
17
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/racc-1.8.1/ext/racc/cparse
18
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-b2rtoj sitelibdir\=./.gem.20260909-2239-b2rtoj clean
18
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-mxhhl6 sitelibdir\=./.gem.20261002-2335-mxhhl6 clean
@@ -4,16 +4,16 @@ checking for rb_io_mode_t in ruby/io.h... no
4
4
  creating Makefile
5
5
 
6
6
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/stringio-3.2.0/ext/stringio
7
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-p0qi84 sitelibdir\=./.gem.20260909-2239-p0qi84 clean
7
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-6vm2sm sitelibdir\=./.gem.20261002-2335-6vm2sm clean
8
8
 
9
9
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/stringio-3.2.0/ext/stringio
10
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-p0qi84 sitelibdir\=./.gem.20260909-2239-p0qi84
10
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-6vm2sm sitelibdir\=./.gem.20261002-2335-6vm2sm
11
11
  compiling stringio.c
12
12
  linking shared-object stringio.so
13
13
 
14
14
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/stringio-3.2.0/ext/stringio
15
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-p0qi84 sitelibdir\=./.gem.20260909-2239-p0qi84 install
16
- /usr/bin/install -c -m 0755 stringio.so ./.gem.20260909-2239-p0qi84
15
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-6vm2sm sitelibdir\=./.gem.20261002-2335-6vm2sm install
16
+ /usr/bin/install -c -m 0755 stringio.so ./.gem.20261002-2335-6vm2sm
17
17
 
18
18
  current directory: /home/runner/work/onesignal-ruby-api/onesignal-ruby-api/vendor/bundle/ruby/3.2.0/gems/stringio-3.2.0/ext/stringio
19
- make DESTDIR\= sitearchdir\=./.gem.20260909-2239-p0qi84 sitelibdir\=./.gem.20260909-2239-p0qi84 clean
19
+ make DESTDIR\= sitearchdir\=./.gem.20261002-2335-6vm2sm sitelibdir\=./.gem.20261002-2335-6vm2sm clean
@@ -88,7 +88,7 @@ CCDLFLAGS = -fPIC
88
88
  CFLAGS = $(CCDLFLAGS) $(cflags) -fPIC $(ARCH_FLAG)
89
89
  INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
90
90
  DEFS =
91
- CPPFLAGS = -DHAVE_RB_INTERNED_STR_CSTR -DHAVE_RB_RACTOR_LOCAL_STORAGE_VALUE_NEWKEY -DHAVE_RB_IO_DESCRIPTOR -DHAVE_TERMIOS_H -DHAVE_CFMAKERAW -DHAVE_SYS_IOCTL_H -DHAVE_RB_IO_WAIT=1 -DHAVE_RB_CATEGORY_WARN -DHAVE_CONST_RB_WARN_CATEGORY_DEPRECATED -DHAVE_TTYNAME_R -DHAVE_RB_PREPEND_MODULE -DENABLE_PATH_CHECK=0 $(DEFS) $(cppflags)
91
+ CPPFLAGS = -DHAVE_RB_INTERNED_STR_CSTR -DHAVE_RB_RACTOR_LOCAL_STORAGE_VALUE_NEWKEY -DHAVE_RB_IO_DESCRIPTOR -DHAVE_TERMIOS_H -DHAVE_CFMAKERAW -DHAVE_SYS_IOCTL_H -DHAVE_RB_IO_WAIT=1 -DHAVE_RB_CATEGORY_WARN -DHAVE_CONST_RB_WARN_CATEGORY_DEPRECATED -DHAVE_TTYNAME_R -DTTYNAME_R_RETURNS_INT -DHAVE_RB_PREPEND_MODULE -DENABLE_PATH_CHECK=0 $(DEFS) $(cppflags)
92
92
  CXXFLAGS = $(CCDLFLAGS) $(ARCH_FLAG)
93
93
  ldflags = -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed
94
94
  dldflags = -Wl,--compress-debug-sections=zlib
@@ -164,8 +164,8 @@ TARGET_SO = $(TARGET_SO_DIR)$(DLLIB)
164
164
  CLEANLIBS = $(TARGET_SO) false
165
165
  CLEANOBJS = $(OBJS) *.bak
166
166
  TARGET_SO_DIR_TIMESTAMP = $(TIMESTAMP_DIR)/.sitearchdir.-.io.time
167
-
168
- VK_HEADER =
167
+ ###
168
+ all: # the default target
169
169
 
170
170
  all: $(DLLIB)
171
171
  static: $(STATIC_LIB)
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  static const char *const
7
- IO_CONSOLE_VERSION = "0.9.2";
7
+ IO_CONSOLE_VERSION = "0.9.4";
8
8
 
9
9
  #include "ruby.h"
10
10
  #include "ruby/io.h"
@@ -178,6 +178,22 @@ typedef struct {
178
178
  # define NIL_OR_UNDEF_P(obj) (NIL_P(obj) || UNDEF_P(obj))
179
179
  #endif
180
180
 
181
+ static int
182
+ to_vtime(VALUE vtime)
183
+ {
184
+ VALUE v10 = INT2FIX(10);
185
+ vtime = rb_funcall3(vtime, '*', 1, &v10);
186
+ return NUM2INT(vtime);
187
+ }
188
+
189
+ static unsigned char
190
+ clamp_uchar(int n)
191
+ {
192
+ if ((unsigned int)n >= UCHAR_MAX) n = UCHAR_MAX;
193
+ else if (n < 0) n = 0;
194
+ return (unsigned char)n;
195
+ }
196
+
181
197
  static rawmode_arg_t *
182
198
  rawmode_opt(int *argcp, VALUE *argv, int min_argc, int max_argc, rawmode_arg_t *opts)
183
199
  {
@@ -209,13 +225,11 @@ rawmode_opt(int *argcp, VALUE *argv, int min_argc, int max_argc, rawmode_arg_t *
209
225
  opts->vtime = 0;
210
226
  opts->intr = 0;
211
227
  if (!NIL_OR_UNDEF_P(vmin)) {
212
- opts->vmin = NUM2INT(vmin);
228
+ opts->vmin = clamp_uchar(NUM2INT(vmin));
213
229
  optp = opts;
214
230
  }
215
231
  if (!NIL_OR_UNDEF_P(vtime)) {
216
- VALUE v10 = INT2FIX(10);
217
- vtime = rb_funcall3(vtime, '*', 1, &v10);
218
- opts->vtime = NUM2INT(vtime);
232
+ opts->vtime = clamp_uchar(to_vtime(vtime));
219
233
  optp = opts;
220
234
  }
221
235
  switch (intr) {
@@ -762,6 +776,13 @@ conmode_init_copy(VALUE obj, VALUE obj2)
762
776
  return obj;
763
777
  }
764
778
 
779
+ static VALUE
780
+ conmode_get_echo(VALUE obj)
781
+ {
782
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
783
+ return echo_p(t) ? Qtrue : Qfalse;
784
+ }
785
+
765
786
  static VALUE
766
787
  conmode_set_echo(VALUE obj, VALUE f)
767
788
  {
@@ -794,6 +815,58 @@ conmode_raw_new(int argc, VALUE *argv, VALUE obj)
794
815
  return conmode_new(rb_obj_class(obj), &t);
795
816
  }
796
817
 
818
+ static VALUE
819
+ conmode_get_min(VALUE obj)
820
+ {
821
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
822
+ #ifdef VMIN
823
+ return INT2FIX(t->c_cc[VMIN]);
824
+ #else
825
+ (void)t;
826
+ return Qnil;
827
+ #endif
828
+ }
829
+
830
+ static VALUE
831
+ conmode_set_min(VALUE obj, VALUE min)
832
+ {
833
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
834
+ int vmin = NIL_P(min) ? 1 : clamp_uchar(NUM2INT(min));
835
+ #ifdef VMIN
836
+ t->c_cc[VMIN] = vmin;
837
+ #else
838
+ (void)t;
839
+ (void)vmin;
840
+ #endif
841
+ return min;
842
+ }
843
+
844
+ static VALUE
845
+ conmode_get_time(VALUE obj)
846
+ {
847
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
848
+ #ifdef VTIME
849
+ return rb_rational_new(INT2FIX(t->c_cc[VTIME]), INT2FIX(10));
850
+ #else
851
+ (void)t;
852
+ return Qnil;
853
+ #endif
854
+ }
855
+
856
+ static VALUE
857
+ conmode_set_time(VALUE obj, VALUE time)
858
+ {
859
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
860
+ int vtime = NIL_P(time) ? 0 : clamp_uchar(to_vtime(time));
861
+ #ifdef VTIME
862
+ t->c_cc[VTIME] = vtime;
863
+ #else
864
+ (void)t;
865
+ (void)vtime;
866
+ #endif
867
+ return time;
868
+ }
869
+
797
870
  #ifdef _WIN32
798
871
  /*
799
872
  * call-seq:
@@ -2135,10 +2208,17 @@ puts_call(VALUE io)
2135
2208
  return rb_io_write(io, rb_default_rs);
2136
2209
  }
2137
2210
 
2211
+ static VALUE
2212
+ funcall_with_rs(VALUE obj, ID mid)
2213
+ {
2214
+ const VALUE rs = rb_default_rs; /* rvalue in TruffleRuby */
2215
+ return rb_funcallv(obj, mid, 1, &rs);
2216
+ }
2217
+
2138
2218
  static VALUE
2139
2219
  gets_call(VALUE io)
2140
2220
  {
2141
- return rb_funcallv(io, id_gets, 0, 0);
2221
+ return funcall_with_rs(io, id_gets);
2142
2222
  }
2143
2223
 
2144
2224
  static VALUE
@@ -2161,8 +2241,7 @@ static VALUE
2161
2241
  str_chomp(VALUE str)
2162
2242
  {
2163
2243
  if (!NIL_P(str)) {
2164
- const VALUE rs = rb_default_rs; /* rvalue in TruffleRuby */
2165
- rb_funcallv(str, id_chomp_bang, 1, &rs);
2244
+ funcall_with_rs(str, id_chomp_bang);
2166
2245
  }
2167
2246
  return str;
2168
2247
  }
@@ -2223,7 +2302,7 @@ io_getpass(int argc, VALUE *argv, VALUE io)
2223
2302
  * call-seq:
2224
2303
  * io.ttyname -> string or nil
2225
2304
  *
2226
- * Returns name of associated terminal (tty) if +io+ is not a tty.
2305
+ * Returns name of associated terminal (tty) if +io+ is a tty.
2227
2306
  * Returns +nil+ otherwise.
2228
2307
  */
2229
2308
  static VALUE
@@ -2235,20 +2314,23 @@ console_ttyname(VALUE io)
2235
2314
  return rb_usascii_str_new_lit("con");
2236
2315
  # elif defined HAVE_TTYNAME_R
2237
2316
  {
2317
+ # ifdef TTYNAME_R_RETURNS_CHAR_P
2318
+ # define ttyname_r(fd, name, size) (ttyname_r(fd, name, size) == NULL ? errno : 0)
2319
+ # endif
2238
2320
  char termname[1024], *tn = termname;
2239
2321
  size_t size = sizeof(termname);
2240
2322
  int e;
2241
- if (ttyname_r(fd, tn, size) == 0)
2323
+ if ((e = ttyname_r(fd, tn, size)) == 0)
2242
2324
  return rb_interned_str_cstr(tn);
2243
- if ((e = errno) == ERANGE) {
2325
+ if (e == ERANGE) {
2244
2326
  VALUE s = rb_str_new(0, size);
2245
2327
  while (1) {
2246
2328
  tn = RSTRING_PTR(s);
2247
2329
  size = rb_str_capacity(s);
2248
- if (ttyname_r(fd, tn, size) == 0) {
2330
+ if ((e = ttyname_r(fd, tn, size)) == 0) {
2249
2331
  return rb_str_to_interned_str(rb_str_resize(s, strlen(tn)));
2250
2332
  }
2251
- if ((e = errno) != ERANGE) break;
2333
+ if (e != ERANGE) break;
2252
2334
  if ((size *= 2) >= INT_MAX/2) break;
2253
2335
  rb_str_resize(s, size);
2254
2336
  }
@@ -2502,9 +2584,15 @@ InitVM_console(void)
2502
2584
  rb_define_alloc_func(cConmode, conmode_alloc);
2503
2585
  rb_undef_method(cConmode, "initialize");
2504
2586
  rb_define_method(cConmode, "initialize_copy", conmode_init_copy, 1);
2587
+ rb_define_method(cConmode, "echo?", conmode_get_echo, 0);
2588
+ rb_define_method(cConmode, "echo", conmode_get_echo, 0);
2505
2589
  rb_define_method(cConmode, "echo=", conmode_set_echo, 1);
2506
2590
  rb_define_method(cConmode, "raw!", conmode_set_raw, -1);
2507
2591
  rb_define_method(cConmode, "raw", conmode_raw_new, -1);
2592
+ rb_define_method(cConmode, "min", conmode_get_min, 0);
2593
+ rb_define_method(cConmode, "min=", conmode_set_min, 1);
2594
+ rb_define_method(cConmode, "time", conmode_get_time, 0);
2595
+ rb_define_method(cConmode, "time=", conmode_set_time, 1);
2508
2596
  #ifdef _WIN32
2509
2597
  rb_define_method(cConmode, "virtual_terminal_processing?", conmode_virtual_terminal_processing_p, 0);
2510
2598
  rb_define_method(cConmode, "virtual_terminal_processing=", conmode_set_virtual_terminal_processing, 1);
@@ -50,10 +50,35 @@ when true
50
50
  end
51
51
  have_func("rb_category_warn")
52
52
  have_const("RB_WARN_CATEGORY_DEPRECATED")
53
- win32 or have_func("ttyname_r") or have_func("ttyname")
53
+ unless win32
54
+ if have_func("ttyname_r")
55
+ ret = checking_for("type of ttyname_r()", "%s") {try_link(<<~C) ? "int" : "char *"}
56
+ #{cpp_include %<unistd.h>}
57
+ int t(void) {char name[1024]; return ttyname_r(0, name, sizeof(name)) % 1024;}
58
+ #{MAIN_DOES_NOTHING('t')}
59
+ C
60
+ $defs << "-DTTYNAME_R_RETURNS_#{ret.tr_cpp}"
61
+ else
62
+ have_func("ttyname")
63
+ end
64
+ end
54
65
  have_func("rb_prepend_module") # not exported by TruffleRuby
66
+ vk_tool = find_executable("gperf")
55
67
  create_makefile("io/console") {|conf|
56
- conf << "\n""VK_HEADER = #{vk_header}\n"
68
+ conf << "###\n" "all: # the default target\n"
69
+ if vk_header
70
+ conf << <<~MK
71
+ VK_HEADER = #{vk_header}
72
+ console.#$OBJEXT: $(VK_HEADER)
73
+ MK
74
+ end
75
+ if vk_tool and vk_mk = (File.read("#$srcdir/win32_vk.mk") rescue nil)
76
+ unless conf.any? {|c| /^ *top_srcdir *=/.match?(c)}
77
+ conf << "top_srcdir = $(srcdir)/../../..\n"
78
+ end
79
+ conf.concat(depend_rules(vk_mk))
80
+ end
81
+ conf
57
82
  }
58
83
  when nil
59
84
  File.write("Makefile", dummy_makefile($srcdir).join(""))
@@ -1,9 +1,11 @@
1
1
  # frozen_string_literal: false
2
2
  # fallback to console window size
3
3
  def IO.default_console_size
4
+ lines = ENV["LINES"].to_i
5
+ columns = ENV["COLUMNS"].to_i
4
6
  [
5
- ENV["LINES"].to_i.nonzero? || 25,
6
- ENV["COLUMNS"].to_i.nonzero? || 80,
7
+ lines.positive? ? lines : 25,
8
+ columns.positive? ? columns : 80,
7
9
  ]
8
10
  end
9
11
 
@@ -1,16 +1,16 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: io-console 0.9.2 ruby lib
2
+ # stub: io-console 0.9.4 ruby lib
3
3
  # stub: ext/io/console/extconf.rb
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "io-console".freeze
7
- s.version = "0.9.2"
7
+ s.version = "0.9.4"
8
8
 
9
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
10
10
  s.metadata = { "changelog_uri" => "https://github.com/ruby/io-console/releases", "source_code_url" => "https://github.com/ruby/io-console" } if s.respond_to? :metadata=
11
11
  s.require_paths = ["lib".freeze]
12
12
  s.authors = ["Nobu Nakada".freeze]
13
- s.date = "2026-08-10"
13
+ s.date = "2026-09-17"
14
14
  s.description = "add console capabilities to IO instances.".freeze
15
15
  s.email = "nobu@ruby-lang.org".freeze
16
16
  s.extensions = ["ext/io/console/extconf.rb".freeze]