Sha256: 2863bc771f648d015c0aa4312b2fc258efd7a4ed623461a28b641be46b75db6a
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
require 'chemicals' module Commute module Common module Chemicals module Chemicals::Base TEMPLATE_CACHE = {} def initialize template_root = './' @template_root = template_root end def template path file = File.expand_path "#{path}.xml", @template_root if TEMPLATE_CACHE.has_key? file TEMPLATE_CACHE[file] else TEMPLATE_CACHE[file] = ::Chemicals::Template.new IO.read(file) end end end class Parser include Chemicals::Base @name = :parse def call router, request, options path = options[:path] _request = router.call(request.http) do |_response, status| response = request.respond _response.http, status _response.inject('', &:<<).map { |body| template(path).parse body }.pipe response end request.pipe _request end end class Renderer include Chemicals::Base @name = :render def call router, request, options path = options[:path] _request = router.call(request.http) do |_response, status| _response.pipe request.respond(_response.http, status) end request.map { |body| template(path).render(body).to_s }.pipe _request end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
commute-0.3.0.pre.2 | lib/commute/common/chemicals.rb |
commute-0.3.0.pre | lib/commute/common/chemicals.rb |