class SPCore::Limiters

Provides methods to make limiting Proc objects, bound to the given limits.

Public Class Methods

make_enum_limiter(good_values) click to toggle source

make a limiter that limits values to a set of good values. Given also the current value, it either returns the input value if it's included in the set of good values, or it returns the current value.

# File lib/spcore/util/limiters.rb, line 50
def self.make_enum_limiter good_values
  return lambda do |input, current|
    if good_values.include?(input)
      return input
    else
      return current
    end
  end
end
make_lower_limiter(limit) click to toggle source

make a limiter that keeps values at or above the given lower limit.

# File lib/spcore/util/limiters.rb, line 37
def self.make_lower_limiter limit
  return lambda do |input|
    if input < limit
      return limit
    else
      return input
    end
  end
end
make_no_limiter() click to toggle source

make a limiter that actually doesn't limit at all.

# File lib/spcore/util/limiters.rb, line 6
def self.make_no_limiter
  return lambda do |input|
    return input
  end
end
make_range_limiter(range) click to toggle source

make a limiter that keeps values within the given range.

# File lib/spcore/util/limiters.rb, line 13
def self.make_range_limiter range
  return lambda do |input|
    if input < range.first
      return range.first
    elsif input > range.last
      return range.last
    else
      return input
    end
  end
end
make_upper_limiter(limit) click to toggle source

make a limiter that keeps values at or below the given upper limit.

# File lib/spcore/util/limiters.rb, line 26
def self.make_upper_limiter limit
  return lambda do |input|
    if input > limit
      return limit
    else
      return input
    end
  end
end