class Sqreen::Util::CappedArray

Attributes

depth_cap[R]
size_cap[R]

Public Class Methods

new(*args, &block) click to toggle source
Calls superclass method
# File lib/sqreen/util/capped_array.rb, line 11
def initialize(*args, &block)
  opts = args.last.is_a?(Hash) ? args.pop : {}
  size_cap = opts[:size_cap] || 150
  depth_cap = opts[:depth_cap] || 10
  @size_cap = size_cap
  @depth_cap = depth_cap

  super(*args, &block)
end

Public Instance Methods

<<(value) click to toggle source
Calls superclass method
# File lib/sqreen/util/capped_array.rb, line 21
def <<(value)
  keep?(size, value) ? super : self
end
Also aliased as: append
[]=(index, value) click to toggle source
Calls superclass method
# File lib/sqreen/util/capped_array.rb, line 26
def []=(index, value)
  super if keep?(index, value)
end
append(value)
Alias for: <<

Private Instance Methods

keep?(index, value) click to toggle source
# File lib/sqreen/util/capped_array.rb, line 32
def keep?(index, value)
  index < size_cap && (depth_cap > 0 || !value.is_a?(Hash) && !value.is_a?(Array))
end