Sha256: 08f13f27f94c89890c4e16ab02f4914596a60cffffae91869a5028512ff9e800
Contents?: true
Size: 1.73 KB
Versions: 17
Compression:
Stored size: 1.73 KB
Contents
module Comatose class ComatoseDrop < ::Liquid::Drop private :initialize def before_method(method) self.send(method.to_sym) rescue ComatoseController.logger.debug "Error calling #{method}: #{$!}" raise $! end class << self # Define a new ComatoseDrop by name def define( name, &block ) d = ComatoseDrop.new d.instance_eval(&block) Comatose.registered_drops[name] = d rescue ComatoseController.logger.debug "Drop '#{name}' was not included: #{$!}" end end end class << self # Returns/initializes a hash for storing ComatoseDrops def registered_drops @registered_drops ||= {} end # Simple wrapper around the ProcessingContext.define method # I think Comatose.define_drop is probably simpler to remember too def define_drop(name, &block) ComatoseDrop.define(name, &block) end # Registers a 'filter' for Liquid use def register_filter(module_name) Liquid::Template.register_filter(module_name) end end end # # Some Default Filters/Drops # module IncludeFilter def include(input) page = ComatosePage.find_by_path(input) params = @context['params'] # TODO: Add more of the context into the included page's context... page.to_html( { 'params' => params } ) rescue "Page at <tt>#{input}</tt> could not be found. <pre>#{$!}</pre>" end end Comatose.register_filter IncludeFilter module TimeagoFilter class Helpers extend ActionView::Helpers::DateHelper end def time_ago(input) TimeagoFilter::Helpers.distance_of_time_in_words_to_now( input, true ) rescue #puts "Oops! -- #{$!}" input end end Comatose.register_filter TimeagoFilter
Version data entries
17 entries across 17 versions & 6 rubygems