Sha256: e0b3b6691e8ba86e70623128365871849fe2dbefc9d3ac5caf080a401be618b2
Contents?: true
Size: 1.23 KB
Versions: 3
Compression:
Stored size: 1.23 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 def initialize(options) @output = output_file(options[:output]) @layout = options[:layout] @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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubrowser-2.6.0 | lib/rubrowser/renderer.rb |
rubrowser-2.5.0 | lib/rubrowser/renderer.rb |
rubrowser-2.4.0 | lib/rubrowser/renderer.rb |