<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta name="Content-Type" content="text/html; charset=UTF-8" />
<title>Class: Attrtastic::SemanticAttributesBuilder</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />

<script type="text/javascript" charset="utf-8">
  relpath = '..';
  if (relpath != '') relpath += '/';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>

  </head>
  <body>
    <script type="text/javascript" charset="utf-8">
      if (window.top.frames.main) document.body.className = 'frames';
    </script>
    
    <div id="header">
      <div id="menu">
  
    <a href="../_index.html">Index (S)</a> &raquo; 
    <span class='title'><a href="../Attrtastic.html" title="Attrtastic (module)">Attrtastic</a></span>
     &raquo; 
    <span class="title">SemanticAttributesBuilder</span>
  
  
  <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
</div>

      <div id="search">
  <a id="class_list_link" href="#">Class List</a>
  <a id="method_list_link" href="#">Method List</a>
  <a id ="file_list_link" href="#">File List</a>
</div>

      <div class="clear"></div>
    </div>
    
    <iframe id="search_frame"></iframe>
    
    <div id="content"><h1>Class: Attrtastic::SemanticAttributesBuilder 
  
  
</h1>

<dl class="box">
  
    <dt class="r1">Inherits:</dt>
    <dd class="r1">
      <span class="inheritName">Object</span>
      
        <ul class="fullTree">
          <li>Object</li>
          
            <li class="next">Attrtastic::SemanticAttributesBuilder</li>
          
        </ul>
        <a href="#" class="inheritanceTree">show all</a>
      
      </dd>
    
  
  
    
  
    
  
  
    <dt class="r2 last">Defined in:</dt>
    <dd class="r2 last">lib/attrtastic.rb</dd>
  
</dl>
<div class="clear"></div>



  <h2>Instance Attribute Summary</h2>
  <ul class="summary">
    
      <li class="public ">
  <span class="summary_signature">
    
      <a href="#record-instance_method" title="#record (instance method)">- (Object) <strong>record</strong> </a>
    

    
  </span>
  
  
    <span class="note title readonly">readonly</span>
    
  
  
  
  

  
    <span class="summary_desc">
Only for testing purposes.

</span>
  
</li>

    
      <li class="public ">
  <span class="summary_signature">
    
      <a href="#template-instance_method" title="#template (instance method)">- (Object) <strong>template</strong> </a>
    

    
  </span>
  
  
    <span class="note title readonly">readonly</span>
    
  
  
  
  

  
    <span class="summary_desc">
Only for testing purposes.

</span>
  
</li>

    
  </ul>


  <h2>Instance Method Summary</h2>

  <ul class="summary">
    
      <li class="public ">
  <span class="summary_signature">
    
      <a href="#attribute-instance_method" title="#attribute (instance method)">- (Object) <strong>attribute</strong>(*args, &amp;block) </a>
    

    
  </span>
  
  
  
  
  

  
    <span class="summary_desc">
Creates list entry for single record attribute.

</span>
  
</li>

    
      <li class="public ">
  <span class="summary_signature">
    
      <a href="#attributes-instance_method" title="#attributes (instance method)">- (Object) <strong>attributes</strong>(*args, &amp;block) </a>
    

    
  </span>
  
  
  
  
  

  
    <span class="summary_desc">
Creates block of attributes with optional header.

</span>
  
</li>

    
      <li class="public ">
  <span class="summary_signature">
    
      <a href="#initialize-instance_method" title="#initialize (instance method)">- (SemanticAttributesBuilder) <strong>initialize</strong>(record, template) </a>
    

    
  </span>
  
    <span class="note title constructor">constructor</span>
  
  
  
  
  

  
    <span class="summary_desc">
A new instance of SemanticAttributesBuilder.

</span>
  
</li>

    
  </ul>
<div id="constructor_details" class="method_details_list">
  <h2>Constructor Details</h2>
  
    <div class="method_details first">
  <p class="signature first" id="initialize-instance_method">
  
    - (<tt><a href="" title="Attrtastic::SemanticAttributesBuilder (class)">SemanticAttributesBuilder</a></tt>) <strong>initialize</strong>(record, template) 
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>
A new instance of SemanticAttributesBuilder
</p>


  </div>
