module Danger::Helpers::ArraySubclass

Attributes

__array__[RW]

Public Class Methods

new(array) click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 6
def initialize(array)
  @__array__ = array
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 34
def <=>(other)
  return unless other.kind_of?(self.class)

  __array__ <=> other.instance_variable_get(:@__array__)
end
kind_of?(compare_class) click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 10
def kind_of?(compare_class)
  return true if compare_class == self.class

  dummy.kind_of?(compare_class)
end
method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/danger/helpers/array_subclass.rb, line 16
def method_missing(name, *args, &block)
  super unless __array__.respond_to?(name)

  respond_to_method(name, *args, &block)
end
respond_to_missing?(name, include_all) click to toggle source
Calls superclass method
# File lib/danger/helpers/array_subclass.rb, line 22
def respond_to_missing?(name, include_all)
  __array__.respond_to?(name, include_all) || super
end
to_a() click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 26
def to_a
  __array__
end
to_ary() click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 30
def to_ary
  __array__
end

Private Instance Methods

dummy() click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 44
def dummy
  Class.new(Array).new
end
respond_to_method(name, *args, &block) click to toggle source
# File lib/danger/helpers/array_subclass.rb, line 48
def respond_to_method(name, *args, &block)
  result = __array__.send(name, *args, &block)
  return result unless result.kind_of?(Array)

  if name =~ /!/
    __array__ = result
    self
  else
    self.class.new(result)
  end
end