Class: Native::Array
- Includes:
- Enumerable , Native
- Defined in:
- opal/stdlib/native.rb
Instance Method Summary collapse
- #[](index) ⇒ Object
- #[]=(index, value) ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(native, options = {}, &block) ⇒ Array
constructor
A new instance of Array.
- #inspect ⇒ Object
- #last(count = nil) ⇒ Object
- #length ⇒ Object
Methods included from Enumerable
Methods included from Native
call , convert , included , is_a? , proc , #to_n , try_convert
Constructor Details
#initialize(native, options = {}, &block) ⇒ Array
Returns a new instance of Array
361 362 363 364 365 366 367 368 369 370 371 372 373
# File 'opal/stdlib/native.rb', line 361 def initialize(native, options = {}, &block) super(native) @get = options[:get] || options[:access] @named = options[:named] @set = options[:set] || options[:access] @length = options[:length] || :length @block = block if `#{length} == null` raise ArgumentError, "no length found on the array-like object" end end
Instance Method Details
#[](index) ⇒ Object
387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403
# File 'opal/stdlib/native.rb', line 387 def [](index) result = case index when String , Symbol @named ? `#@native[#@named](#{index})` : `#@native[#{index}]` when Integer @get ? `#@native[#@get](#{index})` : `#@native[#{index}]` end if result if @block @block.call(result) else Native (result) end end end
#[]=(index, value) ⇒ Object
#each(&block) ⇒ Object
375 376 377 378 379 380 381 382 383 384 385
# File 'opal/stdlib/native.rb', line 375 def each(&block) return enum_for :each unless block %x{ for (var i = 0, length = #{length}; i < length; i++) { Opal.yield1(block, #{self[`i`]}); } } self end
#inspect ⇒ Object
435 436 437
# File 'opal/stdlib/native.rb', line 435 def inspect to_a.inspect end
#last(count = nil) ⇒ Object
413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
# File 'opal/stdlib/native.rb', line 413 def last(count = nil) if count index = length - 1 result = [] while index >= 0 result << self[index] index -= 1 end result else self[length - 1] end end
#length ⇒ Object
429 430 431
# File 'opal/stdlib/native.rb', line 429 def length `#@native[#@length]` end