класс Prism::StringQuery
Здесь мы собираемся исправить StringQuery, чтобы добавить методы на уровне класса, чтобы он мог поддерживать согласованный интерфейс
Методы запроса, которые позволяют категоризировать строки на основе их контекста, где они могут быть валидными в дереве синтаксического анализа Ruby.
Атрибуты
Строка, которую оборачивает этот запрос.
Публичные методы класса
Исходный код
# File lib/prism/ffi.rb, line 518 def constant?(string) query(LibRubyParser.pm_string_query_constant(string, string.bytesize, string.encoding.name)) end
Отражает метод C-расширения StringQuery::constant?.
Исходный код
# File lib/prism/ffi.rb, line 513 def local?(string) query(LibRubyParser.pm_string_query_local(string, string.bytesize, string.encoding.name)) end
Отражает метод C-расширения StringQuery::local?.
Исходный код
# File lib/prism/ffi.rb, line 523 def method_name?(string) query(LibRubyParser.pm_string_query_method_name(string, string.bytesize, string.encoding.name)) end
Отражает метод C-расширения StringQuery::method_name?.
Исходный код
# File lib/prism/string_query.rb, line 11 def initialize(string) @string = string end
Инициализирует новый запрос заданной строкой.
Приватные методы класса
Исходный код
# File lib/prism/ffi.rb, line 530
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 Парсит результат перечисления и возвращает соответствующий булево значение.
Публичные методы экземпляра
Исходный код
# File lib/prism/string_query.rb, line 21 def constant? StringQuery.constant?(string) end
Является ли эта строка допустимым именем константы.
Исходный код
# File lib/prism/string_query.rb, line 16 def local? StringQuery.local?(string) end
Является ли эта строка допустимым именем локальной переменной.
Исходный код
# File lib/prism/string_query.rb, line 26 def method_name? StringQuery.method_name?(string) end
Является ли эта строка допустимым именем метода.
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.