<!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>
    
  

  
</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 :name, :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>String</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>
    
      <h4></h4>
      <pre class="example code">  &lt;% attr.attribute :name, :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>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>String</tt>)</span>
          <span class="name">:html</span>
          <span class="default">
            
              &mdash; default:
              <tt>{}</tt>
            
          </span>
          &mdash;
Hahs 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>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>
  
    
    
<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">


162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 162</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) { ... }</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>
    
  </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">:class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class(-es) 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(-es) 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) { ... }</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>
    
  </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(-es) 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(-es) 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>(*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>
    
  </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">:class</span>
          <span class="default">
            
              &mdash; default:
              <tt>''</tt>
            
          </span>
          &mdash;
Name of html class(-es) 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(-es) 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>
    
  </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(-es) 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(-es) 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">


83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/attrtastic.rb', line 83</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='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'>attributes</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='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:class</span><span class='rparen'>)</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_header_class'>html_header_class</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>legend</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='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:header_class</span><span class='rparen'>)</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 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'>:div</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='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 header'>header</span> <span class='op'>=</span> <span class='id args'>args</span><span class='period'>.</span><span class='id shift'>shift</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 content_tag'>content_tag</span><span class='lparen'>(</span><span class='symbol'>:div</span><span class='comma'>,</span> <span class='id header'>header</span><span class='comma'>,</span> <span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id html_header_class'>html_header_class</span><span class='rparen'>)</span><span class='rparen'>)</span>
  <span class='kw'>end</span>

  <span class='kw'>if</span> <span class='id block_given?'>block_given?</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'>:ol</span><span class='comma'>,</span> <span class='lbrace'>{</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;/ol&gt;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
  <span class='kw'>elsif</span> <span class='id args'>args</span><span class='period'>.</span><span class='id present?'>present?</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'>:ol</span><span class='comma'>,</span> <span class='lbrace'>{</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 attrs'>attrs</span> <span class='op'>=</span> <span class='id args'>args</span><span class='period'>.</span><span class='id map'>map</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id method'>method</span><span class='op'>|</span> <span class='id attribute'>attribute</span><span class='lparen'>(</span><span class='id method'>method</span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id compact'>compact</span><span class='period'>.</span><span class='id join'>join</span>
    <span class='id template'>template</span><span class='period'>.</span><span class='id concat'>concat</span><span class='lparen'>(</span><span class='id attrs'>attrs</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;/ol&gt;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
  <span class='kw'>end</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;/div&gt;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
  </div>

</div>
    
    <div id="footer">
  Generated on Mon Jan 11 16:24:23 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>