lib/plezi/router/assets.rb in plezi-0.14.4 vs lib/plezi/router/assets.rb in plezi-0.14.5

- old
+ new

@@ -1,67 +1,65 @@ -require 'fileutils' -require 'set' module Plezi - module Base - class Assets - if ENV['RACK_ENV'.freeze] == 'production'.freeze - def index - name = File.join(Plezi.assets, *params['*'.freeze]).freeze - data = ::Plezi::AssetBaker.bake(name) - return false unless data - name = File.join(Iodine::Rack.public, request.path_info[1..-1]).freeze if Iodine::Rack.public - if data.is_a?(String) - FileUtils.mkpath File.dirname(name) - IO.binwrite(name, data) - end - response['X-Sendfile'.freeze] = name - response.body = File.open(name) - true - end - else - def index - name = File.join(Plezi.assets, *params['*'.freeze]).freeze - data = ::Plezi::AssetBaker.bake(name) - IO.binwrite(name, data) if data.is_a?(String) - if File.exist? name - response['X-Sendfile'.freeze] = name - response.body = File.open(name) - return true - end - false - end - end + module Base + class Assets + if ENV['RACK_ENV'.freeze] == 'production'.freeze + def index + name = File.join(Plezi.assets, *params['*'.freeze]).freeze + data = ::Plezi::AssetBaker.bake(name) + return false unless data + name = File.join(Iodine::Rack.public, request.path_info[1..-1]).freeze if Iodine::Rack.public + if data.is_a?(String) + FileUtils.mkpath File.dirname(name) + IO.binwrite(name, data) + end + response['X-Sendfile'.freeze] = name + response.body = File.open(name) + true + end + else + def index + name = File.join(Plezi.assets, *params['*'.freeze]).freeze + data = ::Plezi::AssetBaker.bake(name) + IO.binwrite(name, data) if data.is_a?(String) + if File.exist? name + response['X-Sendfile'.freeze] = name + response.body = File.open(name) + return true + end + false + end + end - def show - index + def show + index + end end - end - end - # This module is used for asset "baking" (or "belated baking"). It allows us to easily register and support new types of assets. - module AssetBaker - @drivers = {} - # Registers a new Asset Driver of a specific extension (i.e. "css", "js", etc') - # - # Multiple Asset Drivers can be registered for the same extension. The will be attempted in the order of their registration. - # - # An Asset Drivers is an object that responsd to `.call(target)`. - # If the traget is newly rendered, the driver should return the rendered text. - # If the asset didn't change since the last time `.call(target)` was called, the driver should return 'true' (meanning, yet, the asset exists, it's the same). - # If the driver doesn't locate the asset, it should return `nil` or `false`, indicating the next driver should be attempted. - def self.register(ext, driver) - (@drivers[".#{ext}".freeze] ||= [].to_set) << driver - end + end + # This module is used for asset "baking" (or "belated baking"). It allows us to easily register and support new types of assets. + module AssetBaker + @drivers = {} + # Registers a new Asset Driver of a specific extension (i.e. "css", "js", etc') + # + # Multiple Asset Drivers can be registered for the same extension. The will be attempted in the order of their registration. + # + # An Asset Drivers is an object that responsd to `.call(target)`. + # If the traget is newly rendered, the driver should return the rendered text. + # If the asset didn't change since the last time `.call(target)` was called, the driver should return 'true' (meanning, yet, the asset exists, it's the same). + # If the driver doesn't locate the asset, it should return `nil` or `false`, indicating the next driver should be attempted. + def self.register(ext, driver) + (@drivers[".#{ext}".freeze] ||= [].to_set) << driver + end - # @private - # called by Plezi when in need of baking an asset. - def self.bake(name) - ret = nil - ext = File.extname name - return false if ext.empty? - driver = @drivers[ext] - return false if driver.nil? - driver.each { |d| ret = d.call(name); return ret if ret } - nil - end - end + # @private + # called by Plezi when in need of baking an asset. + def self.bake(name) + ret = nil + ext = File.extname name + return false if ext.empty? + driver = @drivers[ext] + return false if driver.nil? + driver.each { |d| ret = d.call(name); return ret if ret } + nil + end + end end require 'plezi/render/sass.rb'