</div>
<div class="tags">
  
</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


14
15
16</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 14</span>

<span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id record'>record</span><span class='comma'>,</span> <span class='id template'>template</span><span class='rparen'>)</span>
  <span class='ivar'>@record</span><span class='comma'>,</span> <span class='ivar'>@template</span> <span class='op'>=</span> <span class='id record'>record</span><span class='comma'>,</span> <span class='id template'>template</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
  
</div>

  <div id="instance_attr_details" class="attr_details">
    <h2>Instance Attribute Details</h2>
    
      
      <span id=""></span>
      <span id="record-instance_method"></span>
      <div class="method_details first">
  <p class="signature first" id="record-instance_method">
  
    - (<tt>Object</tt>) <strong>record</strong>  <span class="extras">(readonly)</span>
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>
Only for testing purposes
</p>


  </div>
</div>
<div class="tags">
  
</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


12
13
14</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 12</span>

<span class='kw'>def</span> <span class='id record'>record</span>
  <span class='ivar'>@record</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      
      <span id=""></span>
      <span id="template-instance_method"></span>
      <div class="method_details ">
  <p class="signature " id="template-instance_method">
  
    - (<tt>Object</tt>) <strong>template</strong>  <span class="extras">(readonly)</span>
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>
Only for testing purposes
</p>


  </div>
</div>
<div class="tags">
  
</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


12
13
14</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 12</span>

<span class='kw'>def</span> <span class='id template'>template</span>
  <span class='ivar'>@template</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
  </div>


  <div id="instance_method_details" class="method_details_list">
    <h2>Instance Method Details</h2>
    
    
      <div class="method_details first">
  <p class="signature first" id="attribute-instance_method">
  
    
      <span class="overload">- (<tt>Object</tt>) <strong>attribute</strong>(method, options = {}) </span>
    
      <span class="overload">- (<tt>Object</tt>) <strong>attribute</strong>(method, options = {}, &amp;block) { ... }</span>
    
      <span class="overload">- (<tt>Object</tt>) <strong>attribute</strong>(options = {}, &amp;block) { ... }</span>
    
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>
Creates list entry for single record attribute
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;%= attr.attribute :name, :display_empty =&gt; true %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attribute :label =&gt; &quot;User link&quot; do %&gt;
    &lt;%= link_to @user.full_name, user_path(@user) %&gt;</pre>
    
  </div>

  <h3>Overloads:</h3>
  <ul class="overload">
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attribute</strong>(method, options = {}) </span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates entry for record attribute
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;%= attr.attribute :name %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;%= attr.attribute :name, :label =&gt; &quot;Full user name&quot; %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;%= attr.attribute :name, :value =&gt; @user.full_name %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>Symbol</tt>)</span>
      
      
        <span class='name'>method</span>
      
      
      
        &mdash;
        
Attribute name of given record


      
    </li>
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options


      
    </li>
  
</ul>

  
    
    
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>Hash</tt>)</span>
          <span class="name">:html</span>
          <span class="default">
            
              &mdash; default:
              <tt>{}</tt>
            
          </span>
          &mdash;
Hash with optional :class, :label_class and :value_class names of class for
html


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:label</span>
          <span class="default">
            
              <span class="na">N/A</span>
            
          </span>
          &mdash;
Label for attribute entry, overrides default label name from symbol


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:value</span>
          <span class="default">
            
              <span class="na">N/A</span>
            
          </span>
          &mdash;
Value of attribute entry, overrides default value from record


        </tr>
      
        <li>
          <span class="type">(<tt>Boolean</tt>)</span>
          <span class="name">:display_empty</span>
          <span class="default">
            
              &mdash; default:
              <tt>false</tt>
            
          </span>
          &mdash;
Indicates if print value of given attribute even if it is blank?


        </tr>
      
    </ul>
  

</div>
      </li>
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attribute</strong>(method, options = {}, &amp;block) { ... }</span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates entry for attribute given with block
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attribute :name do %&gt;
    &lt;%= link_to @user.full_name, user_path(@user) %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>Symbol</tt>)</span>
      
      
        <span class='name'>method</span>
      
      
      
        &mdash;
        
