class GerbilCharts::Models::RawRange

RawRange

Maintains a range when values are added to a model
This tracks the raw min/max values

Attributes

rmax[R]
rmin[R]

Public Class Methods

new() click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 10
def  initialize
  @rmax,@rmin=nil,nil
end

Public Instance Methods

delta() click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 52
def delta
  return @rmax-@rmin
end
each_label(ticks=4) { |v, format_suffix(v)| ... } click to toggle source

provide labels for raw range

assumes ticks = 5
yields two items (value,string label)

Usage example:
r.each_label do |v,s|
  p "Value = #{v} Label String = #{s}"
end
# File lib/gerbilcharts/models/raw_range.rb, line 84
def each_label(ticks=4)
  
 raise "No data points in model" if @rmax == -1  
 
     label_interval = (@rmax-@rmin)/ticks
 v = @rmin
 while (v<=@rmax) do
   yield v, format_suffix(v)    
   v = v+label_interval
 end
end
each_tick(ticks=4) { |v| ... } click to toggle source

provide ticks (per label interval) for raw range simply divide the max and min into ticks

# File lib/gerbilcharts/models/raw_range.rb, line 98
def each_tick(ticks=4)
  
        label_interval = (@rmax-@rmin)/ticks
    v = @rmin
    while (v<@rmax) do
      yield v
      v = v+label_interval
    end
end
format_value(val) click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 71
def format_value(val)
  return format_suffix(val)
end
invalid?() click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 14
def invalid?
      @rmin.nil? || @rmax.nil?
end
min_max() { |rmin,rmax| ... } click to toggle source

returns the min/max

# File lib/gerbilcharts/models/raw_range.rb, line 39
def min_max
  yield @rmin,@rmax if block_given?
  return @rmin,@rmax
end
reset() click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 44
def reset
  @rmin,@rmax=nil,nil
end
scale_factor(val) click to toggle source

scales a value with respect to the range

val = scale this value
# File lib/gerbilcharts/models/raw_range.rb, line 58
def scale_factor(val)
      if @rmin==@rmax
              return 0.1
      else
              return  (val-@rmin).to_f/(@rmax-@rmin).to_f
      end 
end
to_s() click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 48
def to_s
  "Min = #{@rmin} Max=#{@rmax}"
end
update(newval) click to toggle source

update - updates the range

newval - new incoming value
# File lib/gerbilcharts/models/raw_range.rb, line 21
def update(newval)
      if not newval.nil?
          @rmax=newval if @rmax.nil? or newval > @rmax 
          @rmin=newval if @rmin.nil? or newval < @rmin 
      end 
end
update_r(range) click to toggle source

update - updates the range (using another range)

newval - new range
# File lib/gerbilcharts/models/raw_range.rb, line 31
def update_r(range)
  update(range.rmax)
  update(range.rmin)
end
zeromin() click to toggle source
# File lib/gerbilcharts/models/raw_range.rb, line 66
def zeromin
  @rmin=0
      @rmax=0
end