Module: Sass::Callbacks
- Defined in:
- /var/www/sass-pages/.haml/lib/sass/callbacks.rb
Overview
A lightweight infrastructure for defining and running callbacks. Callbacks are defined using #define_callback at the class level, and called using run_#{name} at the instance level.
Clients can add callbacks by calling the generated on_#{name} method, and passing in a block that’s run when the callback is activated.
Instance Method Summary
- - define_callback(name) protected Define a callback with the given name.
Instance Method Details
- define_callback(name) (protected)
This method returns an undefined value.
Define a callback with the given name. This will define an on_#{name} method that registers a block, and a run_#{name} method that runs that block (optionall with some arguments).
36 37 38 |
# File '/var/www/sass-pages/.haml/lib/sass/callbacks.rb', line 36
def define_callback(name)
class_eval "def on_\#{name}(&block)\n @_sass_callbacks ||= {}\n (@_sass_callbacks[\#{name.inspect}] ||= []) << block\nend\n\ndef run_\#{name}(*args)\n return unless @_sass_callbacks\n return unless @_sass_callbacks[\#{name.inspect}]\n @_sass_callbacks[\#{name.inspect}].each {|c| c[*args]}\nend\nprivate :run_\#{name}\n"
end
|