class Pieces::Server
Attributes
config[R]
Public Class Methods
new(config)
click to toggle source
Calls superclass method
# File lib/pieces/server.rb, line 12 def initialize(config) @config = config super({}) end
start(config = {})
click to toggle source
# File lib/pieces/server.rb, line 6 def self.start(config = {}) new(Config.new(config)).start end
Public Instance Methods
app()
click to toggle source
# File lib/pieces/server.rb, line 38 def app urls = files_to_serve(config.path) build_path = "#{config.path}/build" assets_app = sprockets_env config.env = sprockets_env app = App.new(config) Rack::Builder.app do use Rack::Reloader map('/assets') { run assets_app } run app end end
sprockets_env()
click to toggle source
# File lib/pieces/server.rb, line 17 def sprockets_env Sprockets::Environment.new(config.path).tap do |env| env.append_path 'app/assets/javascripts' env.append_path 'app/assets/stylesheets' env.append_path 'vendor/assets/stylesheets' env.append_path 'vendor/assets/javascripts' env.append_path 'app/assets' env.append_path 'app/views' env.append_path 'app/views' if defined? ::Sass ::Sass.load_paths.each { |path| env.append_path(path) } env.css_compressor = :scss end if defined? ::Uglifier env.js_compressor = :uglify end end end
Private Instance Methods
files_to_serve(path)
click to toggle source
# File lib/pieces/server.rb, line 54 def files_to_serve(path) Dir["#{config.path}/build/**/*"].map { |file| file.sub("#{config.path}/build", '') } end