Sha256: 78ba004862e63c7623710dfaa8556aa61a7e57536258fe7a71ac915371df87d4

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 KB

Contents

require_relative 'padding'

module RubyvisCharts
  class AbstractChart
    module DefaultArguments
      WIDTH = 400
      HEIGHT = 225
      PADDING = Padding.new
    end

    attr_reader :values, :width, :height, :padding,
                :inner_box_width, :inner_box_height,
                :parent_layer

    def initialize(
      values:,
      width: DefaultArguments::WIDTH,
      height: DefaultArguments::HEIGHT,
      padding: DefaultArguments::PADDING
    )
      @values = values
      @width = width
      @height = height
      @padding = padding

      @inner_box_width = width - padding.left - padding.right
      @inner_box_height = height - padding.top - padding.bottom

      initialize_parent_layer!
    end

    def render
      @parent_layer.render
      @parent_layer.to_svg
    end

    private

    def initialize_parent_layer!
      @parent_layer = Rubyvis::Panel.new
        .width(inner_box_width)
        .height(inner_box_height)
        .top(padding.top)
        .right(padding.right)
        .left(padding.left)
        .bottom(padding.bottom)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rubyvis_charts-0.1.6 lib/rubyvis_charts/abstract_chart.rb
rubyvis_charts-0.1.5 lib/rubyvis_charts/abstract_chart.rb
rubyvis_charts-0.1.3 lib/rubyvis_charts/abstract_chart.rb