public
Description: gem / Rails plugin, generate a report detailing duplicate lines in your ruby project with outputs for TextMate, Netbeans and also in HTML
Homepage: http://21croissants.blogspot.com/2008/03/dry.html
Clone URL: git://github.com/garnierjm/dry-report.git
Search Repo:
Click here to lend your support to: dry-report and make a donation at www.pledgie.com !
Jean-Michel Garnier (author)
Thu May 29 06:39:56 -0700 2008
dry-report / rails_plugin / vendor / plugins / dont_repeat_yourself
name age message
..
folder MIT-LICENSE Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
folder README Thu May 08 09:22:10 -0700 2008 lots of refactoring! Still learning git [Jean-Michel Garnier]
folder Rakefile Mon May 12 13:41:23 -0700 2008 More cleaning in the code [Jean-Michel Garnier]
folder SIMIAN-LICENSE Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
folder TODO Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder config/ Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
folder coverage/ Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder init.rb Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
folder install.rb Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder lib/ Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder logo_dry.jpg Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
folder nbproject/ Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder rails2_duplicate_lines_html_report.rb Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder rails_2_0_2_DRY_report.html Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder rspec_duplicate_lines_html_report.rb Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
folder spec/ Thu May 29 06:39:56 -0700 2008 backup [Jean-Michel Garnier]
folder tasks/ Mon May 12 13:21:15 -0700 2008 All specs pass after Refactoring [Jean-Michel Garnier]
folder uninstall.rb Mon Apr 21 05:20:00 -0700 2008 firt commit, moving to github [Jean-Michel Garnier]
README
= 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 (c) 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

* include unit tests (specs!) 
* run “rake spec” on your patched source
* Use git, fork http://github.com/garnierjm/dry-report/tree/master/rails_plugin/vendor/plugins/dont_repeat_yourself/
* Contact me at http://21croissants.com/contact

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