Module: Charty::Backends

Defined in:
lib/charty/backends.rb,
lib/charty/backends/bokeh.rb,
lib/charty/backends/gruff.rb,
lib/charty/backends/plotly.rb,
lib/charty/backends/pyplot.rb,
lib/charty/backends/rubyplot.rb,
lib/charty/backends/google_chart.rb

Defined Under Namespace

Classes: Bokeh, GoogleChart, Gruff, Plotly, Pyplot, Rubyplot

Class Method Summary collapse

Class Method Details

.find_backend_class(name) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/charty/backends.rb', line 20

def self.find_backend_class(name)
  backend = @backends[normalize_name(name)]
  unless backend
    raise BackendNotFoundError, "Backend is not found: #{name.inspect}"
  end
  backend_class = backend[:class]
  unless backend[:prepared]
    if backend_class.respond_to?(:prepare)
      begin
        backend_class.prepare
      rescue LoadError
        raise BackendLoadError, "Backend load error: #{name.inspect}"
      end
    end
    backend[:prepared] = true
  end
  backend_class
end

.namesObject



9
10
11
# File 'lib/charty/backends.rb', line 9

def self.names
  @backends.keys
end

.register(name, backend_class) ⇒ Object



13
14
15
16
17
18
# File 'lib/charty/backends.rb', line 13

def self.register(name, backend_class)
  @backends[normalize_name(name)] = {
    class: backend_class,
    prepared: false,
  }
end