Class: Liquid::Drop

### Home Classes Methods

### In Files

- lib/liquid/drop.rb

### Parent

Object

### Methods

- #[]
- #before_method
- #has_key?
- #invoke_drop
- #to_liquid

### Class/Module Index

Quicksearch

- Liquid
- Liquid::ArgumentError
- Liquid::Assign
- Liquid::BlankFileSystem
- Liquid::Block
- Liquid::Break
- Liquid::BreakInterrupt
- Liquid::Capture
- Liquid::Case
- Liquid::Comment
- Liquid::Context
- Liquid::ContextError
- Liquid::Continue
- Liquid::ContinueInterrupt
- Liquid::Cycle
- Liquid::Decrement
- Liquid::Document
- Liquid::Drop
- Liquid::ElseCondition
- Liquid::Error
- Liquid::FileSystemError
- Liquid::FilterNotFound
- Liquid::For
- Liquid::If
- Liquid::Ifchanged
- Liquid::Include
- Liquid::Increment
- Liquid::Interrupt
- Liquid::LocalFileSystem
- Liquid::MemoryError
- Liquid::Raw
- Liquid::StackLevelError
- Liquid::StandardError
- Liquid::StandardFilters
- Liquid::SyntaxError
- Liquid::TableRow
- Liquid::Tag
- Liquid::Template
- Liquid::Unless
- Liquid::Utils
- Liquid::Variable
- FalseClass
- LiquidView
- Module
- NilClass
- TrueClass

No matching classes.

# Liquid::Drop

A drop in liquid is a class which allows you to export DOM like things to liquid. Methods of drops are callable. The main use for liquid drops is to implement lazy loaded objects. If you would like to make data available to the web designers which you don't want loaded unless needed then a drop is a great way to do that.

Example:

    class ProductDrop < Liquid::Drop
      def top_sales
        Shop.current.products.find(:all, :order => 'sales', :limit => 10 )
      end
    end

    tmpl = Liquid::Template.parse( ' {% for product in product.top_sales %} {{ product.name }} {%endfor%} '  )
    tmpl.render('product' => ProductDrop.new ) # will invoke top_sales query.

Your drop can either implement the methods sans any parameters or implement the before_method(name) method which is a catch all.

### Constants

EMPTY_STRING

### Attributes

context[W]

### Public Instance Methods

[](method_or_key) click to toggle source
Alias for: invoke_drop
before_method(method) click to toggle source

Catch all for the method

    # File lib/liquid/drop.rb, line 30
    def before_method(method)
      nil
    end

has_key?(name) click to toggle source

    # File lib/liquid/drop.rb, line 43
    def has_key?(name)
      true
    end

invoke_drop(method_or_key) click to toggle source

called by liquid to invoke a drop

    # File lib/liquid/drop.rb, line 35
    def invoke_drop(method_or_key)
      if method_or_key && method_or_key != EMPTY_STRING && self.class.invokable?(method_or_key)
        send(method_or_key)
      else
        before_method(method_or_key)
      end
    end

Also aliased as: []
to_liquid() click to toggle source

    # File lib/liquid/drop.rb, line 47
    def to_liquid
      self
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.