Class: RubyLint::DefinitionBuilder::Primitive

Inherits:
Base
  • Object
show all
Defined in:
lib/ruby-lint/definition_builder/primitive.rb

Overview

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

Instance Attribute Summary

Attributes inherited from Base

#node, #options, #vm

Instance Method Summary collapse

Methods inherited from Base

#constant_name, #initialize

Constructor Details

This class inherits a constructor from RubyLint::DefinitionBuilder::Base

Instance Method Details

#buildRubyLint::Definition::RubyObject



11
12
13
14
15
16
17
18
19
20
21
# 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) ⇒ RubyLint::Definition::RubyObject

Returns a definition for a given node type.

Parameters:

Returns:

Raises:

  • ArgumentError Raised when an invalid type was specified.



30
31
32
33
34
35
36
# 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