Active Component
Active Component introduces components into your Rails presentation layer. The use of components improves consistency and development speed through reuse and a new way of view code organization. Components are plain Ruby classes that are able to render themselves using a to_html method. Active Component provides several means that make it easy to write and use components.
Example
**Active Component Template:**
div ‘kpi-report’, :content => [
heading_with_label("in #{ Time.now.year }", "Group", 'group'), report_table(@coreprocesses, :headers => ["Core Processes"] + @companies.collect {|company| company.name}, :cols => [:name] + @companies.collect {|company| proc {|cp| progress_chart(cp, :reporting_company_id => company.id, :chart_type => :boxes)} } )
]
Each method represents a component.
**Comparision: Same Template in ERB:**
<div class=“kpi_report”>
<h1 class="content_header"> <span class="content_header_text"> <span class="label group_label">Group</span> <%= title("Umsetzungsstand der Ziele") %> in <%= Time.now.year %> <%= help_text %></span> </h1> <div class="content"> <div class="sub_content"> <table cellspacing="0"> <thead> <tr> <td width="80%">Core Processes</td> <% @companies.each do |t| %> <td><%= t.name %></td> <% end %> </tr> </thead> <% @coreprocesses.each do |cp| %> <tr class="line"> <td class="small_name_column"><%= cp.name %></td> <% @companies.each do |t| %> <td class="small_indicator_column"><%= scale_helper(cp, true, t.id, Time.now.year, groupwide) %></td> <% end %> </tr> <% end %> </table> </div> </div>
</div>
Copyright © 2010 Christian Peters, released under the MIT license