Class: RubyEventStore::Browser::Renderer::Context
- Inherits:
-
Object
- Object
- RubyEventStore::Browser::Renderer::Context
- Includes:
- ERB::Util
- Defined in:
- lib/ruby_event_store/browser/renderer.rb
Instance Method Summary collapse
- #get_binding ⇒ Object
-
#initialize(renderer, locals) ⇒ Context
constructor
A new instance of Context.
- #render(template, **locals) ⇒ Object
- #safe_json(value) ⇒ Object
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_binding ⇒ Object
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 |