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