Sha256: dec04892179affc98bb870195bf774e419d1288b36e39257bec0571cf4679a2d

Contents?: true

Size: 750 Bytes

Versions: 35

Compression:

Stored size: 750 Bytes

Contents

module Comparable
  ##
  # Returns <i>min</i> if <i>obj</i> <code><=></code> <i>min</i> is less
  # than zero, <i>max</i> if <i>obj</i> <code><=></code> <i>max</i> is
  # greater than zero and <i>obj</i> otherwise.
  #
  #     12.clamp(0, 100)         #=> 12
  #     523.clamp(0, 100)        #=> 100
  #     -3.123.clamp(0, 100)     #=> 0
  #
  #     'd'.clamp('a', 'f')      #=> 'd'
  #     'z'.clamp('a', 'f')      #=> 'f'
  #
  def clamp(min, max)
    if (min <=> max) > 0
      raise ArgumentError, "min argument must be smaller than max argument"
    end
    c = self <=> min
    if c == 0
      return self
    elsif c < 0
      return min
    end
    c = self <=> max
    if c > 0
      return max
    else
      return self
    end
  end
end

Version data entries

35 entries across 35 versions & 2 rubygems

Version Path
script_core-0.3.2 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.3.0 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.7 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.6 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.5 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.4 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.3 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.2 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.1 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.2.0 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.1.1 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.1.0 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.0.6 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
script_core-0.0.5 ext/enterprise_script_service/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
esruby-0.2.0 resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
esruby-0.1.5 resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
esruby-0.1.4 resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
esruby-0.1.3 resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
esruby-0.1.2 resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb
esruby-0.1.1 resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb