endlessruby 0.0.1
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/.gemtest +0 -0
- data/History.txt +4 -0
- data/Manifest.txt +30 -0
- data/README.rdoc +53 -0
- data/Rakefile +11 -0
- data/bin/endlessruby +5 -0
- data/lib/endlessruby/extensions.rb +75 -0
- data/lib/endlessruby/main.rb +124 -0
- data/lib/endlessruby.rb +243 -0
- data/spec/blank_line_spec.rb +24 -0
- data/spec/build_self_spec.rb +52 -0
- data/spec/comment_spec.rb +64 -0
- data/spec/concrete_examples/case_1_simply_test_case.er +28 -0
- data/spec/concrete_examples/case_1_simply_test_case.rb +28 -0
- data/spec/concrete_examples_spec.rb +53 -0
- data/spec/endlessruby_spec.rb +10 -0
- data/spec/here_document_spec.rb +60 -0
- data/spec/require_spec.rb +29 -0
- data/spec/semicolon_spec.rb +17 -0
- data/spec/simply_spec.rb +589 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +40 -0
- data/spec/test_data/er_omission.er +6 -0
- data/spec/test_data/file.er +6 -0
- data/spec/test_data/rb_omission.rb +8 -0
- data/spec/test_data/ruby_script.rb +8 -0
- data/src/endlessruby/extensions.er +62 -0
- data/src/endlessruby/main.er +97 -0
- data/src/endlessruby.er +213 -0
- data/src/er.er +5 -0
- data/tasks/rspec.rake +11 -0
- data/test/test_helpers.rb +12 -0
- data/test/test_require.rb +31 -0
- data/test/test_simply.rb +173 -0
- data/test/test_use_end_case.rb +81 -0
- metadata +149 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
ROOT = File.dirname(File.dirname(File.expand_path(__FILE__)))
|
2
|
+
|
3
|
+
require "test/unit"
|
4
|
+
require "#{ROOT}/lib/EndlessRuby"
|
5
|
+
class TestEndlessRuby < Test::Unit::TestCase
|
6
|
+
|
7
|
+
include EndlessRuby
|
8
|
+
|
9
|
+
def setup
|
10
|
+
end
|
11
|
+
|
12
|
+
def er2rb_right_output? want_output, input
|
13
|
+
assert_equal want_output, ER2RB(input)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_ereval
|
17
|
+
assert_equal "hello", ereval(<<ER)
|
18
|
+
"hello"
|
19
|
+
ER
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
require "#{ROOT}/test/test_helpers"
|
25
|
+
require "#{ROOT}/test/test_simply"
|
26
|
+
require "#{ROOT}/test/test_require"
|
27
|
+
require "#{ROOT}/test/test_use_end_case"
|
28
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
ROOT = File.dirname(File.dirname(File.expand_path(__FILE__)))
|
2
|
+
|
3
|
+
require "test/unit"
|
4
|
+
require "#{ROOT}/lib/EndlessRuby"
|
5
|
+
class TestEndlessRuby < Test::Unit::TestCase
|
6
|
+
|
7
|
+
include EndlessRuby
|
8
|
+
|
9
|
+
def setup
|
10
|
+
end
|
11
|
+
|
12
|
+
def er2rb_right_output? want_output, input
|
13
|
+
assert_equal want_output, ER2RB(input)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_ereval
|
17
|
+
assert_equal "hello", ereval(<<ER)
|
18
|
+
"hello"
|
19
|
+
ER
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
require "#{ROOT}/test/test_helpers"
|
25
|
+
require "#{ROOT}/test/test_simply"
|
26
|
+
require "#{ROOT}/test/test_require"
|
27
|
+
require "#{ROOT}/test/test_use_end_case"
|
28
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe "concrete examples" do
|
4
|
+
|
5
|
+
spec = File.dirname(__FILE__)
|
6
|
+
examples = %w[
|
7
|
+
concrete_examples/case_1_simply_test_case
|
8
|
+
]
|
9
|
+
|
10
|
+
examples.each do |_case|
|
11
|
+
begin
|
12
|
+
er = open File.join(spec, "#{_case}.er")
|
13
|
+
rb = open File.join(spec, "#{_case}.rb")
|
14
|
+
rb_s = ERSpecHelper.chomp rb.read
|
15
|
+
er_s = er.read
|
16
|
+
it "must can compile #{_case}.er to #{_case}.rb" do
|
17
|
+
ER2RB(er_s).should == rb_s
|
18
|
+
end
|
19
|
+
ensure
|
20
|
+
er.close
|
21
|
+
rb.close
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "discover bugs from concrete examples" do
|
28
|
+
|
29
|
+
it "the bug reappear when that contains spaces for the next end from the last breaking indentation" do
|
30
|
+
ER2RB(<<DEFINE).should ==
|
31
|
+
class TestEndlessRuby < Test::Unit::TestCase
|
32
|
+
|
33
|
+
include EndlessRuby
|
34
|
+
|
35
|
+
def setup
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
DEFINE
|
40
|
+
<<DEFINE.chomp!
|
41
|
+
class TestEndlessRuby < Test::Unit::TestCase
|
42
|
+
|
43
|
+
include EndlessRuby
|
44
|
+
|
45
|
+
def setup
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
DEFINE
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
require "simply_spec"
|
4
|
+
require "comment_spec"
|
5
|
+
require "blank_line_spec"
|
6
|
+
require "here_document_spec"
|
7
|
+
require "require_spec"
|
8
|
+
require "build_self_spec"
|
9
|
+
require "concrete_examples_spec"
|
10
|
+
require "semicolon_spec"
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe "here document case" do
|
4
|
+
|
5
|
+
it "CASE 1" do
|
6
|
+
ER2RB(<<DEFINE).should ==
|
7
|
+
def method
|
8
|
+
src = <<SRC
|
9
|
+
hello world
|
10
|
+
SRC
|
11
|
+
DEFINE
|
12
|
+
<<DEFINE.chomp!
|
13
|
+
def method
|
14
|
+
src = <<SRC
|
15
|
+
hello world
|
16
|
+
SRC
|
17
|
+
end
|
18
|
+
DEFINE
|
19
|
+
end
|
20
|
+
|
21
|
+
it "CASE 2" do
|
22
|
+
ER2RB(<<DEFINE).should ==
|
23
|
+
def method
|
24
|
+
src = <<-SRC
|
25
|
+
hello world
|
26
|
+
SRC
|
27
|
+
def method2
|
28
|
+
pass
|
29
|
+
DEFINE
|
30
|
+
<<DEFINE.chomp!
|
31
|
+
def method
|
32
|
+
src = <<-SRC
|
33
|
+
hello world
|
34
|
+
SRC
|
35
|
+
end
|
36
|
+
def method2
|
37
|
+
pass
|
38
|
+
end
|
39
|
+
DEFINE
|
40
|
+
end
|
41
|
+
|
42
|
+
it "CASE 3" do
|
43
|
+
ER2RB(<<DEFINE).should ==
|
44
|
+
def method
|
45
|
+
src = <<SRC
|
46
|
+
hello world
|
47
|
+
SRC
|
48
|
+
SRC
|
49
|
+
DEFINE
|
50
|
+
<<DEFINE.chomp!
|
51
|
+
def method
|
52
|
+
src = <<SRC
|
53
|
+
hello world
|
54
|
+
SRC
|
55
|
+
SRC
|
56
|
+
end
|
57
|
+
DEFINE
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe "require" do
|
4
|
+
|
5
|
+
it "require the file" do
|
6
|
+
require 'test_data/file.er'
|
7
|
+
$test_data.should == "file"
|
8
|
+
TestData.test_data.should == "file"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "require the 'er' omission file" do
|
12
|
+
require 'test_data/er_omission'
|
13
|
+
$test_data.should == "er omission"
|
14
|
+
TestData.test_data.should == "er omission"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "require the ruby script 'rb' omission" do
|
18
|
+
require 'test_data/rb_omission'
|
19
|
+
$test_data.should == "rb omission"
|
20
|
+
TestData.test_data.should == "rb omission"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "require the ruby script" do
|
24
|
+
require 'test_data/ruby_script.rb'
|
25
|
+
$test_data.should == "ruby script"
|
26
|
+
TestData.test_data.should == "ruby script"
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe "split with semicolon lines is inner lines" do
|
4
|
+
|
5
|
+
it "example" do
|
6
|
+
ER2RB(<<DEFINE).should ==
|
7
|
+
def method; statements; end
|
8
|
+
DEFINE
|
9
|
+
<<DEFINE.chomp!
|
10
|
+
def method
|
11
|
+
statements
|
12
|
+
end
|
13
|
+
DEFINE
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|