Attribute name of given record


      
    </li>
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options


      
    </li>
  
</ul>

  
    
    
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>Hash</tt>)</span>
          <span class="name">:html</span>
          <span class="default">
            
              &mdash; default:
              <tt>{}</tt>
            
          </span>
          &mdash;
Hash with optional :class, :label_class and :value_class names of classes
for html


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:label</span>
          <span class="default">
            
              <span class="na">N/A</span>
            
          </span>
          &mdash;
Label for attribute entry, overrides default label name from symbol


        </tr>
      
    </ul>
  
    
    
<h3>Yields:</h3>
<ul class="yield">
  
    <li>
      
        <span class='type'></span>
      
      
      
      
        
        
Block which is executed in place of value for attribute


      
    </li>
  
</ul>

</div>
      </li>
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attribute</strong>(options = {}, &amp;block) { ... }</span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates entry for attribute with given block, options[:label] is mandatory
in this case.
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attribute :label =&gt; &quot;User link&quot; do %&gt;
    &lt;%= link_to @user.full_name, user_path(@user) %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>:Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options


      
    </li>
  
</ul>

  
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>Hash</tt>)</span>
          <span class="name">:html</span>
          <span class="default">
            
              &mdash; default:
              <tt>{}</tt>
            
          </span>
          &mdash;
Hash with optional :class, :label_class and :value_class names of classes
for html


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:label</span>
          <span class="default">
            
              <span class="na">N/A</span>
            
          </span>
          &mdash;
Mandatory label for attribute entry


        </tr>
      
    </ul>
  
    
    
<h3>Yields:</h3>
<ul class="yield">
  
    <li>
      
        <span class='type'></span>
      
      
      
      
        
        
Block which is executed in place of value for attribute


      
    </li>
  
</ul>

</div>
      </li>
    
  </ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 261</span>

