类 Prism::StringQuery

这里我们将修补 StringQuery,放入类级别的方法,以便它可以保持一致的接口

查询方法,允许根据字符串在 Ruby 语法树中可能有效的位置对其进行分类。

属性

string[R]

此查询包装的字符串。

公共类方法

constant?(string) 点击以切换源代码

镜像 C 扩展的 StringQuery::constant? 方法。

# File prism/ffi.rb, line 518
def constant?(string)
  query(LibRubyParser.pm_string_query_constant(string, string.bytesize, string.encoding.name))
end
local?(string) 点击以切换源代码

镜像 C 扩展的 StringQuery::local? 方法。

# 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) 点击以切换源代码

镜像 C 扩展的 StringQuery::method_name? 方法。

# 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) 点击以切换源代码

使用给定的字符串初始化一个新的查询。

# File prism/string_query.rb, line 11
def initialize(string)
  @string = string
end

私有类方法

query(result) 点击以切换源代码

解析枚举结果并返回适当的布尔值。

# 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

公共实例方法

constant?() 点击以切换源代码

此字符串是否为有效的常量名称。

# File prism/string_query.rb, line 21
def constant?
  StringQuery.constant?(string)
end
local?() 点击以切换源代码

此字符串是否为有效的局部变量名称。

# File prism/string_query.rb, line 16
def local?
  StringQuery.local?(string)
end
method_name?() 点击以切换源代码

此字符串是否为有效的方法名称。

# File prism/string_query.rb, line 26
def method_name?
  StringQuery.method_name?(string)
end