Darksecond/chartism

View on GitHub
lib/chartism/line.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'docile'

module Chartism
  class Line
    def initialize
      @series = []
    end

    def options &block
      @options = Docile.dsl_eval(Line::Options.new, &block).options if block
      @options
    end

    def labels value=nil, &block
      @labels = ->{value} unless value.nil?
      @labels = block if block
      @labels
    end

    def series value=nil, &block
      @series << ->{value} unless value.nil?
      @series << block if block
      @series
    end

    def data
      {
        labels: labels.call,
        series: series.map(&:call)
      }
    end
  end
end