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? , #to_n , try_convert
Constructor Details
#initialize(native, options = {}, &block) ⇒ Array
Returns a new instance of Array
268 269 270 271 272 273 274 275 276 277 278 279 280
# File 'opal/stdlib/native.rb', line 268 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
298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314
# File 'opal/stdlib/native.rb', line 298 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
282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
# File 'opal/stdlib/native.rb', line 282 def each(&block) return enum_for :each unless block %x{ for (var i = 0, length = #{length}; i < length; i++) { var value = Opal.yield1(block, #{self[`i`]}); if (value === $breaker) { return $breaker.$v; } } } self end
#inspect ⇒ Object
346 347 348
# File 'opal/stdlib/native.rb', line 346 def inspect to_a.inspect end
#last(count = nil) ⇒ Object
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
# File 'opal/stdlib/native.rb', line 324 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
340 341 342
# File 'opal/stdlib/native.rb', line 340 def length `#@native[#@length]` end