Plugins - dont_repeat_yourself

StarAdd to favorites

Don’t Repeat Yourself plugin

Based on Simian (Similarity Analyser) by Simon Harris from RedHill Consulting, see http://www.redhillconsulting.com.au/products/simian/ Copyright © 2003-08 RedHill Consulting Pty. Ltd. All rights reserved.

Report the duplicate lines in your code, integrated with Textmate and Netbeans.

Install

Dependencies:

  • java executable in the path
  • gem install syntax

Install the plugin: ruby script/plugin install http://dryplugin.rubyforge.org/svn/vendor/plugins/dont_repeat_yourself/

Description

Watch the 1 min screencast at http://www.21croissants.com/files/dry_screencast.html

There are two ways of using the plugin:

  • with a Test Unit framework (Test::Unit & RSpec at the moment), to get a generate a report within your IDE

(Netbeans / Textmate) every time you run the tests

  • with rake tasks, if you don’t write tests (give it a try!) or you want to generate a report with your Continuous Integration tool.

with Test::Unit

class DryTest < Test::Unit::TestCase

  def test_should_display_duplicate_lines
    assert_DRY(rails_application.with_netbeans_reporting)
  end

end

with RSpec

require File.dirname(FILE) + ’/spec_helper’

describe "Dupplicate lines Report: Don’t Repeat Yourself" do

  it { rails_application.
      with_threshold_of_duplicate_lines(4).
      with_netbeans_reporting.
        should be_DRY }

end

Rake tasks:

  • rake dry:report:html # html, including the snippets of duplicate lines
  • rake dry:report:netbeans # Netbeans, displays the report in the Output window and contains some links which open the files
  • rake dry:report:textmate # Textmate, html report with links which open the Textmate editor

rake dry:cruise_control_artefact # Copy the HTML report to the CruiseControl artefact folder

Current Unit Test (RSpec specs) coverage is 95%. My objective is to get 100% after I receive some feedback from the beta testers ;-)

License dont_repeat_yourself plugin

MIT-LICENSE

License Simian

See ./SIMIAN-LICENSE file

Simon Harris had the same idea as me and also wrote a Rails plugin. More information in http://www.redhillonrails.org/#simian

Contribute

Contact

Contact me for feedback at http://www.21croissants.com/contact Or post a comment in http://21croissants.blogspot.com/2008/03/dry.html If I have a lot of feedbak, I’ll switch to the rubyforge forum

Jean-Michel Garnier

http://21croissants.blogspot.com/2008/03/dry.html

http://dryplugin.rubyforge.org/svn/vendor/plugins/dont_repeat_yourself/

Rails' (MIT)

  • Currently 5.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Statistics and Logs

Tags

Comments

Add a comment

Search Plugins

Query syntax

Plugins by Category

Sponsors

Rails Kits: Get Code. Get Moving.
Recruiting software

Have a comment?