Class: RubyLint::DefinitionBuilder::RubyArray

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

Overview

Definition builder for building Ruby arrays.

Direct Known Subclasses

RubyHash

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

Builds the definition for the array and assigns the values as members.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ruby-lint/definition_builder/ruby_array.rb', line 12

def build
  definition = create_container

  values.each_with_index do |value, index|
    member = create_member(index.to_s, value)

    definition.add_definition(member)
  end

  return definition
end

#container_typeSymbol (private)

Returns:

  • (Symbol)


57
58
59
# File 'lib/ruby-lint/definition_builder/ruby_array.rb', line 57

def container_type
  return :array
end

#create_containerRubyLint::Definition::RubyObject (private)

Creates an empty data container for the members.



45
46
47
48
49
50
51
52
# File 'lib/ruby-lint/definition_builder/ruby_array.rb', line 45

def create_container
  return Definition::RubyObject.new(
    :type             => container_type,
    :instance_type    => :instance,
    :parents          => parents,
    :members_as_value => true
  )
end

#create_member(name, value) ⇒ RubyLint::Definition::RubyObject (private)

Creates a new array member definition.



68
69
70
71
72
73
74
# File 'lib/ruby-lint/definition_builder/ruby_array.rb', line 68

def create_member(name, value)
  return Definition::RubyObject.new(
    :type  => :member,
    :name  => name,
    :value => value
  )
end

#parentsArray (private)

Returns:

  • (Array)


36
37
38
# File 'lib/ruby-lint/definition_builder/ruby_array.rb', line 36

def parents
  return [vm.global_constant('Array')]
end

#valuesArray (private)

Returns:

  • (Array)


29
30
31
# File 'lib/ruby-lint/definition_builder/ruby_array.rb', line 29

def values
  return options[:values] || []
end