Sha256: 5844af0d5708ddbb5294ea207908c4f3bf33171a8888e0aa4a5920cd4cdacdee

Contents?: true

Size: 694 Bytes

Versions: 29

Compression:

Stored size: 694 Bytes

Contents

class Refinery::BasePresenter

  DEFAULT_FIELDS = {
    :title              => Proc.new { |p| p.model.class.name.titleize },
    :path               => Proc.new { |p| p.title },
    :browser_title      => nil,
    :meta_description   => nil,
    :meta_keywords      => nil
  }

  attr_reader :model

  def initialize(obj)
    @model = obj
  end

  def method_missing(method, *args)
    if @model.respond_to? method
      @model.send method
    elsif DEFAULT_FIELDS.has_key? method
      (value = DEFAULT_FIELDS[method]).is_a?(Proc) ? value.call(self) : value
    else
      raise NoMethodError.new("#{self.class.name} doesn't know #{method}. Define or delegate it.", method)
    end
  end

end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
jacobat-refinerycms-0.9.6.14 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.34 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.33 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.32 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.31 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.30 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.29 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.28 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.27 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.26 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.25 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.24 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.23 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.22 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.21 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.19 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.18 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.17 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.16 vendor/plugins/refinery/lib/refinery/base_presenter.rb
refinerycms-0.9.6.15 vendor/plugins/refinery/lib/refinery/base_presenter.rb