class Prism::StringQuery - prism: Ruby Standard Library Documentation

# 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