If you have complex view logic, this can easily lead to helper methods which call each other. See how to refactor this out into another object in this episode.
# application_helper.rb
def render_stars(rating)
StarsRenderer.new(rating, self).render_stars
end
# helpers/stars_renderer.rb
class StarsRenderer
def initialize(rating, template)
@rating = rating
@template = template
end
def render_stars
content_tag :div, star_images, :class => 'stars'
end
private
def star_images
(0...5).map do |position|
star_image(((@rating-position)*2).round)
end.join
end
def star_image(value)
image_tag "/images/#{star_type(value)}_star.gif", :size => '15x15'
end
def star_type(value)
if value <= 0
'empty'
elsif value == 1
'half'
else
'full'
end
end
def method_missing(*args, &block)
@template.send(*args, &block)
end
分享到:
相关推荐
### Refactoring Ruby:关键知识点解析 #### 一、Refactoring 的意义与重要性 在软件开发过程中,重构(Refactoring)是一种重要的维护手段和技术实践。它指的是在不改变软件外部行为的前提下,对代码进行结构上的...
### Refactoring to Patterns #### 重要概念:Refactoring(重构) **重构**是一种软件开发过程中常用的技巧,旨在改进现有代码结构而不改变其外部行为。这一过程可以帮助开发者提高代码的可读性和可维护性,同时...
- **引入参数对象(Introduce Parameter Object)**:当一个方法接受多个参数时,可以创建一个新的类来封装这些参数,提高代码的可读性和可维护性。 #### 五、重构工具 随着技术的发展,现在有许多工具可以帮助...
### Refactoring to Patterns #### 一、概述 《Refactoring To Patterns》这本书由Joshua Kerievsky编写,是关于重构技术与设计模式相结合的重要参考资料。本书深入探讨了如何通过重构来实现更好的软件设计,特别...
《Refactoring UI》是一本由Adam Wathan和Steve Schoger合著的设计书,主要面向开发者,帮助他们在不具备专业设计背景的情况下也能提升UI设计的质量。这本书提供了实用的设计建议和技巧,帮助开发者在日常工作中更好...
**PHP Refactoring Browser详解** PHP Refactoring Browser是一款专为PHP开发者设计的代码重构工具,它致力于帮助程序员在进行代码优化和改进时,确保过程的安全性和准确性。重构是软件开发中的一个重要环节,它...
### Refactoring-to-Pattern #### 书本概览与核心理念 《Refactoring-to-Pattern》这本书探讨了重构(refactoring)与模式(pattern)之间的结合应用,旨在帮助软件开发者改进现有代码的设计,并通过模式来解决...
Refactoring is an effective way to quickly uncover problematic code and fix it. In this first book to provide a hands-on approach to refactoring in C# and ASP.NET, you’ll discover to apply ...
系统重构架构设计,A guide to refactoring, the process of changing a software system so that it does not alter the external behavior of the code yet improves its internal structure, for professional ...
### Refactoring:改进现有代码的设计 #### 知识点概览 - **重构定义与目的** - **重构的背景** - **重构实例演示** - **重构步骤** - **重构工具介绍** - **重构最佳实践** #### 重构定义与目的 重构...
### xUnit Test Patterns – Refactoring Test Code #### 概述 《xUnit测试模式——测试码重构》是一本深入探讨单元测试模式的书籍,通过详细的内容帮助开发者理解并改进单元测试的方法与技巧。本书覆盖了多种不同...
标题与描述:“Refactoring_2_Pattern” 该文档由Joshua Kerievsky撰写,版本为1.13,详细介绍了如何通过重构将代码优化至设计模式(Design Pattern)。这是一份长达87页的全面指南,涵盖了多种重构技术,旨在帮助...
### Refactoring in Ruby #### 知识点概览 本文将深入探讨《Refactoring In Ruby》一书中提及的各种代码重构模式及其应用场景。该书由Lee Bogdanoff编撰,是Ruby开发人员进行代码优化和改进的重要参考。我们将逐一...
UI设计(UserInterfaceDesign),即界面设计,是指对软件的人机交互、操作逻辑、界面美观的整体设计。它可以分为实体UI和虚拟UI两类,互联网中所提及的UI设计即是虚拟UI。 好的UI设计不仅可以让软件变得更有个性、有...
This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape.Refactoring, Second Edition,features an updated catalog of refactorings and includes ...
Refactoring2-free-chapter_cn
**Refactoring思想与实践** 在软件开发过程中,代码质量是至关重要的。Refactoring,中文可译为重构,是一种持续改进代码质量的过程,旨在提升代码的可读性、可维护性和可扩展性,而不改变其外部行为。...