Class: SPCore::Limiters

Inherits:
Object
  • Object
show all
Defined in:
lib/spcore/util/limiters.rb

Overview

the given limits.

Class Method Summary collapse

Class Method Details

.make_enum_limiter(good_values) ⇒ Object

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.



50
51
52
53
54
55
56
57
58
# 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) ⇒ Object

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



37
38
39
40
41
42
43
44
45
# 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_limiterObject

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



6
7
8
9
10
# 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) ⇒ Object

make a limiter that keeps values within the given range.



13
14
15
16
17
18
19
20
21
22
23
# 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) ⇒ Object

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



26
27
28
29
30
31
32
33
34
# 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