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

Version Path
aslakjo-aslakjo-comatose-2.0.5.1 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.2 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.3 lib/comatose/comatose_drop.rb
darthapo-comatose-2.0.3 lib/comatose/comatose_drop.rb
darthapo-comatose-2.0.4 lib/comatose/comatose_drop.rb
darthapo-comatose-2.0.5 lib/comatose/comatose_drop.rb
jcnetdev-comatose-2.0.1 lib/comatose/comatose_drop.rb
staugaard-comatose-2.0.2 lib/comatose/comatose_drop.rb
staugaard-comatose-2.0.3 lib/comatose/comatose_drop.rb
comatose-2.0.5 lib/comatose/comatose_drop.rb
comatose-2.0.1 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.12 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.11 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.10 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.9 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.8 lib/comatose/comatose_drop.rb
aslakjo-comatose-2.0.5.7 lib/comatose/comatose_drop.rb