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