rcodetools 0.8.0.0 → 0.8.1.0

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.
Files changed (112) hide show
  1. data/Rakefile +3 -3
  2. data/bin/rct-complete +1 -1
  3. data/bin/rct-doc +1 -1
  4. data/bin/rct-meth-args +1 -1
  5. data/bin/xmpfilter +1 -1
  6. data/lib/rcodetools/xmpfilter.rb +2 -2
  7. data/rcodetools.elc +0 -0
  8. data/rcodetools.gif +0 -0
  9. data/rcodetools.sxmp +0 -0
  10. data/test/attic/test_run.rb +45 -0
  11. data/test/data/attic/add_markers-input.rb +2 -0
  12. data/test/data/attic/add_markers-output.rb +2 -0
  13. data/test/data/attic/bindings-input.rb +26 -0
  14. data/test/data/attic/bindings-output.rb +31 -0
  15. data/test/data/attic/completion-input.rb +1 -0
  16. data/test/data/attic/completion-output.rb +2 -0
  17. data/test/data/attic/completion_class_info-input.rb +1 -0
  18. data/test/data/attic/completion_class_info-output.rb +10 -0
  19. data/test/data/attic/completion_class_info_no_candidates-input.rb +1 -0
  20. data/test/data/attic/completion_class_info_no_candidates-output.rb +1 -0
  21. data/test/data/attic/completion_detect_rbtest-input.rb +7 -0
  22. data/test/data/attic/completion_detect_rbtest-output.rb +2 -0
  23. data/test/data/attic/completion_detect_rbtest2-input.rb +1 -0
  24. data/test/data/attic/completion_detect_rbtest2-output.rb +2 -0
  25. data/test/data/attic/completion_emacs-input.rb +1 -0
  26. data/test/data/attic/completion_emacs-output.rb +6 -0
  27. data/test/data/attic/completion_emacs_icicles-input.rb +1 -0
  28. data/test/data/attic/completion_emacs_icicles-output.rb +6 -0
  29. data/test/data/attic/completion_in_method-input.rb +3 -0
  30. data/test/data/attic/completion_in_method-output.rb +1 -0
  31. data/test/data/attic/completion_in_method-test.rb +6 -0
  32. data/test/data/attic/completion_rbtest-input.rb +7 -0
  33. data/test/data/attic/completion_rbtest-output.rb +2 -0
  34. data/test/data/attic/doc-input.rb +1 -0
  35. data/test/data/attic/doc-output.rb +1 -0
  36. data/test/data/attic/doc_detect_rbtest-input.rb +1 -0
  37. data/test/data/attic/doc_detect_rbtest-output.rb +1 -0
  38. data/test/data/attic/doc_detect_rbtest2-input.rb +7 -0
  39. data/test/data/attic/doc_detect_rbtest2-output.rb +1 -0
  40. data/test/data/attic/doc_rbtest-input.rb +7 -0
  41. data/test/data/attic/doc_rbtest-output.rb +1 -0
  42. data/test/data/attic/no_warnings-input.rb +3 -0
  43. data/test/data/attic/no_warnings-output.rb +4 -0
  44. data/test/data/attic/refe-input.rb +1 -0
  45. data/test/data/attic/refe-output.rb +1 -0
  46. data/test/data/attic/ri-input.rb +1 -0
  47. data/test/data/attic/ri-output.rb +1 -0
  48. data/test/data/attic/ri_emacs-input.rb +1 -0
  49. data/test/data/attic/ri_emacs-output.rb +1 -0
  50. data/test/data/attic/ri_vim-input.rb +1 -0
  51. data/test/data/attic/ri_vim-output.rb +1 -0
  52. data/test/data/attic/rspec-input.rb +48 -0
  53. data/test/data/attic/rspec-output.rb +52 -0
  54. data/test/data/attic/rspec_poetry-input.rb +48 -0
  55. data/test/data/attic/rspec_poetry-output.rb +52 -0
  56. data/test/data/attic/simple_annotation-input.rb +8 -0
  57. data/test/data/attic/simple_annotation-output.rb +8 -0
  58. data/test/data/attic/unit_test-input.rb +50 -0
  59. data/test/data/attic/unit_test-output.rb +52 -0
  60. data/test/data/attic/unit_test_detect_rbtest-input.rb +50 -0
  61. data/test/data/attic/unit_test_detect_rbtest-output.rb +52 -0
  62. data/test/data/attic/unit_test_detect_rbtest2-input.rb +6 -0
  63. data/test/data/attic/unit_test_detect_rbtest2-output.rb +6 -0
  64. data/test/data/attic/unit_test_poetry-input.rb +50 -0
  65. data/test/data/attic/unit_test_poetry-output.rb +52 -0
  66. data/test/data/attic/unit_test_rbtest-input.rb +6 -0
  67. data/test/data/attic/unit_test_rbtest-output.rb +6 -0
  68. data/test/data/rct-complete-TDC/completion_in_method__testmethod.taf +17 -0
  69. data/test/data/rct-complete-TDC/completion_in_method__testscript.taf +17 -0
  70. data/test/data/rct-complete-TDC/completion_in_method__wrong_testmethod.taf +17 -0
  71. data/test/data/rct-complete/completion.taf +9 -0
  72. data/test/data/rct-complete/completion_class_info.taf +9 -0
  73. data/test/data/rct-complete/completion_class_info_no_candidates.taf +8 -0
  74. data/test/data/rct-complete/completion_detect_rbtest.taf +15 -0
  75. data/test/data/rct-complete/completion_detect_rbtest2.taf +9 -0
  76. data/test/data/rct-complete/completion_emacs.taf +13 -0
  77. data/test/data/rct-complete/completion_emacs_icicles.taf +13 -0
  78. data/test/data/rct-complete/completion_rbtest.taf +15 -0
  79. data/test/data/rct-doc/doc.taf +8 -0
  80. data/test/data/rct-doc/doc_detect_rbtest.taf +8 -0
  81. data/test/data/rct-doc/doc_detect_rbtest2.taf +14 -0
  82. data/test/data/rct-doc/doc_rbtest.taf +14 -0
  83. data/test/data/rct-doc/refe.taf +8 -0
  84. data/test/data/rct-doc/ri.taf +8 -0
  85. data/test/data/rct-doc/ri_emacs.taf +8 -0
  86. data/test/data/rct-doc/ri_vim.taf +8 -0
  87. data/test/data/xmpfilter/add_markers.taf +10 -0
  88. data/test/data/xmpfilter/bindings.taf +63 -0
  89. data/test/data/xmpfilter/comment_out.taf +22 -0
  90. data/test/data/xmpfilter/exception.taf +14 -0
  91. data/test/data/xmpfilter/expectations.taf +54 -0
  92. data/test/data/xmpfilter/last_match.taf +18 -0
  93. data/test/data/xmpfilter/mult.rb +9 -0
  94. data/test/data/xmpfilter/multi_line_annotation_1.taf +22 -0
  95. data/test/data/xmpfilter/multi_line_annotation_2.taf +24 -0
  96. data/test/data/xmpfilter/multi_line_annotation_3.taf +20 -0
  97. data/test/data/xmpfilter/multi_line_annotation_4.taf +22 -0
  98. data/test/data/xmpfilter/multi_line_annotation_5.taf +34 -0
  99. data/test/data/xmpfilter/no_warnings.taf +13 -0
  100. data/test/data/xmpfilter/nospace.taf +16 -0
  101. data/test/data/xmpfilter/rspec.taf +106 -0
  102. data/test/data/xmpfilter/rspec_poetry.taf +106 -0
  103. data/test/data/xmpfilter/simple_annotation.taf +22 -0
  104. data/test/data/xmpfilter/unit_test.taf +108 -0
  105. data/test/data/xmpfilter/unit_test_detect_rbtest.taf +108 -0
  106. data/test/data/xmpfilter/unit_test_detect_rbtest2.taf +18 -0
  107. data/test/data/xmpfilter/unit_test_poetry.taf +108 -0
  108. data/test/data/xmpfilter/unit_test_rbtest.taf +18 -0
  109. data/test/data/xmpfilter/width.taf +16 -0
  110. data/test/tmp_functional.rb +162 -0
  111. data/test/tmp_run.rb +66 -0
  112. metadata +127 -22
