module Rabbit::Parser::Ext::Charty
Public Instance Methods
make_image(path, prop, logger)
click to toggle source
# File lib/rabbit/parser/ext/charty.rb, line 26 def make_image(path, prop, logger) require "charty" backend = prop["backend"] ::Charty::Backends.use(backend) if backend data = CSV.read(path, headers: true, converters: :all) type = prop["type"] case type when "bar" plotter = ::Charty.bar_plot(data: data, x: prop["x"], y: prop["y"], color: prop["color"]) when "line" plotter = ::Charty.line_plot(data: data, x: prop["x"], y: prop["y"], color: prop["color"]) when "scatter" plotter = ::Charty.scatter_plot(data: data, x: prop["x"], y: prop["y"], color: prop["color"]) else raise ArgumentError, "charty: unsupported type: #{type.inspect}" end image_file = Tempfile.new(["rabbit-image-charty", ".svg"]) plotter.save(image_file.path) image_file end