Class: ArrayNode

Inherits:
Node
  • Object
show all
Defined in:
lib/nodes/basenodes.rb

Overview

Array / Data Structure Nodes

Instance Attribute Summary collapse

Attributes inherited from Node

#value

Instance Method Summary collapse

Constructor Details

#initialize(lhs, rhs) ⇒ ArrayNode

Returns a new instance of ArrayNode.



189
190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/nodes/basenodes.rb', line 189

def initialize(lhs, rhs)
  @lhs, @rhs = lhs, rhs

  if @rhs == NilClass
    @value = [@lhs]
  else
    result = [@lhs]
    @rhs.each do |element|
      result << element
    end
    @value = result
  end
end

Instance Attribute Details

#lhsObject

Returns the value of attribute lhs.



187
188
189
# File 'lib/nodes/basenodes.rb', line 187

def lhs
  @lhs
end

#rhsObject

Returns the value of attribute rhs.



187
188
189
# File 'lib/nodes/basenodes.rb', line 187

def rhs
  @rhs
end

Instance Method Details

#+(value) ⇒ Object



215
216
217
218
# File 'lib/nodes/basenodes.rb', line 215

def +(value)
  @value.append(value)
  self
end

#-(value) ⇒ Object



220
221
222
223
# File 'lib/nodes/basenodes.rb', line 220

def -(value)
  @value = @value.reject { |v| v.evaluate == value }
  self
end

#[](index) ⇒ Object



225
226
227
# File 'lib/nodes/basenodes.rb', line 225

def [](index)
  @value[index]
end

#[]=(index, value) ⇒ Object



229
230
231
# File 'lib/nodes/basenodes.rb', line 229

def []=(index, value)
  @value[index] = value
end

#display_on_new_lineObject



203
204
205
# File 'lib/nodes/basenodes.rb', line 203

def display_on_new_line
  puts @value
end

#display_on_one_lineObject



207
208
209
# File 'lib/nodes/basenodes.rb', line 207

def display_on_one_line
  puts @value.join(', ')
end

#eachObject



237
238
239
240
241
# File 'lib/nodes/basenodes.rb', line 237

def each
  @value.each_with_index do |val, index|
    yield val, index
  end
end

#evaluateObject



243
244
245
# File 'lib/nodes/basenodes.rb', line 243

def evaluate
  self
end

#sizeObject



233
234
235
# File 'lib/nodes/basenodes.rb', line 233

def size
  @value.size
end

#to_sObject



211
212
213
# File 'lib/nodes/basenodes.rb', line 211

def to_s
  @value.join(', ')
end