class RubyLint::DefinitionBuilder::Primitive

Definition builder used for building primitive Ruby types such as integers and strings.

Public Instance Methods

build() click to toggle source

@return [RubyLint::Definition::RubyObject]

# File lib/ruby-lint/definition_builder/primitive.rb, line 11
def build
  parents = [definition_for_node(node)]
  opts    = {
    :type          => node.type,
    :value         => node.children[0],
    :instance_type => :instance,
    :parents       => parents
  }.merge(options)

  return Definition::RubyObject.new(opts)
end
definition_for_node(node) click to toggle source

Returns a definition for a given node type.

@param [RubyLint::AST::Node] node @return [RubyLint::Definition::RubyObject] @raise ArgumentError Raised when an invalid type was specified.

# File lib/ruby-lint/definition_builder/primitive.rb, line 30
def definition_for_node(node)
  ruby_class = node.ruby_class

  raise(ArgumentError, "The type #{type} is invalid") unless ruby_class

  return vm.global_constant(ruby_class)
end