module

Ruby::V4

Ruby::V4.format(...) → Kernel.format

Instance methods

any_inspect(box : Any) : String
Source
chr(i : Int) : String

Integer#chr Ruby: строка из одного символа (в Crystal chr → Char).

Source
flatten(a : Array, depth : Int) : Array(Any)

flatten с ограничением глубины. Рекурсивные союзы типов не выражаются в Crystal, поэтому элементы боксируются в Ruby::V4::Any.

Source
float_to_s(f : Float) : String

Float#to_s Ruby: экспонента минимум из двух цифр ("1.0e-05", не "1.0e-5").

Source
gsub(s : String, pattern : Regex | String, &block : String -> _)
Source
gsub(s : String, pattern : Regex | String, hash : Hash)

gsub с Hash: отсутствующий ключ → пустая строка (как в Ruby).

Source
hash_inspect(h : Hash) : String
Source
inspect(value) : String
Source
lines(s : String, chomp : Bool) : Array(String)

String#lines Ruby; chomp: true — без разделителей в элементах. (без chomp — отдельная перегрузка arity-1 в inspect.cr)

Source
lines(s : String) : Array(String)

String#lines Ruby: разрывы сохраняются в элементах.

Source
pattern_matches?(pattern : Object, value : Object) : Bool

pattern === value для grep: класс → is_a?, Range → cover?, Regex → совпадение, иначе равенство.

Source
range_to_s(r : Range) : String
Source
rational_inspect(num : Int, den : Int) : String

Rational из разности дат: Date - Date → "2/1".

Source
round(x : Float, digits : Int = 0, half : Symbol = :up)

Float#round Ruby: по умолчанию half: :up; без знаков — Integer.

Source
round(x : Int, digits : Int = 0, half : Symbol = :up)

Integer#round(digits) Ruby: half-up (away from zero) — у Crystal round(digits) half-to-even, семантику ядра не меняем.

Source
scan(s : String, re : Regex) : Array(String)

String#scan Ruby: массив совпавших строк (не MatchData).

Source
set_add?(s : Set(T), v : T) : Set(T) | Nil forall T

Set#add? Ruby: мутирует и возвращает сет, либо nil если элемент был.

Source
set_inspect(s : Set) : String
Source
string_inspect(s : String) : String

Ruby String#inspect: NUL → \x00 (Crystal печатает \u0000). Без NUL достаточно нативного inspect, поэтому побайтовый рендер — только для строк с NUL (Ruby-строки из unpack и есть binary: байты ≥ 0x80 в них эскейпятся побайтово, что этот рендер и даёт).

Source
sub(s : String, pattern : Regex | String, &block : String -> _)

sub/gsub с блоком Ruby: блок получает строку матча. В Crystal 1.21 gsub(Regex)/gsub(String) уже передают String — просто транслируем.

Source
sym_array_inspect(names : Array(String)) : String

Массив "символов" как в Ruby: [:x, :y].

Source
sym_hash_inspect(pairs : Array(Tuple(String, _))) : String

Хэш с "символьными" ключами как в Ruby: {x: 1, y: 2}.

Source
zip(a : Array(T), b : Array(U)) : Array(Array(T | U | Nil)) forall T, U

Array#zip Ruby: более короткий массив дополняется nil.

Source

Nested types