<!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> » <span class='title'><a href="../Attrtastic.html" title="Attrtastic (module)">Attrtastic</a></span> » <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, &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, &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 = {}, &block) { ... }</span> <span class="overload">- (<tt>Object</tt>) <strong>attribute</strong>(options = {}, &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"> <%= attr.attribute :name, :display_empty => true %></pre> <h4></h4> <pre class="example code"> <% attr.attribute :label => "User link" do %> <%= link_to @user.full_name, user_path(@user) %></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"> <%= attr.attribute :name %></pre> <h4></h4> <pre class="example code"> <%= attr.attribute :name, :label => "Full user name" %></pre> <h4></h4> <pre class="example code"> <%= attr.attribute :name, :value => @user.full_name %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>Symbol</tt>)</span> <span class='name'>method</span> — Attribute name of given record </li> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>{}</tt> </span> — 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> — 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> — 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"> — default: <tt>false</tt> </span> — 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 = {}, &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"> <% attr.attribute :name do %> <%= link_to @user.full_name, user_path(@user) %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>Symbol</tt>)</span> <span class='name'>method</span> — Attribute name of given record </li> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>{}</tt> </span> — 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> — 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 = {}, &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"> <% attr.attribute :label => "User link" do %> <%= link_to @user.full_name, user_path(@user) %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>:Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>{}</tt> </span> — 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> — 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'>&</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'>"</span><span class='tstring_content'>label</span><span class='tstring_end'>"</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'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</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'>"</span><span class='tstring_content'>value</span><span class='tstring_end'>"</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'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</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'>"</span><span class='tstring_content'>attribute</span><span class='tstring_end'>"</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'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</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'>=></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'>=></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'>=></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'>=></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'>=></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'>"</span><span class='tstring_content'></span></span><span class='tstring_end'>"</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'>"</span><span class='tstring_content'></li></span><span class='tstring_end'>"</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 = {}, &block) { ... }</span> <span class="overload">- (<tt>Object</tt>) <strong>attributes</strong>(header, options = {}, &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"> <% attr.attributes "User info", :name, :email, :class => "user_info", :header_class => "header important" %></pre> <h4> With block </h4> <pre class="example code"> <% attr.attributes "User info" :class => "user_info", :header_class => "header important" do %> <%= attr.attribute :name %> <%= attr.attribute :email %> <% end %></pre> </div> <h3>Overloads:</h3> <ul class="overload"> <li class="overload_item"> <span class="signature">- (<tt>Object</tt>) <strong>attributes</strong>(options = {}, &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"> <% attr.attributes do %> <%= attr.attribute :name %> <%= attr.attribute :email %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :name => "User" do %> <%= attr.attribute :name %> <%= attr.attribute :email %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :for => :user do |user| %> <%= user.attribute :name %> <%= user.attribute :email %> <% user.attribute :profile do %> <%= link_to h(user.record.name), user_path(user.record) %> <% end %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :for => @user do |user| %> <%= user.attribute :name %> <%= user.attribute :email %> <% user.attribute :profile do %> <%= link_to h(@user.name), user_path(@user) %> <% end %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :for => :posts do |post| %> <%= post.attribute :author %> <%= post.attribute :title %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :for => @posts do |post| %> <%= post.attribute :author %> <%= post.attribute :title %> <% end %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>nil</tt> </span> — Optional header of attributes section </tr> <li> <span class="type">(<tt>String</tt>)</span> <span class="name">:class</span> <span class="default"> — default: <tt>''</tt> </span> — 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"> — default: <tt>''</tt> </span> — 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 = {}, &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"> <% attr.attributes "User info" do %> <%= attr.attribute :name" %> <%= attr.attribute :email %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "User", :for => :user do |user| %> <%= user.attribute :name %> <%= user.attribute :email %> <% user.attribute :profile do %> <%= link_to h(user.record.name), user_path(user.record) %> <% end %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "User", :for => @user do |user| %> <%= user.attribute :name %> <%= user.attribute :email %> <% user.attribute :profile do %> <%= link_to h(@user.name), user_path(@user) %> <% end %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "Post", :for => :posts do |post| %> <%= post.attribute :author %> <%= post.attribute :title %> <% end %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "Post", :for => @posts do |post| %> <%= post.attribute :author %> <%= post.attribute :title %> <% end %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>String</tt>)</span> <span class='name'>header</span> — Header of attributes section </li> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>''</tt> </span> — 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"> — default: <tt>''</tt> </span> — 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"> <% attr.attributes :name, :email %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :name, :email, :for => :author %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :name, :email, :for => @user %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :title, :for => :posts %></pre> <h4></h4> <pre class="example code"> <% attr.attributes :title, :for => @posts %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>Symbol</tt>, <tt>...</tt>)</span> <span class='name'>symbols</span> — List of attributes </li> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>nil</tt> </span> — Optional header of attributes section </tr> <li> <span class="type">(<tt>String</tt>)</span> <span class="name">:class</span> <span class="default"> — default: <tt>''</tt> </span> — 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"> — default: <tt>''</tt> </span> — 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"> <% attr.attributes "User info" :name, :email %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "Author", :name, :email, :for => :author %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "Author", :name, :email, :for => @user %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "Post", :title, :for => :posts %></pre> <h4></h4> <pre class="example code"> <% attr.attributes "Post", :title, :for => @posts %></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>String</tt>)</span> <span class='name'>header</span> — Header of attributes section </li> <li> <span class='type'>(<tt>Symbol</tt>, <tt>...</tt>)</span> <span class='name'>symbols</span> — Optional list of attributes </li> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>options</span> — 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"> — default: <tt>''</tt> </span> — 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"> — default: <tt>''</tt> </span> — 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'>&</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'>&</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'>&</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>