/htdocs/haml/classes/Sass/Callbacks.html
https://github.com/JerryWho/railsdoccompilation · HTML · 87 lines · 72 code · 14 blank · 1 comment · 0 complexity · a079a0df4b2241c233951849929da5a5 MD5 · raw file
- <div id="C00000156">
- <div class='banner'>
- <span class="file-title-prefix">Module</span><br />Callbacks<br/>
- In:
- <a href="#" onclick="jsHref('files/lib/sass/callbacks_rb.html');">lib/sass/callbacks.rb</a>
- </div>
- <!-- banner header -->
- <div id="bodyContent" >
- <div id="content">
- <div class="description"><p>
- A lightweight infrastructure for defining and running callbacks. <a
- href="index.html?a=C00000156&name=Callbacks">Callbacks</a> are defined
- using \{define_callback\} at the class level, and called using
- `run_#{name}` at the instance level.
- </p>
- <p>
- Clients can add callbacks by calling the generated `on_#{name}` method, and
- passing in a block that’s run when the callback is activated.
- </p>
- <p>
- @example Define a callback class Munger
- </p>
- <pre>
- extend Sass::Callbacks
- define_callback :string_munged
- def munge(str)
- res = str.gsub(/[a-z]/, '\1\1')
- run_string_munged str, res
- res
- end
- </pre>
- <p>
- end
- </p>
- <p>
- @example Use a callback m = Munger.new m.on_string_munged {|str, res| puts
- "#{str} was munged into #{res}!"} m.munge "bar" #=>
- bar was munged into bbaarr!
- </p>
- </div>
- <div class="sectiontitle">Methods</div>
- <ul>
- <li><a href="index.html?a=M001516&name=define_callback" >define_callback</a></li>
- </ul>
- <div class="sectiontitle">Protected Instance methods</div>
- <div id="M001516" class="method">
- <div id="M001516_title" class="title">
- <b>define_callback</b>(name)
- </div>
- <div class="description">
- <p>
- 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).
- </p>
- <p>
- @param name [Symbol] The name of the callback @return [void]
- </p>
- </div>
- <div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M001516_source')" id="l_M001516_source">show source</a> ]</p>
- <div id="M001516_source" class="dyn-source">
- <pre>
- <span class="ruby-comment cmt"># File lib/sass/callbacks.rb, line 36</span>
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">define_callback</span>(<span class="ruby-identifier">name</span>)
- 37: <span class="ruby-identifier">class_eval</span> <span class="ruby-value str">"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"</span>
- 38: <span class="ruby-keyword kw">end</span>
- </pre>
- </div>
- </div>
- </div>
- </div>
- </div>