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)
Tue Aug 05 08:58:27 -0700 2008
100644 79 lines (52 sloc) 2.651 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
= 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