Module: ChartJS

Defined in:
lib/chart_js.rb,
lib/chart_js/version.rb,
lib/chart_js/chart/data.rb,
lib/chart_js/chart/file.rb,
lib/chart_js/chart/opts.rb,
lib/chart_js/chart/chart.rb,
lib/chart_js/chart/dataset.rb,
lib/chart_js/chart/dataset/line.rb,
lib/chart_js/chart/event_stream.rb,
lib/chart_js/chart/dataset/point.rb,
lib/chart_js/chart/helpers/dates.rb,
lib/chart_js/chart/bar_chart/data.rb,
lib/chart_js/chart/bar_chart/file.rb,
lib/chart_js/chart/bar_chart/line.rb,
lib/chart_js/chart/bar_chart/opts.rb,
lib/chart_js/chart/dataset/border.rb,
lib/chart_js/chart/bar_chart/point.rb,
lib/chart_js/chart/line_chart/data.rb,
lib/chart_js/chart/line_chart/file.rb,
lib/chart_js/chart/line_chart/line.rb,
lib/chart_js/chart/line_chart/opts.rb,
lib/chart_js/chart/bar_chart/border.rb,
lib/chart_js/chart/line_chart/point.rb,
lib/chart_js/chart/radar_chart/data.rb,
lib/chart_js/chart/radar_chart/file.rb,
lib/chart_js/chart/radar_chart/line.rb,
lib/chart_js/chart/radar_chart/opts.rb,
lib/chart_js/chart/bar_chart/dataset.rb,
lib/chart_js/chart/line_chart/border.rb,
lib/chart_js/chart/radar_chart/point.rb,
lib/chart_js/chart/dataset/background.rb,
lib/chart_js/chart/event_streams/push.rb,
lib/chart_js/chart/line_chart/dataset.rb,
lib/chart_js/chart/radar_chart/border.rb,
lib/chart_js/chart/bar_chart/bar_chart.rb,
lib/chart_js/chart/dataset/point_hover.rb,
lib/chart_js/chart/radar_chart/dataset.rb,
lib/chart_js/chart/bar_chart/background.rb,
lib/chart_js/chart/dataset/point_border.rb,
lib/chart_js/chart/bar_chart/point_hover.rb,
lib/chart_js/chart/line_chart/background.rb,
lib/chart_js/chart/line_chart/line_chart.rb,
lib/chart_js/chart/bar_chart/dataset/line.rb,
lib/chart_js/chart/bar_chart/point_border.rb,
lib/chart_js/chart/line_chart/point_hover.rb,
lib/chart_js/chart/radar_chart/background.rb,
lib/chart_js/chart/bar_chart/dataset/point.rb,
lib/chart_js/chart/line_chart/dataset/line.rb,
lib/chart_js/chart/line_chart/point_border.rb,
lib/chart_js/chart/radar_chart/point_hover.rb,
lib/chart_js/chart/radar_chart/radar_chart.rb,
lib/chart_js/chart/bar_chart/dataset/border.rb,
lib/chart_js/chart/line_chart/dataset/point.rb,
lib/chart_js/chart/radar_chart/dataset/line.rb,
lib/chart_js/chart/radar_chart/point_border.rb,
lib/chart_js/chart/line_chart/dataset/border.rb,
lib/chart_js/chart/radar_chart/dataset/point.rb,
lib/chart_js/chart/radar_chart/dataset/border.rb,
lib/chart_js/chart/event_streams/event_streams.rb,
lib/chart_js/chart/bar_chart/dataset/background.rb,
lib/chart_js/chart/bar_chart/dataset/point_hover.rb,
lib/chart_js/chart/line_chart/dataset/background.rb,
lib/chart_js/chart/bar_chart/dataset/point_border.rb,
lib/chart_js/chart/line_chart/dataset/point_hover.rb,
lib/chart_js/chart/radar_chart/dataset/background.rb,
lib/chart_js/chart/line_chart/dataset/point_border.rb,
lib/chart_js/chart/radar_chart/dataset/point_hover.rb,
lib/chart_js/chart/radar_chart/dataset/point_border.rb

Overview

Chart JS is a simple yet flexible JavaScript charting library. This gem is a Ruby Domain Specific Language which allows you to easily build charts without touching a single line of JavaScript or HTML.

Author:

  • Kent ‘picat’ Gruber

Defined Under Namespace

Modules: EventStreams, Helpers Classes: Background, BarChart, Border, Chart, Data, Dataset, EventStream, Line, LineChart, Options, Opts, Point, PointBorder, PointHover, RadarChart, SaveFile

Constant Summary collapse

VERSION =
"1.1.1"

Class Method Summary collapse

Class Method Details

.bar(type = :vertical, &block) ⇒ Object

A bar chart provides a way of showing data values represented as vertical bars. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.



64
65
66
67
68
69
70
71
72
73
# File 'lib/chart_js.rb', line 64

def self.bar(type = :vertical, &block)
  chart = Chart.new
  case type
  when :vertical
    chart.type('bar')
  when :horizontal
    chart.type('horizontalBar')
  end
  chart.build(&block)
end

.build(&block) ⇒ Object

Build a chart, do some stuff!



19
20
21
# File 'lib/chart_js.rb', line 19

def self.build(&block)
  Chart.new(&block)
end

.data(json: false, &block) ⇒ Object

Need to send some server-side event data? You found your method. Optionally, it’ll even call the “to_json” on the object your sending ( if it accepts that method call ); otherwise you should really only send JSON that is already formatted. Otherwise it’ll just send the plaintext.

Live life the way you want to.



81
82
83
84
85
86
87
# File 'lib/chart_js.rb', line 81

def self.data(json: false, &block)
  if json
    "data: #{block.call} \r\n\n"
  else
    "data: #{block.call.to_json} \r\n\n"
  end
end

.doughnut(&block) ⇒ Object

Doughnut charts are probably one of the most commonly used charts. They are divided into segments, the arc of each segment shows the proportional value of each piece of data. They are excellent at showing the relational proportions between data but with a big’O hole in the middle.



55
56
57
58
59
# File 'lib/chart_js.rb', line 55

def self.doughnut(&block)
  chart = Chart.new
  chart.type('doughnut')
  chart.build(&block)
end

.line(&block) ⇒ Object

A line chart is a way of plotting data points on a line. Often, it is used to show trend data, or the comparison of two data sets.



25
26
27
28
29
# File 'lib/chart_js.rb', line 25

def self.line(&block)
  chart = Chart.new
  chart.type('line')
  chart.build(&block)
end

.pie(&block) ⇒ Object

Pie charts are probably one of the most commonly used charts. They are divided into segments, the arc of each segment shows the proportional value of each piece of data. They are excellent at showing the relational proportions between data.



44
45
46
47
48
# File 'lib/chart_js.rb', line 44

def self.pie(&block)
  chart = Chart.new
  chart.type('pie')
  chart.build(&block)
end

.radar(&block) ⇒ Object

A radar chart is a way of showing multiple data points and the variation between them. They are often useful for comparing the points of two or more different data sets.



34
35
36
37
38
# File 'lib/chart_js.rb', line 34

def self.radar(&block)
  chart = Chart.new
  chart.type('radar')
  chart.build(&block)
end