rcodetools 0.8.0.0 → 0.8.1.0

Sign up to get free protection for your applications and to get access to all the features.
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