Sha256: ae51f40b8e6485d695eb34aba9208b82df0fde4b9536becc619481f626ccf140
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
require 'erb' require 'rubrowser/data' require 'rubrowser/formatter/json' module Rubrowser class Renderer # Accepted options are: # files: list of file paths to parse # toolbox: bool, show/hide toolbox def self.call(options = {}) new(options).call end def call output.write(erb(:index)) end private include ERB::Util attr_reader :files, :output, :server def initialize(options) @output = output_file(options[:output]) @layout = options[:layout] @server = options[:server] @files = options[:files] @toolbox = options[:toolbox] end def output_file(path) path.is_a?(String) ? File.open(path, 'w') : path end def layout return 'null' unless @layout File.read(@layout) end def toolbox? @toolbox end def data data = Data.new(files) formatter = Formatter::JSON.new(data) formatter.call end def file(path) File.read(resolve_file_path("/public/#{path}")) end def erb(template) path = resolve_file_path("/views/#{template}.erb") file = File.open(path).read ERB.new(file).result binding end def resolve_file_path(path) File.expand_path("../../..#{path}", __FILE__) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubrowser-2.7.1 | lib/rubrowser/renderer.rb |
rubrowser-2.7.0 | lib/rubrowser/renderer.rb |