diff --git a/stdlib/kconv/0/kconv.rbs b/stdlib/kconv/0/kconv.rbs new file mode 100644 index 000000000..7e2461c86 --- /dev/null +++ b/stdlib/kconv/0/kconv.rbs @@ -0,0 +1,166 @@ +# +# Kanji Converter for Ruby. +# +module Kconv + # + # ASCII + # + ASCII: Encoding + + # + # Auto-Detect + # + AUTO: nil + + # + # BINARY + # + BINARY: Encoding + + # + # EUC-JP + # + EUC: Encoding + + # + # ISO-2022-JP + # + JIS: Encoding + + # + # NOCONV + # + NOCONV: nil + + # + # Shift_JIS + # + SJIS: Encoding + + # + # UNKNOWN + # + UNKNOWN: nil + + # + # UTF-16 + # + UTF16: Encoding + + # + # UTF-32 + # + UTF32: Encoding + + # + # UTF-8 + # + UTF8: Encoding + + # + # Guess input encoding by NKF.guess + # + def self.guess: (String str) -> Encoding + + # + # Returns whether input encoding is EUC-JP or not. + # + # **Note** don't expect this return value is MatchData. + # + def self.iseuc: (String str) -> bool + + # + # Returns whether input encoding is ISO-2022-JP or not. + # + def self.isjis: (String str) -> bool + + # + # Returns whether input encoding is Shift_JIS or not. + # + def self.issjis: (String str) -> bool + + # + # Returns whether input encoding is UTF-8 or not. + # + def self.isutf8: (String str) -> bool + + # + # Convert `str` to `to_enc`. `to_enc` and `from_enc` are given as constants of + # Kconv or Encoding objects. + # + def self.kconv: (String str, Encoding? out_code, ?Encoding? in_code) -> String + + # + # Convert `str` to EUC-JP + # + def self.toeuc: (String str) -> String + + # + # Convert `str` to ISO-2022-JP + # + def self.tojis: (String str) -> String + + # + # Convert `self` to locale encoding + # + def self.tolocale: (String str) -> String + + # + # Convert `str` to Shift_JIS + # + def self.tosjis: (String str) -> String + + # + # Convert `str` to UTF-16 + # + def self.toutf16: (String str) -> String + + # + # Convert `str` to UTF-32 + # + def self.toutf32: (String str) -> String + + # + # Convert `str` to UTF-8 + # + def self.toutf8: (String str) -> String +end diff --git a/test/stdlib/Kconv_test.rb b/test/stdlib/Kconv_test.rb new file mode 100644 index 000000000..4cac08c3e --- /dev/null +++ b/test/stdlib/Kconv_test.rb @@ -0,0 +1,118 @@ +require_relative "test_helper" +require "kconv" + +class KconvSingletonTest < Test::Unit::TestCase + include TestHelper + + library "kconv" + testing "singleton(::Kconv)" + + def test_ASCII + assert_const_type "::Encoding", "Kconv::ASCII" + end + + def test_AUTO + assert_const_type "nil", "Kconv::AUTO" + end + + def test_BINARY + assert_const_type "::Encoding", "Kconv::BINARY" + end + + def test_EUC + assert_const_type "::Encoding", "Kconv::EUC" + end + + def test_JIS + assert_const_type "::Encoding", "Kconv::JIS" + end + + def test_NOCONV + assert_const_type "nil", "Kconv::NOCONV" + end + + def test_SJIS + assert_const_type "::Encoding", "Kconv::SJIS" + end + + def test_UNKNOWN + assert_const_type "nil", "Kconv::UNKNOWN" + end + + def test_UTF16 + assert_const_type "::Encoding", "Kconv::UTF16" + end + + def test_UTF32 + assert_const_type "::Encoding", "Kconv::UTF32" + end + + def test_UTF8 + assert_const_type "::Encoding", "Kconv::UTF8" + end + + def test_guess + assert_send_type "(::String str) -> ::Encoding?", + Kconv, :guess, "" + end + + def test_iseuc + assert_send_type "(::String str) -> bool", + Kconv, :iseuc, "" + end + + def test_isjis + assert_send_type "(::String str) -> bool", + Kconv, :isjis, "" + end + + def test_issjis + assert_send_type "(::String str) -> bool", + Kconv, :issjis, "" + end + + def test_isutf8 + assert_send_type "(::String str) -> bool", + Kconv, :isutf8, "" + end + + def test_kconv + assert_send_type "(::String str, ::Encoding? out_code, ?::Encoding? in_code) -> ::String", + Kconv, :kconv, "", Kconv::UTF8 + end + + def test_toeuc + assert_send_type "(::String str) -> ::String", + Kconv, :toeuc, "" + end + + def test_tojis + assert_send_type "(::String str) -> ::String", + Kconv, :tojis, "" + end + + def test_tolocale + assert_send_type "(::String str) -> ::String", + Kconv, :tolocale, "" + end + + def test_tosjis + assert_send_type "(::String str) -> ::String", + Kconv, :tosjis, "" + end + + def test_toutf16 + assert_send_type "(::String str) -> ::String", + Kconv, :toutf16, "" + end + + def test_toutf32 + assert_send_type "(::String str) -> ::String", + Kconv, :toutf32, "" + end + + def test_toutf8 + assert_send_type "(::String str) -> ::String", + Kconv, :toutf8, "" + end +end