class Prism::StringQuery
Hier werden wir StringQuery patchen, um die klassenbezogenen Methoden hinzuzufügen, damit eine konsistente Schnittstelle beibehalten werden kann.
Abfragemethoden, die es ermöglichen, Strings basierend auf ihrem Kontext zu kategorisieren, wo sie in einem Ruby-Syntaxbaum gültig sein könnten.
Attribute
Der String, den diese Abfrage umschließt.
Öffentliche Klassenmethoden
Source
# File lib/prism/ffi.rb, line 554 def constant?(string) query(LibRubyParser.pm_string_query_constant(string, string.bytesize, string.encoding.name)) end
Spiegelt die Methode StringQuery::constant? der C-Erweiterung wider.
Source
# File lib/prism/ffi.rb, line 549 def local?(string) query(LibRubyParser.pm_string_query_local(string, string.bytesize, string.encoding.name)) end
Spiegelt die Methode StringQuery::local? der C-Erweiterung wider.
Source
# File lib/prism/ffi.rb, line 559 def method_name?(string) query(LibRubyParser.pm_string_query_method_name(string, string.bytesize, string.encoding.name)) end
Spiegelt die Methode StringQuery::method_name? der C-Erweiterung wider.
Source
# File lib/prism/string_query.rb, line 12 def initialize(string) @string = string end
Initialisiert eine neue Abfrage mit dem gegebenen String.
Private Klassenmethoden
Source
# File lib/prism/ffi.rb, line 566 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
Parst das Enum-Ergebnis und gibt einen entsprechenden booleschen Wert zurück.
Öffentliche Instanzmethoden
Source
# File lib/prism/string_query.rb, line 22 def constant? StringQuery.constant?(string) end
Ob dieser String ein gültiger Konstantenname ist oder nicht.
Source
# File lib/prism/string_query.rb, line 17 def local? StringQuery.local?(string) end
Ob dieser String ein gültiger lokaler Variablenname ist oder nicht.
Source
# File lib/prism/string_query.rb, line 27 def method_name? StringQuery.method_name?(string) end
Ob dieser String ein gültiger Methodenname ist oder nicht.