data/Rakefile CHANGED
@@ -40,7 +40,7 @@ PKG_FILES = FileList[
40
40
  "README", "README.*", "THANKS",
41
41
  "Rakefile", "Rakefile.method_analysis",
42
42
  "setup.rb",
43
- "test/**/*.rb",
43
+ "test/**/*.rb","test/**/*.taf"
44
44
  ]
45
45
 
46
46
  begin
@@ -92,9 +92,9 @@ EOF
92
92
 
93
93
  end
94
94
 
95
- task :gem #=> [:test]
95
+ task :gem => [:test]
96
96
  Rake::GemPackageTask.new(Spec) do |p|
97
- #p.need_tar = true
97
+ p.need_tar_gz = true
98
98
  end
99
99
 
100
100
  rescue LoadError
@@ -1,4 +1,4 @@
1
- #! /home/mfp/ruby1.8/bin/ruby
1
+ #! /usr/local/bin/ruby
2
2
  require 'rcodetools/xmpfilter'
3
3
  require 'rcodetools/completion'
4
4
  require 'rcodetools/options'
@@ -1,4 +1,4 @@
1
- #! /home/mfp/ruby1.8/bin/ruby
1
+ #! /usr/local/bin/ruby
2
2
  require 'rcodetools/xmpfilter'
