Class: RubyEventStore::Browser::Renderer::Context

Inherits:
Object
  • Object
show all
Includes:
ERB::Util
Defined in:
lib/ruby_event_store/browser/renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(renderer, locals) ⇒ Context

Returns a new instance of Context.



15
16
17
18
# File 'lib/ruby_event_store/browser/renderer.rb', line 15

def initialize(renderer, locals)
  @_renderer = renderer
  locals.each { |k, v| define_singleton_method(k) { v } }
end

Instance Method Details

#get_bindingObject



42
43
44
# File 'lib/ruby_event_store/browser/renderer.rb', line 42

def get_binding
  binding
end

#render(template, **locals) ⇒ Object



20
21
22
# File 'lib/ruby_event_store/browser/renderer.rb', line 20

def render(template, **locals)
  @_renderer.render(template, **locals)
end

#safe_json(value) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/ruby_event_store/browser/renderer.rb', line 24

def safe_json(value)
  if value.is_a?(Float) && value.infinite? && value.positive?
    '"Infinity"'
  elsif value.is_a?(Float) && value.infinite?
    '"-Infinity"'
  elsif value.is_a?(Float) && value.nan?
    '"NaN"'
  elsif value.is_a?(Float) && value == value.to_i
    value.to_i.to_s
  elsif value.is_a?(Hash)
    "{#{value.map { |k, v| "#{k.to_json}:#{safe_json(v)}" }.join(",")}}"
  elsif value.is_a?(Array)
    "[#{value.map { |v| safe_json(v) }.join(",")}]"
  else
    value.to_json
  end
end