Sha256: 3cbd47b44776ce0de60b0899cae36d32811fb1e0a9ee3615a0cd24be7a16d5c6
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
require 'ostruct' require 'yaml' require 'sprockets' require 'pieces/route_compiler' require 'pieces/config' require 'pieces/server' require 'pieces/tilt_extension' module Pieces class Builder def self.build(config = {}) new(Config.new(config)).build end include Configurable def initialize(config) super config.env = env end def build save_files(build_routes(build_assets)) end private def env @env ||= Server.new(config).sprockets_env end def build_assets(files = {}) files.merge('assets/pieces.css' => { type: 'css', contents: env['pieces.css'] }, 'assets/pieces.js' => { type: 'js', contents: env['pieces.js'] }) end def build_routes(files = {}) route_compiler = RouteCompiler.new(config) config.routes.reduce(files) do |files, (name, route)| route_compiler.compile(files, name, route) end end def save_files(files) Dir.chdir(config.path) do files.each do |name, file| save_file(name, file) end end end def save_file(name, file) FileUtils.mkdir_p(File.dirname("build/#{name}")) File.open("build/#{name}", 'w') { |f| f.write(file[:contents]) } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pieces-0.5.1 | lib/pieces/builder.rb |
pieces-0.5.0 | lib/pieces/builder.rb |