<span class='kw'>def</span> <span class='id attribute'>attribute</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='id options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
  <span class='kw'>if</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span> <span class='kw'>and</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span><span class='period'>.</span><span class='id kind_of?'>kind_of?</span> <span class='const'>Hash</span>
    <span class='id options'>options</span> <span class='op'>=</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span>
    <span class='id args'>args</span> <span class='op'>=</span> <span class='id args'>args</span><span class='lbracket'>[</span><span class='int'>0</span> <span class='op'>..</span> <span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</span>
  <span class='kw'>end</span>
  <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:html</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>

  <span class='id method'>method</span> <span class='op'>=</span> <span class='id args'>args</span><span class='period'>.</span><span class='id shift'>shift</span>

  <span class='id html_label_class'>html_label_class</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>label</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:html</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:label_class</span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id compact'>compact</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
  <span class='id html_value_class'>html_value_class</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:html</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:value_class</span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id compact'>compact</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
  <span class='id html_class'>html_class</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>attribute</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:html</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:class</span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id compact'>compact</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>

  <span class='id label'>label</span> <span class='op'>=</span> <span class='id options'>options</span><span class='period'>.</span><span class='id key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:label</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:label</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id label_for_attribute'>label_for_attribute</span><span class='lparen'>(</span><span class='id method'>method</span><span class='rparen'>)</span>
  <span class='id label_content'>label_content</span> <span class='op'>=</span> <span class='id template'>template</span><span class='period'>.</span><span class='id content_tag'>content_tag</span><span class='lparen'>(</span><span class='symbol'>:span</span><span class='comma'>,</span> <span class='id label'>label</span><span class='comma'>,</span> <span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id html_label_class'>html_label_class</span><span class='rparen'>)</span>

  <span class='kw'>unless</span> <span class='id block_given?'>block_given?</span>
    <span class='id value'>value</span> <span class='op'>=</span> <span class='id options'>options</span><span class='period'>.</span><span class='id key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id value_of_attribute'>value_of_attribute</span><span class='lparen'>(</span><span class='id method'>method</span><span class='rparen'>)</span>
    <span class='id value_content'>value_content</span> <span class='op'>=</span> <span class='id template'>template</span><span class='period'>.</span><span class='id content_tag'>content_tag</span><span class='lparen'>(</span><span class='symbol'>:span</span><span class='comma'>,</span> <span class='id value'>value</span><span class='comma'>,</span> <span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id html_value_class'>html_value_class</span><span class='rparen'>)</span>

    <span class='kw'>if</span> <span class='id value'>value</span><span class='period'>.</span><span class='id present?'>present?</span> <span class='kw'>or</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:display_empty</span><span class='rbracket'>]</span>
      <span class='id content'>content</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='id label_content'>label_content</span><span class='comma'>,</span> <span class='id value_content'>value_content</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id join'>join</span>
      <span class='id template'>template</span><span class='period'>.</span><span class='id content_tag'>content_tag</span><span class='lparen'>(</span><span class='symbol'>:li</span><span class='comma'>,</span> <span class='id content'>content</span><span class='comma'>,</span> <span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id html_class'>html_class</span><span class='rparen'>)</span>
    <span class='kw'>end</span>
  <span class='kw'>else</span>
    <span class='id template'>template</span><span class='period'>.</span><span class='id concat'>concat</span><span class='lparen'>(</span><span class='id template'>template</span><span class='period'>.</span><span class='id tag'>tag</span><span class='lparen'>(</span><span class='symbol'>:li</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id html_class'>html_class</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span>
    <span class='id template'>template</span><span class='period'>.</span><span class='id concat'>concat</span><span class='lparen'>(</span><span class='id label_content'>label_content</span><span class='rparen'>)</span>
    <span class='id template'>template</span><span class='period'>.</span><span class='id concat'>concat</span><span class='lparen'>(</span><span class='id template'>template</span><span class='period'>.</span><span class='id tag'>tag</span><span class='lparen'>(</span><span class='symbol'>:span</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id html_value_class'>html_value_class</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span>
    <span class='kw'>yield</span>
    <span class='id template'>template</span><span class='period'>.</span><span class='id concat'>concat</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>&lt;/span&gt;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
    <span class='id template'>template</span><span class='period'>.</span><span class='id concat'>concat</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>&lt;/li&gt;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="attributes-instance_method">
  
    
      <span class="overload">- (<tt>Object</tt>) <strong>attributes</strong>(options = {}, &amp;block) { ... }</span>
    
      <span class="overload">- (<tt>Object</tt>) <strong>attributes</strong>(header, options = {}, &amp;block) {|builderBuilderinstanceholdingactualrecord| ... }</span>
    
      <span class="overload">- (<tt>Object</tt>) <strong>attributes</strong>(*symbols, options = {}) </span>
    
      <span class="overload">- (<tt>Object</tt>) <strong>attributes</strong>(header, *symbols, options = {}) </span>
    
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>
Creates block of attributes with optional header. Attributes are surrounded
with ordered list.
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4>
All together

</h4>
      <pre class="example code">  &lt;% attr.attributes &quot;User info&quot;, :name, :email, :class =&gt; &quot;user_info&quot;, :header_class =&gt; &quot;header important&quot; %&gt;</pre>
    
      <h4>
With block

</h4>
      <pre class="example code">  &lt;% attr.attributes &quot;User info&quot; :class =&gt; &quot;user_info&quot;, :header_class =&gt; &quot;header important&quot; do %&gt;
    &lt;%= attr.attribute :name %&gt;
    &lt;%= attr.attribute :email %&gt;
  &lt;% end %&gt;</pre>
    
  </div>

  <h3>Overloads:</h3>
  <ul class="overload">
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attributes</strong>(options = {}, &amp;block) { ... }</span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates attributes list without header, yields block to include each
attribute
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes do %&gt;
    &lt;%= attr.attribute :name %&gt;
    &lt;%= attr.attribute :email %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :name =&gt; &quot;User&quot; do %&gt;
    &lt;%= attr.attribute :name %&gt;
    &lt;%= attr.attribute :email %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :for =&gt; :user do |user| %&gt;
    &lt;%= user.attribute :name %&gt;
    &lt;%= user.attribute :email %&gt;
    &lt;%  user.attribute :profile do %&gt;
      &lt;%= link_to h(user.record.name), user_path(user.record) %&gt;
    &lt;%  end %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :for =&gt; @user do |user| %&gt;
    &lt;%= user.attribute :name %&gt;
    &lt;%= user.attribute :email %&gt;
    &lt;%  user.attribute :profile do %&gt;
      &lt;%= link_to h(@user.name), user_path(@user) %&gt;
    &lt;%  end %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :for =&gt; :posts do |post| %&gt;
    &lt;%= post.attribute :author %&gt;
    &lt;%= post.attribute :title %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :for =&gt; @posts do |post| %&gt;
    &lt;%= post.attribute :author %&gt;
    &lt;%= post.attribute :title %&gt;
  &lt;% end %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options for formating attributes block


      
    </li>
  
</ul>

  
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:name</span>
          <span class="default">
            
              &mdash; default:
              <tt>nil</tt>
            
          </span>
          &mdash;
Optional header of attributes section


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to attributes block


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:header_class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to header


        </tr>
      
    </ul>
  
    
    
<h3>Yields:</h3>
<ul class="yield">
  
    <li>
      
        <span class='type'></span>
      
      
      
      
        
        
Block which can call #attribute to include attribute value


      
    </li>
  
</ul>

</div>
      </li>
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attributes</strong>(header, options = {}, &amp;block) {|builderBuilderinstanceholdingactualrecord| ... }</span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates attributes list with header and yields block to include each
attribute
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;User info&quot; do %&gt;
    &lt;%= attr.attribute :name&quot; %&gt;
    &lt;%= attr.attribute :email %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;User&quot;, :for =&gt; :user do |user| %&gt;
    &lt;%= user.attribute :name %&gt;
    &lt;%= user.attribute :email %&gt;
    &lt;%  user.attribute :profile do %&gt;
      &lt;%= link_to h(user.record.name), user_path(user.record) %&gt;
    &lt;%  end %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;User&quot;, :for =&gt; @user do |user| %&gt;
    &lt;%= user.attribute :name %&gt;
    &lt;%= user.attribute :email %&gt;
    &lt;%  user.attribute :profile do %&gt;
      &lt;%= link_to h(@user.name), user_path(@user) %&gt;
    &lt;%  end %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;Post&quot;, :for =&gt; :posts do |post| %&gt;
    &lt;%= post.attribute :author %&gt;
    &lt;%= post.attribute :title %&gt;
  &lt;% end %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;Post&quot;, :for =&gt; @posts do |post| %&gt;
    &lt;%= post.attribute :author %&gt;
    &lt;%= post.attribute :title %&gt;
  &lt;% end %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
        <span class='name'>header</span>
      
      
      
        &mdash;
        
Header of attributes section


      
    </li>
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options for formating attributes block


      
    </li>
  
</ul>

  
    
    
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to attributes block


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:header_class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to header


        </tr>
      
    </ul>
  
    
    
<h3>Yields:</h3>
<ul class="yield">
  
    <li>
      
        <span class='type'></span>
      
      
      
      
        
        
Block which can call #attribute to include attribute value


      
    </li>
  
</ul>
<h3>Yield Parameters:</h3>
<ul class="yieldparam">
  
    <li>
      
        <span class='type'>(<tt>retivable via #record</tt>)</span>
      
      
        <span class='name'>builderBuilderinstanceholdingactualrecord</span>
      
      
      
    </li>
  
</ul>

</div>
      </li>
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attributes</strong>(*symbols, options = {}) </span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates attributes list without header, attributes are given as list of
symbols (record properties)
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :name, :email %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :name, :email, :for =&gt; :author %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :name, :email, :for =&gt; @user %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :title, :for =&gt; :posts %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes :title, :for =&gt; @posts %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>Symbol</tt>, <tt>...</tt>)</span>
      
      
        <span class='name'>symbols</span>
      
      
      
        &mdash;
        
List of attributes


      
    </li>
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options for formating attributes block


      
    </li>
  
</ul>

  
    
    
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:name</span>
          <span class="default">
            
              &mdash; default:
              <tt>nil</tt>
            
          </span>
          &mdash;
Optional header of attributes section


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to attributes block


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:header_class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to header


        </tr>
      
    </ul>
  

</div>
      </li>
    
      
      <li class="overload_item">
        <span class="signature">- (<tt>Object</tt>) <strong>attributes</strong>(header, *symbols, options = {}) </span>
        <div class="docstring">
  <div class="discussion">
    <p>
Creates attributes list with header, attributes are given as list of
symbols (record properties)
</p>


  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;User info&quot; :name, :email %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;Author&quot;, :name, :email, :for =&gt; :author %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;Author&quot;, :name, :email, :for =&gt; @user %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;Post&quot;, :title, :for =&gt; :posts %&gt;</pre>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attributes &quot;Post&quot;, :title, :for =&gt; @posts %&gt;</pre>
    
  </div>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
        <span class='name'>header</span>
      
      
      
        &mdash;
        
Header of attributes section


      
    </li>
  
    <li>
      
        <span class='type'>(<tt>Symbol</tt>, <tt>...</tt>)</span>
      
      
        <span class='name'>symbols</span>
      
      
      
        &mdash;
        
Optional list of attributes


      
    </li>
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>options</span>
      
      
      
        &mdash;
        
Options for formating attributes block


      
    </li>
  
</ul>

  
    
    
    
    
    
    
    <h3>Options Hash (<tt>options</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to attributes block


        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:header_class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class to add to header


        </tr>
      
    </ul>
  

</div>
      </li>
    
  </ul>

  <h3>See Also:</h3>
  <ul class="see">
    
      <li><a href="#attribute-instance_method" title="Attrtastic::SemanticAttributesBuilder#attribute (method)">#attribute</a></li>
    
  </ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 179</span>

<span class='kw'>def</span> <span class='id attributes'>attributes</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='id options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
  <span class='kw'>if</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span> <span class='kw'>and</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span><span class='period'>.</span><span class='id kind_of?'>kind_of?</span> <span class='const'>Hash</span>
    <span class='id options'>options</span> <span class='op'>=</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span>
    <span class='id args'>args</span> <span class='op'>=</span> <span class='id args'>args</span><span class='lbracket'>[</span><span class='int'>0</span> <span class='op'>..</span> <span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</span>
  <span class='kw'>end</span>
  <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:html</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>

  <span class='kw'>if</span> <span class='id args'>args</span><span class='period'>.</span><span class='id first'>first</span> <span class='kw'>and</span> <span class='id args'>args</span><span class='period'>.</span><span class='id first'>first</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>String</span>
    <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id args'>args</span><span class='period'>.</span><span class='id shift'>shift</span>
  <span class='kw'>end</span>

  <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:for</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id blank?'>blank?</span>
    <span class='id attributes_for'>attributes_for</span><span class='lparen'>(</span><span class='id record'>record</span><span class='comma'>,</span> <span class='id args'>args</span><span class='comma'>,</span> <span class='id options'>options</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='kw'>else</span>
    <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:for</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Symbol</span>
      <span class='id for_value'>for_value</span> <span class='op'>=</span> <span class='id record'>record</span><span class='period'>.</span><span class='id send'>send</span><span class='lparen'>(</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:for</span><span class='rbracket'>]</span><span class='rparen'>)</span>
    <span class='kw'>else</span>
      <span class='id for_value'>for_value</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:for</span><span class='rbracket'>]</span>
    <span class='kw'>end</span>

    <span class='lbracket'>[</span><span class='op'>*</span><span class='id for_value'>for_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id value'>value</span><span class='op'>|</span>
      <span class='id attributes_for'>attributes_for</span><span class='lparen'>(</span><span class='id value'>value</span><span class='comma'>,</span> <span class='id args'>args</span><span class='comma'>,</span> <span class='id options'>options</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
    <span class='kw'>end</span>
  <span class='kw'>end</span>

<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
  </div>

</div>
    
    <div id="footer">
  Generated on Fri Jan 15 21:15:12 2010 by 
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a>
  0.5.3 (ruby-1.9.1).
</div>

  </body>
</html>