Module: Sass::Callbacks
- Defined in:
- /var/www/sass-pages/.sass/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.
Defined Under Namespace
Modules: InstanceMethods
Class Method Summary
- + extended(base) Automatically includes InstanceMethods when something extends this module.
Instance Method Summary
- - define_callback(name) protected Define a callback with the given name.
Class Method Details
+ extended(base)
Automatically includes InstanceMethods when something extends this module.
30 31 32 |
# File '/var/www/sass-pages/.sass/lib/sass/callbacks.rb', line 30
def self.extended(base)
base.send(:include, InstanceMethods)
end
|
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).
50 51 52 |
# File '/var/www/sass-pages/.sass/lib/sass/callbacks.rb', line 50
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
|