3
3
  require 'rcodetools/doc'
4
4
  require 'rcodetools/options'
@@ -1,4 +1,4 @@
1
- #! /home/mfp/ruby1.8/bin/ruby
1
+ #! /usr/local/bin/ruby
2
2
  # Copyright (c)
3
3
  # 2006-2007 Mauricio Fernandez <mfp@acm.org> http://eigenclass.org
4
4
  # 2006-2007 rubikitch <rubikitch@ruby-lang.org> http://www.rubyist.net/~rubikitch/
@@ -1,4 +1,4 @@
1
- #! /home/mfp/ruby1.8/bin/ruby
1
+ #! /usr/local/bin/ruby
2
2
  require 'rcodetools/xmpfilter'
3
3
  require 'rcodetools/options'
4
4
 
@@ -11,7 +11,7 @@ require 'tmpdir'
11
11
  module Rcodetools
12
12
 
13
13
  class XMPFilter
14
- VERSION = "0.8.0"
14
+ VERSION = "0.8.1"
15
15
 
16
16
  MARKER = "!XMP#{Time.new.to_i}_#{Process.pid}_#{rand(1000000)}!"
17
17
  XMP_RE = Regexp.new("^" + Regexp.escape(MARKER) + '\[([0-9]+)\] (=>|~>|==>) (.*)')
@@ -225,7 +225,7 @@ end || #{v}
225
225
  exe_line = <<-EOF.map{|l| l.strip}.join(";")
226
226
  $stdout.reopen('#{File.expand_path(stdout.path)}', 'w')
227
227
  $stderr.reopen('#{File.expand_path(stderr.path)}', 'w')
