Sha256: b9fc0664a89c2b026022614fe1cf0287c916951f1f5b5106901742efe08d2832

Contents?: true

Size: 543 Bytes

Versions: 6

Compression:

Stored size: 543 Bytes

Contents

# helpers: breaker

class Enumerator
  class Yielder
    def initialize(&block)
      @block = block
      # rubocop:disable Lint/Void
      self
      # rubocop:enable Lint/Void
    end

    def yield(*values)
      %x{
        var value = Opal.yieldX(#{@block}, values);

        if (value === $breaker) {
          throw $breaker;
        }

        return value;
      }
    end

    def <<(value)
      self.yield(value)

      self
    end

    def to_proc
      proc do |*values|
        self.yield(*values)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
opal-1.5.1 opal/corelib/enumerator/yielder.rb
opal-1.5.0 opal/corelib/enumerator/yielder.rb
opal-1.5.0.rc1 opal/corelib/enumerator/yielder.rb
opal-1.4.1 opal/corelib/enumerator/yielder.rb
opal-1.4.0 opal/corelib/enumerator/yielder.rb
opal-1.4.0.alpha1 opal/corelib/enumerator/yielder.rb