Parent

Class/Module Index [+]

Quicksearch

Nanoc::Extra::Context

Provides a context and a binding for use in filters such as the ERB and Haml ones.

Public Class Methods

new(hash) click to toggle source

Creates a new context based off the contents of the hash.

Each pair in the hash will be converted to an instance variable and an instance method. For example, passing the hash `{ :foo => 'bar' }` will cause `@foo` to have the value `"bar"`, and the instance method `foo` to return the same value `"bar"`.

@param [Hash] hash A list of key-value pairs to make available

@example Defining a context and accessing values

context = Nanoc::Context.new(
  :name     => 'Max Payne',
  :location => 'in a cheap motel'
)
context.instance_eval do
  "I am #{name} and I am hiding #{@location}."
end
# => "I am Max Payne and I am hiding in a cheap motel."
# File lib/nanoc/base/context.rb, line 27
def initialize(hash)
  hash.each_pair do |key, value|
    # Build instance variable
    instance_variable_set('@' + key.to_s, value)

    # Define method
    metaclass = (class << self ; self ; end)
    metaclass.send(:define_method, key) { value }
  end
end

Public Instance Methods

get_binding() click to toggle source

Returns a binding for this instance.

@return [Binding] A binding for this instance

# File lib/nanoc/base/context.rb, line 41
def get_binding
  binding
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.