class SvgDataPlotterGem::Gauge

Attributes

score[R]
size[R]
total[R]

Public Class Methods

new(options) click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 5
def initialize(options)
  validation options, [:score, :total, :size]

  @score = options[:score]
  @total = options[:total]
  @size  = options[:size]
end

Public Instance Methods

arc_end() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 61
def arc_end
  "#{x_co_ord(180)} #{y_co_ord(180)}"
end
arc_start() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 57
def arc_start
  "#{x_co_ord(0)} #{y_co_ord(0)}"
end
center() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 21
def center
  size / 2.0
end
height() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 13
def height
  (size / 2.0) + 15.0
end
offset() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 37
def offset
  percentage_adj - semi_circle
end
percentage() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 17
def percentage
  (score / total.to_f) * 100
end
percentage_adj() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 33
def percentage_adj
  (score / total.to_f) * semi_circle
end
radians(degrees) click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 41
def radians(degrees)
  degrees * Math::PI / 180
end
radius() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 25
def radius
  center - 10.0
end
semi_circle() click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 29
def semi_circle
  radius * Math::PI
end
validation(options, params) click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 65
def validation(options, params)
  raise ArgumentError if options.empty?

  params.each do |key|
    raise ArgumentError unless options.has_key?(key)
  end
end
x_co_ord(angle) click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 45
def x_co_ord(angle)
  rad = radians(angle)
  x   = radius * Math.cos(rad)
  center + x
end
y_co_ord(angle) click to toggle source
# File lib/svg_data_plotter/gauge.rb, line 51
def y_co_ord(angle)
  rad = radians(angle)
  y   = radius * Math.sin(rad)
  center - y
end