class RubyvisCharts::DonutChart

Attributes

cones_colors[R]
inner_radius[R]
outer_radius[R]
percentage_key[R]

Public Class Methods

new( cones_colors: DefaultArguments::CONES_COLORS, outer_radius: DefaultArguments::OUTER_RADIUS, inner_radius: DefaultArguments::OUTER_RADIUS * 0.7, percentage_key: :percentage, **other ) click to toggle source
Calls superclass method RubyvisCharts::AbstractChart::new
# File lib/rubyvis_charts/donut_chart.rb, line 11
def initialize(
  cones_colors: DefaultArguments::CONES_COLORS,
  outer_radius: DefaultArguments::OUTER_RADIUS,
  inner_radius: DefaultArguments::OUTER_RADIUS * 0.7,
  percentage_key: :percentage,
  **other
)
  super(other)
  @outer_radius = outer_radius
  @inner_radius = inner_radius
  @cones_colors = cones_colors
  @percentage_key = percentage_key

  initialize_cones!
end

Private Instance Methods

initialize_cones!() click to toggle source
# File lib/rubyvis_charts/donut_chart.rb, line 29
def initialize_cones!
  chart = self
  angle = ->(segment_hash) { segment_hash[chart.percentage_key].to_f * 2 * Math::PI }
  fill_style = -> { chart.cones_colors[self.index] || "##{SecureRandom.hex(3)}"}

  parent_layer.add(Rubyvis::Wedge)
    .data(values)
    .left(width / 2)
    .top(height / 2)
    .innerRadius(inner_radius)
    .outerRadius(outer_radius)
    .angle(angle)
    .fillStyle(fill_style)
end