228
- $0.replace '#{File.expand_path(stdin.path)}'
228
+ $0 = '#{File.expand_path(stdin.path)}'
229
229
  ARGV.replace(#{@options.inspect})
230
230
  load #{File.expand_path(stdin.path).inspect}
231
231
  #{@evals.join(";")}
Binary file
Binary file
Binary file
@@ -0,0 +1,45 @@
1
+ require 'test/unit'
2
+ require 'rcodetools/xmpfilter'
3
+ require 'rcodetools/xmptestunitfilter'
4
+ require 'rcodetools/completion'
5
+ require 'rcodetools/doc'
6
+ require 'rcodetools/options'
7
+ require 'stringio'
8
+
9
+ class TestRun < Test::Unit::TestCase
10
+ include Rcodetools
11
+ DIR = File.expand_path(File.dirname(__FILE__))
12
+
13
+ tests = {
14
+ :simple_annotation => {:klass => XMPFilter},
15
+ :unit_test => {:klass => XMPTestUnitFilter},
16
+ :rspec => {:klass => XMPRSpecFilter, :interpreter => "spec"},
17
+ :rspec_poetry => {:klass => XMPRSpecFilter, :interpreter => "spec", :use_parentheses => false},
18
+ :no_warnings => {:klass => XMPFilter, :warnings => false},
19
+ :bindings => {:klass => XMPTestUnitFilter, :use_parentheses => false},
20
+ :unit_test_poetry => {:klass => XMPTestUnitFilter, :use_parentheses => false},
21
+ :add_markers => {:klass => XMPAddMarkers},
22
+
23
+ :completion => {:klass => XMPCompletionFilter, :lineno => 1},
24
+ :completion_emacs => {:klass => XMPCompletionEmacsFilter, :lineno => 1},
25
+ :completion_emacs_icicles => {:klass => XMPCompletionEmacsIciclesFilter, :lineno => 1},
26
+ :completion_class_info => {:klass => XMPCompletionClassInfoFilter, :lineno => 1},
27
+ :completion_class_info_no_candidates => {:klass => XMPCompletionClassInfoFilter, :lineno => 1},
28
+
29
+ :doc => {:klass => XMPDocFilter, :lineno => 1},
30
+ :refe => {:klass => XMPReFeFilter, :lineno => 1},
31
+ :ri => {:klass => XMPRiFilter, :lineno => 1},
32
+ :ri_emacs => {:klass => XMPRiEmacsFilter, :lineno => 1},
33
+ :ri_vim => {:klass => XMPRiVimFilter, :lineno => 1},
34
+
35
+ }
36
+ tests.each_pair do |test, opts|
37
+ define_method("test_#{test}") do
38
+ inputfile = "#{DIR}/data/#{test}-input.rb"
39
+ outputfile = "#{DIR}/data/#{test}-output.rb"
40
+ sio = StringIO.new
41
+ sio.puts opts[:klass].run(File.read(inputfile), DEFAULT_OPTIONS.merge(opts))
42
+ assert_equal(File.read(outputfile), sio.string)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,2 @@
1
+ 1+1
2
+ 2+3
@@ -0,0 +1,2 @@
1
+ 1+1 # =>
2
+ 2+3 # =>
@@ -0,0 +1,26 @@
1
+
2
+ require 'test/unit'
3
+
4
+ class TestFoo < Test::Unit::TestCase
5
+ def setup
6
+ @o = []
7
+ end
8
+
9
+ def test_foo
10
+ a = 1
11
+ b = a
12
+ b # =>
13
+ end
14
+
15
+ def test_arr
16
+ last = 1
17
+ @o << last
18
+ @o.last # =>
19
+ end
20
+
21
+ def test_bar
22
+ a = b = c = 1
23
+ d = a
24
+ d # =>
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+
2
+ require 'test/unit'
3
+
4
+ class TestFoo < Test::Unit::TestCase
5
+ def setup
6
+ @o = []
7
+ end
8
+
9
+ def test_foo
10
+ a = 1
11
+ b = a
12
+ assert_equal a, b
13
+ assert_equal 1, b
14
+ end
15
+
16
+ def test_arr
17
+ last = 1
18
+ @o << last
19
+ assert_equal last, @o.last
20
+ assert_equal 1, @o.last
21
+ end
22
+
23
+ def test_bar
24
+ a = b = c = 1
25
+ d = a
26
+ assert_equal a, d
27
+ assert_equal b, d
28
+ assert_equal c, d
29
+ assert_equal 1, d
30
+ end
31
+ end
@@ -0,0 +1 @@
1
+ Array.new(3).uni
@@ -0,0 +1,2 @@
1
+ uniq
2
+ uniq!
@@ -0,0 +1 @@
1
+ Array.new(3).s
@@ -0,0 +1,10 @@
1
+ select Array#select
2
+ send Object#send
3
+ shift Array#shift
4
+ singleton_methods Object#singleton_methods
5
+ size Array#size
6
+ slice Array#slice
7
+ slice! Array#slice!
8
+ sort Array#sort
9
+ sort! Array#sort!
10
+ sort_by Enumerable#sort_by
@@ -0,0 +1 @@
1
+ Array.new(3).nonexisten
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ =begin test_bar
3
+ assert_equal "BAR", bar("bar")
4
+ =end
5
+ def bar(s)
6
+ s.upca
7
+ end
@@ -0,0 +1,2 @@
1
+ upcase
2
+ upcase!
@@ -0,0 +1 @@
1
+ Array.new(3).uni
@@ -0,0 +1 @@
1
+ Array.new(3).uni
@@ -0,0 +1,6 @@
1
+ (progn
2
+ (setq rct-method-completion-table '(("uniq") ("uniq!") ))
3
+ (setq alist '(("uniq\t[Array#uniq]") ("uniq!\t[Array#uniq!]") ))
4
+ (setq pattern "uni")
5
+ (try-completion pattern rct-method-completion-table nil)
6
+ )
@@ -0,0 +1,6 @@
1
+ (progn
2
+ (setq rct-method-completion-table '(("div\t[Fixnum#div]") ("divmod\t[Fixnum#divmod]") ))
3
+ (setq alist '(("div" . "Fixnum#div")("divmod" . "Fixnum#divmod")))
4
+ (setq pattern "div")
5
+ (setq klass "Fixnum")
6
+ )
@@ -0,0 +1,3 @@
1
+ def fooz
2
+ [].lengt
3
+ end
@@ -0,0 +1,6 @@
1
+ require 'test/unit'
2
+ class TestFooz < Test::Unit::TestCase
3
+ def test_fooz
4
+ assert_equal(0, fooz)
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ =begin test_bar
3
+ assert_equal "BAR", bar("bar")
4
+ =end
5
+ def bar(s)
6
+ s.upca
7
+ end
@@ -0,0 +1,2 @@
1
+ upcase
2
+ upcase!
@@ -0,0 +1 @@
1
+ [].length
@@ -0,0 +1 @@
1
+ Array#length
@@ -0,0 +1 @@
1
+ Array#length
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ =begin test_bar
3
+ assert_equal "BAR", bar("bar")
4
+ =end
5
+ def bar(s)
6
+ s.upcase
7
+ end
@@ -0,0 +1 @@
1
+ String#upcase
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ =begin test_bar
3
+ assert_equal "BAR", bar("bar")
4
+ =end
5
+ def bar(s)
6
+ s.upcase
7
+ end
@@ -0,0 +1 @@
1
+ String#upcase
@@ -0,0 +1,3 @@
1
+ A = 1
2
+ A = 1
3
+ p (1)
@@ -0,0 +1,4 @@
1
+ A = 1
2
+ A = 1
3
+ p (1)
4
+ # >> 1
@@ -0,0 +1 @@
1
+ [].length
@@ -0,0 +1 @@
1
+ refe 'Array#length'
@@ -0,0 +1 @@
1
+ [].length
@@ -0,0 +1 @@
1
+ ri 'Array#length'
@@ -0,0 +1 @@
1
+ [].length
@@ -0,0 +1 @@
1
+ (rct-find-tag-or-ri "Array#length")
@@ -0,0 +1 @@
1
+ [].length
@@ -0,0 +1 @@
1
+ call RCT_find_tag_or_ri("Array#length")
@@ -0,0 +1,48 @@
1
+
2
+ class X
3
+ Y = Struct.new(:a)
4
+ def foo(b); b ? Y.new(2) : 2 end
5
+ def bar; raise "No good" end
6
+ def baz; nil end
7
+ def fubar(x); x ** 2.0 + 1 end
8
+ def babar; [1,2] end
9
+ A = 1
10
+ A = 1
11
+ end
12
+
13
+
14
+ describe "xmpfilter's expectation expansion" do
15
+ before do
16
+ @o = X.new
17
+ end
18
+
19
+ it "should expand should == expectations" do
20
+ @o.foo(true) # =>
21
+ @o.foo(true).a # =>
22
+ @o.foo(false) # =>
23
+ end
24
+
25
+ it "should expand should raise_error expectations" do
26
+ @o.bar # =>
27
+ end
28
+
29
+ it "should expand should be_nil expectations" do
30
+ @o.baz # =>
31
+ end
32
+
33
+ it "should expand correct expectations for complex values" do
34
+ @o.babar # =>
35
+ end
36
+
37
+ it "should expand should be_close expectations" do
38
+ @o.fubar(10) # =>
39
+ end
40
+ end
41
+
42
+ describe "xmpfilter's automagic binding detection" do
43
+ it "should expand should == expectations" do
44
+ a = b = c = 1
45
+ d = a
46
+ d # =>
47
+ end
48
+ end
@@ -0,0 +1,52 @@
1
+
2
+ class X
3
+ Y = Struct.new(:a)
4
+ def foo(b); b ? Y.new(2) : 2 end
5
+ def bar; raise "No good" end
6
+ def baz; nil end
7
+ def fubar(x); x ** 2.0 + 1 end
8
+ def babar; [1,2] end
9
+ A = 1
10
+ A = 1 # !> already initialized constant A
11
+ end
12
+
13
+
14
+ describe "xmpfilter's expectation expansion" do
15
+ before do
16
+ @o = X.new
17
+ end
18
+
19
+ it "should expand should == expectations" do
20
+ (@o.foo(true)).should be_a_kind_of(X::Y)
21
+ (@o.foo(true).inspect).should == ("#<struct X::Y a=2>")
22
+ (@o.foo(true).a).should == (2)
23
+ (@o.foo(false)).should == (2)
24
+ end
25
+
26
+ it "should expand should raise_error expectations" do
27
+ lambda{@o.bar}.should raise_error(RuntimeError)
28
+ end
29
+
30
+ it "should expand should be_nil expectations" do
31
+ (@o.baz).should be_nil
32
+ end
33
+
34
+ it "should expand correct expectations for complex values" do
35
+ (@o.babar).should == ([1, 2])
36
+ end
37
+
38
+ it "should expand should be_close expectations" do
39
+ (@o.fubar(10)).should be_close(101.0, 0.0001)
40
+ end
41
+ end
42
+
43
+ describe "xmpfilter's automagic binding detection" do
44
+ it "should expand should == expectations" do
45
+ a = b = c = 1
46
+ d = a
47
+ (d).should == (a)
48
+ (d).should == (b)
49
+ (d).should == (c)
50
+ (d).should == (1)
51
+ end
52
+ end