class SvgDrawer::Circle
Public Class Methods
new(center, radius, params = {})
click to toggle source
Calls superclass method
SvgDrawer::Base::new
# File lib/svg_drawer/circle.rb, line 14 def initialize(center, radius, params = {}) @center = center @radius = radius super(params) end
Public Instance Methods
height()
click to toggle source
# File lib/svg_drawer/circle.rb, line 26 def height param(:overflow) ? param(:height, calc_height) : [param(:height, 0), calc_height].max end
incomplete()
click to toggle source
# File lib/svg_drawer/circle.rb, line 32 def incomplete false end
max_x()
click to toggle source
# File lib/svg_drawer/circle.rb, line 40 def max_x @max_x ||= @center.first + @radius end
max_y()
click to toggle source
# File lib/svg_drawer/circle.rb, line 48 def max_y @max_y ||= @center.last + @radius end
min_x()
click to toggle source
# File lib/svg_drawer/circle.rb, line 36 def min_x @min_x ||= @center.first - @radius end
min_y()
click to toggle source
# File lib/svg_drawer/circle.rb, line 44 def min_y @min_y ||= @center.last - @radius end
width()
click to toggle source
# File lib/svg_drawer/circle.rb, line 20 def width param(:overflow) ? param(:width, calc_width) : [param(:width, 0), calc_width].max end
Private Instance Methods
_draw(parent)
click to toggle source
# File lib/svg_drawer/circle.rb, line 54 def _draw(parent) size = param(:scale_size) ? param(:size) : param(:size) / scale style = {} # need symbol keys due to a bug in Rasem::SVGTag#write_styles style[:fill] = param(:fill) style[:stroke] = param(:stroke) style[:'stroke-width'] = size Utils::RasemWrapper.group(parent, class: 'circle') do |circle_group| poly = circle_group.circle(@center.first, @center.last, @radius, style: style.dup) poly.translate(translate_x, translate_y).scale(scale, scale) end end
calc_height()
click to toggle source
# File lib/svg_drawer/circle.rb, line 73 def calc_height calc_height_unscaled * scale end
calc_height_unscaled()
click to toggle source
# File lib/svg_drawer/circle.rb, line 81 def calc_height_unscaled max_y - min_y end
calc_width()
click to toggle source
# File lib/svg_drawer/circle.rb, line 69 def calc_width calc_width_unscaled * scale end
calc_width_unscaled()
click to toggle source
# File lib/svg_drawer/circle.rb, line 77 def calc_width_unscaled max_x - min_x end
height_unscaled()
click to toggle source
# File lib/svg_drawer/circle.rb, line 91 def height_unscaled param(:overflow) ? param(:height, calc_height_unscaled) : [param(:height, 0), calc_height_unscaled].max end
scale()
click to toggle source
# File lib/svg_drawer/circle.rb, line 97 def scale [scale_x, scale_y].min * param(:scale) end
scale_x()
click to toggle source
# File lib/svg_drawer/circle.rb, line 101 def scale_x return 1 unless param(:width) && (param(:expand) || param(:shrink)) scale = param(:width).to_d / calc_width_unscaled return 1 if (scale > 1 && !param(:expand)) || (scale < 1 && !param(:shrink)) scale end
scale_y()
click to toggle source
# File lib/svg_drawer/circle.rb, line 108 def scale_y return 1 unless param(:height) && (param(:expand) || param(:shrink)) scale = param(:height).to_d / calc_height_unscaled return 1 if (scale > 1 && !param(:expand)) || (scale < 1 && !param(:shrink)) scale end
translate_x()
click to toggle source
# File lib/svg_drawer/circle.rb, line 115 def translate_x width_diff = (width - calc_width) case param(:x_reposition) when 'left' then -min_x * scale when 'center' then -min_x * scale + width_diff / 2 when 'right' then -min_x * scale + width_diff when 'none' then 0 else raise "Bad x_reposition: #{param(:x_reposition)}. Valid are: [left, right, center, none]" end end
translate_y()
click to toggle source
# File lib/svg_drawer/circle.rb, line 127 def translate_y height_diff = height - calc_height case param(:y_reposition) when 'top' then -min_y * scale when 'middle' then -min_y * scale + height_diff / 2 when 'bottom' then -min_y * scale + height_diff when 'none' then 0 else raise "Bad y_reposition: #{param(:y_reposition)}. Valid are: [top, bottom, middle, none]" end end
width_unscaled()
click to toggle source
# File lib/svg_drawer/circle.rb, line 85 def width_unscaled param(:overflow) ? param(:width, calc_width_unscaled) : [param(:width, 0), calc_width_unscaled].max end