class SimpleJson::SimpleJsonTemplate

Public Class Methods

new(path) click to toggle source
# File lib/simple_json/simple_json_template.rb, line 5
def initialize(path)
  @path = path
  @source = File.read(path)
end

Public Instance Methods

code() click to toggle source
# File lib/simple_json/simple_json_template.rb, line 14
def code
  @code ||= lambda_stringify(@source)
end
renderer() click to toggle source
# File lib/simple_json/simple_json_template.rb, line 10
def renderer
  @renderer ||= eval(code, TOPLEVEL_BINDING, @path) # rubocop:disable Security/Eval
end

Private Instance Methods

lambda_stringify(source) click to toggle source
# File lib/simple_json/simple_json_template.rb, line 20
def lambda_stringify(source)
  return source if source.match?(/^(?:\s*(?:#.*?)?\n)*\s*->/)

  "-> { #{source} }"
end