`
CaiDeHen
  • 浏览: 94271 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

#101 Refactoring Out Helper Object

 
阅读更多
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 Ruby:关键知识点解析 #### 一、Refactoring 的意义与重要性 在软件开发过程中,重构(Refactoring)是一种重要的维护手段和技术实践。它指的是在不改变软件外部行为的前提下,对代码进行结构上的...

    Refactoring to Patterns

    ### Refactoring to Patterns #### 重要概念:Refactoring(重构) **重构**是一种软件开发过程中常用的技巧,旨在改进现有代码结构而不改变其外部行为。这一过程可以帮助开发者提高代码的可读性和可维护性,同时...

    重构(Refactoring)英文版

    - **引入参数对象(Introduce Parameter Object)**:当一个方法接受多个参数时,可以创建一个新的类来封装这些参数,提高代码的可读性和可维护性。 #### 五、重构工具 随着技术的发展,现在有许多工具可以帮助...

    Refactoring To Patterns

    ### Refactoring to Patterns #### 一、概述 《Refactoring To Patterns》这本书由Joshua Kerievsky编写,是关于重构技术与设计模式相结合的重要参考资料。本书深入探讨了如何通过重构来实现更好的软件设计,特别...

    重构界面 Refactoring ui 中文版

    《Refactoring UI》是一本由Adam Wathan和Steve Schoger合著的设计书,主要面向开发者,帮助他们在不具备专业设计背景的情况下也能提升UI设计的质量。这本书提供了实用的设计建议和技巧,帮助开发者在日常工作中更好...

    PHP Refactoring Browser.zip

    **PHP Refactoring Browser详解** PHP Refactoring Browser是一款专为PHP开发者设计的代码重构工具,它致力于帮助程序员在进行代码优化和改进时,确保过程的安全性和准确性。重构是软件开发中的一个重要环节,它...

    Refactoring-to-pattern

    ### Refactoring-to-Pattern #### 书本概览与核心理念 《Refactoring-to-Pattern》这本书探讨了重构(refactoring)与模式(pattern)之间的结合应用,旨在帮助软件开发者改进现有代码的设计,并通过模式来解决...

    Professional Refactoring in C# & ASP.NET

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

    Refactoring

    系统重构架构设计,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-Presentation-from-JavaOne

    ### Refactoring:改进现有代码的设计 #### 知识点概览 - **重构定义与目的** - **重构的背景** - **重构实例演示** - **重构步骤** - **重构工具介绍** - **重构最佳实践** #### 重构定义与目的 重构...

    xUnit Test.Patterns Refactoring Test Code

    ### xUnit Test Patterns – Refactoring Test Code #### 概述 《xUnit测试模式——测试码重构》是一本深入探讨单元测试模式的书籍,通过详细的内容帮助开发者理解并改进单元测试的方法与技巧。本书覆盖了多种不同...

    Refactoring_2_Patter

    标题与描述:“Refactoring_2_Pattern” 该文档由Joshua Kerievsky撰写,版本为1.13,详细介绍了如何通过重构将代码优化至设计模式(Design Pattern)。这是一份长达87页的全面指南,涵盖了多种重构技术,旨在帮助...

    Refactoring In Ruby

    ### Refactoring in Ruby #### 知识点概览 本文将深入探讨《Refactoring In Ruby》一书中提及的各种代码重构模式及其应用场景。该书由Lee Bogdanoff编撰,是Ruby开发人员进行代码优化和改进的重要参考。我们将逐一...

    Refactoring UI v1.0.1.pdf

    UI设计(UserInterfaceDesign),即界面设计,是指对软件的人机交互、操作逻辑、界面美观的整体设计。它可以分为实体UI和虚拟UI两类,互联网中所提及的UI设计即是虚拟UI。 好的UI设计不仅可以让软件变得更有个性、有...

    Refactoring: Improving the Design of Existing Code 第二版

    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.pdf

    Refactoring2-free-chapter_cn

    Refactoring思想和实践

    **Refactoring思想与实践** 在软件开发过程中,代码质量是至关重要的。Refactoring,中文可译为重构,是一种持续改进代码质量的过程,旨在提升代码的可读性、可维护性和可扩展性,而不改变其外部行为。...

Global site tag (gtag.js) - Google Analytics