henry_flower: A melancholy wolf (Default)
henry_flower ([personal profile] henry_flower) wrote2014-09-07 03:38 pm
Entry tags:

Из mruby'ивского mrbgems/mruby-array-ext/mrblib/array.rb: def |(elem) raise TypeError, "ca

Из mruby'ивского mrbgems/mruby-array-ext/mrblib/array.rb:

  def |(elem)
    raise TypeError, "can't convert #{elem.class} into Array" unless elem.class == Array

    ary = self + elem
    ary.uniq! or ary
  end

Мне нравится вот это "elem.class == Array". Т.е. если я override is_a? чтобы притворится Array, то

a = Foo.new # якобы Array
a << 1

и

  [1] + [2] | a

фиг вам.

Как же duck typing?

В cruby все работает, а тут остается только делать monkey patch для __ary_eq.

:(

Permalink: https://plus.google.com/115290581164606462017/posts/jJax2tBGB5b