Class: Trevl::Notebook

Inherits:
Object
  • Object
show all
Defined in:
lib/trevl/notebook.rb,
lib/trevl/notebook/display.rb

Defined Under Namespace

Classes: Display

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeNotebook

Returns a new instance of Notebook.



9
10
11
# File 'lib/trevl/notebook.rb', line 9

def initialize
  @display = Display.new
end

Instance Attribute Details

#displayObject (readonly)

Returns the value of attribute display.



7
8
9
# File 'lib/trevl/notebook.rb', line 7

def display
  @display
end

Instance Method Details

#chart(yaml_string, params: {}, data: nil, height: 400) ⇒ Object

Render a TREVL YAML string as an interactive Highcharts chart in iRuby. Optionally pass static data to avoid API calls — inline data answers any api name and components without one (Trevl.render data: semantics).



16
17
18
19
20
21
22
23
# File 'lib/trevl/notebook.rb', line 16

def chart(yaml_string, params: {}, data: nil, height: 400)
  results = Trevl.render(yaml_string, params: params, data: data)
  results.each do |result|
    next unless result["type"] == "chart" && result["highchartsData"]
    @display.render_chart(result["highchartsData"], height: height)
  end
  nil
end

#fetch(source_name, endpoint, params = {}, resource: nil) ⇒ Object

Fetch raw data from a registered data source



36
37
38
39
# File 'lib/trevl/notebook.rb', line 36

def fetch(source_name, endpoint, params = {}, resource: nil)
  source = DataSource.for(source_name)
  source.fetch(endpoint, params, resource: resource)
end

#score(yaml_string, params: {}, data: nil) ⇒ Object

Render a score component inline



26
27
28
29
30
31
32
33
# File 'lib/trevl/notebook.rb', line 26

def score(yaml_string, params: {}, data: nil)
  results = Trevl.render(yaml_string, params: params, data: data)
  results.each do |result|
    next unless result["type"] == "score"
    @display.render_score(result["display"] || result)
  end
  nil
end