garnierjm-dry-report 0.1 → 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -5,8 +5,8 @@ require 'rake/gempackagetask'
5
5
  require 'spec/rake/spectask'
6
6
 
7
7
  spec = Gem::Specification.new do |s|
8
- s.name = 'dont_repeat_yourself'
9
- s.version = '0.0.1'
8
+ s.name = 'garnierjm-dry-report'
9
+ s.version = '0.1'
10
10
  s.has_rdoc = false
11
11
  s.summary = 'Generate duplicate lines report'
12
12
  s.description = s.summary
data/TODO CHANGED
@@ -1,26 +1,28 @@
1
1
  Must Have:
2
2
 
3
- Dev Tasks:
4
- - add gemspec syntax with dependencies
5
- - publish verion 0.1 on github with http://gems.github.com/ ,
6
- - add specs for Rails plugin
7
- - delete project on rubyforge and communicate about it.
8
- - update http://github.com/garnierjm/dry-report/wikis/home
3
+ Dev Tasks:
4
+ - set up CI server http://runcoderun.com/github
5
+ - DRY plugin source code
6
+ - fix specs on plugin repo
7
+ - clean gem code, do not delete crontab plugin!
8
+ - update http://github.com/garnierjm/dry-report/wikis/home & README (rename it to Textile?)
9
+ - delete project on rubyforge
10
+ - communicate: email mailing lists ruby & rails
9
11
  - Add an option for separating HTML/CSS related reports, from JS ones and from Ruby ones.
10
- - add geminstaller dependency check (phillipe style) in the rake file:
11
- hoe, syntax, rspec, rake, java
12
+ - add geminstaller dependency check (phillipe style) in the rake file to run the specs:
13
+ hoe, syntax, rspec, rake
12
14
 
13
- Communication Tasks:
14
- - new screencast with Netbeans + Autotest + DRY
15
+ Communication Tasks:
15
16
  - publicize in blogs and plugin sites:
16
17
  . Rails wiki
17
18
  . Rails mailing list, ruby mailing list, citcon mailing list
18
19
  . 2 other Rails plugins sites
19
20
  . wikipedia DRY (also add Simian)
20
- . blogs : http://www.google.com/search?q=DRY+Rails&esrch=BetaShortcu
21
+ . blogs : http://www.google.com/search?q=DRY+Rails&esrch=BetaShortcu
22
+ . Rails
21
23
 
22
24
  Nice to have:
23
-
25
+ - new screencast with Netbeans + Autotest + DRY
24
26
  - UML Class & Sequence Diagrams (generated?)
25
27
  - Aptana RadRails report, vim report, other report
26
28
  - Use RR for mocks Reg exp to convert RSpec mocks to RR mocks: dont_allow(@user) do |m| m.$1 end
@@ -1,7 +1,7 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
2
2
 
3
3
  require 'dont_repeat_yourself/cli'
4
+ require 'dont_repeat_yourself/unit_testing_helpers'
4
5
 
5
- module DontRepeatYourself
6
-
6
+ module DontRepeatYourself
7
7
  end
@@ -3,13 +3,7 @@ require 'optparse'
3
3
 
4
4
  module DontRepeatYourself
5
5
  class CLI
6
-
7
- ### Define methods for generating a DRY *_rails_report for Rails project where plugin is installed
8
- DEFAULT_REPORT_DESC = "display the default plain report"
9
- NETBEANS_REPORT_DESC = "display the report in the Output window of the Netbeans IDE (Ctrl+4)"
10
- HTML_REPORT_DESC = "generate an DRY_report.html file in the project root folder"
11
- TEXTMATE_REPORT_DESC = "to generate an html report with links which open files in the Textmate editor"
12
-
6
+
13
7
  class << self
14
8
 
15
9
  def execute
@@ -70,7 +70,7 @@ module DontRepeatYourself
70
70
  report << report_body.gsub(/TWO_SPACE_CHARS/, "&nbsp;&nbsp;").gsub(/\n/, "</br>\n")
71
71
  report << report_footer
72
72
  end
73
-
73
+
74
74
  def format_duplicate_lines_snippet(block)
75
75
  starts = block.line_number_of_first_duplicate_line
76
76
  ends = block.line_number_of_last_duplicate_line
@@ -44,12 +44,16 @@ module DontRepeatYourself
44
44
  self
45
45
  end
46
46
 
47
+ def basedir
48
+ @simian_runner.basedir
49
+ end
50
+
47
51
  def report
48
52
  DontRepeatYourself::FormatterFactory.create_report(@report_type, run_simian)
49
53
  end
50
54
 
51
55
  # TODO Not very readable: you have to read the code of run_simian to understand
52
- def dry?
56
+ def is_dry?
53
57
  run_simian.duplicate_line_count <= @maximum_number_of_duplicate_lines_i_want_in_my_project
54
58
  end
55
59
 
@@ -5,18 +5,9 @@ require 'test/unit/assertions'
5
5
  module DontRepeatYourself
6
6
 
7
7
  module UnitTestingHelpers
8
-
9
- # module RubyAndRailsProjectHelpers
8
+
10
9
  module RubyProjectHelpers
11
- # Helpers
12
- # def ruby_code_in_rails_plugin(plugin_name)
13
- # DontRepeatYourself::RailsPluginProjectReporter.new(plugin_name)
14
- # end
15
- #
16
- # def rails_application
17
- # DontRepeatYourself::RailsProjectReporter.new
18
- # end
19
-
10
+
20
11
  def ruby_project(project_path)
21
12
  DontRepeatYourself::RubyProjectReporter.new(project_path)
22
13
  end
@@ -28,7 +19,7 @@ module DontRepeatYourself
28
19
  include DontRepeatYourself::UnitTestingHelpers::RubyProjectHelpers
29
20
 
30
21
  def assert_dry(project)
31
- assert(project.dry?, project.failure_message)
22
+ assert(project.is_dry?, project.failure_message)
32
23
  end
33
24
 
34
25
  end
@@ -39,11 +30,11 @@ module DontRepeatYourself
39
30
 
40
31
  include DontRepeatYourself::UnitTestingHelpers::RubyProjectHelpers
41
32
 
42
- class BeDRY
33
+ class BeDRYMatcher
43
34
 
44
35
  def matches?(project)
45
36
  @project = project
46
- @project.dry?
37
+ @project.is_dry?
47
38
  end
48
39
 
49
40
  # TODO Do we really need this? It does not make a lot of sense
@@ -52,7 +43,7 @@ module DontRepeatYourself
52
43
  end
53
44
 
54
45
  def description
55
- "be " << @project.description
46
+ "follow the 'Don't Repeat Yourself' principle " << @project.description
56
47
  end
57
48
 
58
49
  def failure_message
@@ -62,8 +53,8 @@ module DontRepeatYourself
62
53
  end
63
54
 
64
55
  # Custom expectation matcher
65
- def be_dry
66
- DontRepeatYourself::UnitTestingHelpers::RSpecMatchers::BeDRY.new
56
+ def follow_the_dry_principle
57
+ DontRepeatYourself::UnitTestingHelpers::RSpecMatchers::BeDRYMatcher.new
67
58
  end
68
59
 
69
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: garnierjm-dry-report
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.1"
4
+ version: "0.2"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Michel Garnier
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-14 00:00:00 -07:00
12
+ date: 2008-11-13 00:00:00 -08:00
13
13
  default_executable: dry-report
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency