Class: Fukubukuro::ECMA::Core::Array

Inherits:
Container show all
Defined in:
lib/amber/fukubukuro/ecma_core.rb

Instance Attribute Summary

Attributes inherited from Container

#original, #value

Instance Method Summary collapse

Methods inherited from Container

bind_to_original, #inspect, inspect, #method_missing, #pretty_print, #value_inspect

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Fukubukuro::ECMA::Core::Container

Instance Method Details

#[](index) ⇒ Object



239
240
241
242
243
244
245
246
# File 'lib/amber/fukubukuro/ecma_core.rb', line 239

def [] index
  case index
  when Number
    value[index.value]
  else
    raise ::ArgumentError, 'expected Number, got %p' % [index]
  end
end

#[]=(index, object) ⇒ Object



248
249
250
251
252
253
254
255
# File 'lib/amber/fukubukuro/ecma_core.rb', line 248

def []= index, object
  case index
  when Number
    value[index.value] = object
  else
    raise ::ArgumentError, 'expected Number, got %p' % [index]
  end
end

#fuku_send(meth, *args) ⇒ Object



265
266
267
268
# File 'lib/amber/fukubukuro/ecma_core.rb', line 265

def fuku_send meth, *args
  return send(meth, *args) if respond_to? meth
  method_missing meth, *args
end

#lengthObject



261
262
263
# File 'lib/amber/fukubukuro/ecma_core.rb', line 261

def length
  Number.new value.size
end

#to_rubyObject



257
258
259
# File 'lib/amber/fukubukuro/ecma_core.rb', line 257

def to_ruby
  original.replace value.map { |item| item.is_a?(Container) ? item.to_ruby : item }
end