class Prism::StringQuery
Здесь мы собираемся расширить StringQuery, добавив методы уровня класса, чтобы обеспечить согласованный интерфейс.
Методы запросов, позволяющие классифицировать строки в зависимости от контекста, в котором они могут быть допустимы в синтаксическом дереве Ruby.
Атрибуты
Строка, которую оборачивает этот запрос.
Открытые методы класса
# File lib/prism/ffi.rb, line 546 def constant?(string) query(LibRubyParser.pm_string_query_constant(string, string.bytesize, string.encoding.name)) end
Соответствует методу StringQuery::constant? из C-расширения.
# File lib/prism/ffi.rb, line 541 def local?(string) query(LibRubyParser.pm_string_query_local(string, string.bytesize, string.encoding.name)) end
Соответствует методу StringQuery::local? из C-расширения.
# File lib/prism/ffi.rb, line 551 def method_name?(string) query(LibRubyParser.pm_string_query_method_name(string, string.bytesize, string.encoding.name)) end
Соответствует методу StringQuery::method_name? из C-расширения.
# File lib/prism/string_query.rb, line 12 def initialize(string) @string = string end
Инициализирует новый запрос с указанной строкой.
Закрытые методы класса
# File lib/prism/ffi.rb, line 558
def query(result)
case result
when :PM_STRING_QUERY_ERROR
raise ArgumentError, "Invalid or non ascii-compatible encoding"
when :PM_STRING_QUERY_FALSE
false
when :PM_STRING_QUERY_TRUE
true
end
end Разбирает результат enum и возвращает соответствующее логическое значение.
Открытые методы экземпляра
# File lib/prism/string_query.rb, line 22 def constant? StringQuery.constant?(string) end
Указывает, является ли эта строка допустимым именем константы.
# File lib/prism/string_query.rb, line 17 def local? StringQuery.local?(string) end
Указывает, является ли эта строка допустимым именем локальной переменной.
# File lib/prism/string_query.rb, line 27 def method_name? StringQuery.method_name?(string) end
Указывает, является ли эта строка допустимым именем метода.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.