class Prism::StringQuery
Here we are going to patch StringQuery
to put in the class-level methods so that it can maintain a consistent interface
Query methods that allow categorizing strings based on their context for where they could be valid in a Ruby syntax tree.
Attributes
string[R]
The string that this query is wrapping.
Public Class Methods
constant?(string)
click to toggle source
Mirrors the C extension’s StringQuery::constant?
method.
# File prism/ffi.rb, line 518 def constant?(string) query(LibRubyParser.pm_string_query_constant(string, string.bytesize, string.encoding.name)) end
local?(string)
click to toggle source
Mirrors the C extension’s StringQuery::local?
method.
# File prism/ffi.rb, line 513 def local?(string) query(LibRubyParser.pm_string_query_local(string, string.bytesize, string.encoding.name)) end
method_name?(string)
click to toggle source
Mirrors the C extension’s StringQuery::method_name?
method.
# File prism/ffi.rb, line 523 def method_name?(string) query(LibRubyParser.pm_string_query_method_name(string, string.bytesize, string.encoding.name)) end
new(string)
click to toggle source
Initialize a new query with the given string.
# File prism/string_query.rb, line 11 def initialize(string) @string = string end
Private Class Methods
query(result)
click to toggle source
Parse the enum result and return an appropriate boolean.
# File 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
Public Instance Methods
constant?()
click to toggle source
Whether or not this string is a valid constant name.
# File prism/string_query.rb, line 21 def constant? StringQuery.constant?(string) end
local?()
click to toggle source
Whether or not this string is a valid local variable name.
# File prism/string_query.rb, line 16 def local? StringQuery.local?(string) end
method_name?()
click to toggle source
Whether or not this string is a valid method name.
# File prism/string_query.rb, line 26 def method_name? StringQuery.method_name?(string) end