class NeoScout::ConstrainedSet

Public Class Methods

new(*args, &elem_test) click to toggle source
Calls superclass method
# File lib/neoscout/tools.rb, line 51
def initialize(*args, &elem_test)
  @elem_test = elem_test
  case
    when args.length == 0
      super
    when args.length == 1
      args = args[0]
      raise ArgumentError unless (args.all? &@elem_test)
      super args
    else
      raise ArgumentError
  end
end

Public Instance Methods

<<(elem) click to toggle source
Calls superclass method
# File lib/neoscout/tools.rb, line 69
def <<(elem)
  raise ArgumentError unless valid_elem?(elem)
  super elem
end
valid_elem?(elem) click to toggle source
# File lib/neoscout/tools.rb, line 65
def valid_elem?(elem)
  @elem_test.call(elem)
end