ruby-beautify 0.92.2 → 0.93.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/README.md +44 -13
- data/bin/rbeautify +164 -12
- data/lib/ruby-beautify.rb +0 -6
- data/lib/ruby-beautify/version.rb +1 -1
- data/ruby-beautify.gemspec +1 -1
- metadata +11 -40
- data/lib/beautifier.rb +0 -168
- data/lib/ruby-beautify/block_end.rb +0 -23
- data/lib/ruby-beautify/block_matcher.rb +0 -153
- data/lib/ruby-beautify/block_start.rb +0 -119
- data/lib/ruby-beautify/config/ruby.rb +0 -131
- data/lib/ruby-beautify/language.rb +0 -37
- data/lib/ruby-beautify/line.rb +0 -53
- data/spec/fixtures/ruby.yml +0 -408
- data/spec/rbeautify/block_matcher_spec.rb +0 -89
- data/spec/rbeautify/block_start_spec.rb +0 -51
- data/spec/rbeautify/config/ruby_spec.rb +0 -183
- data/spec/rbeautify/line_spec.rb +0 -73
- data/spec/rbeautify_spec.rb +0 -1
- data/spec/spec_helper.rb +0 -124
@@ -1,89 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
-
|
3
|
-
describe RBeautify::BlockMatcher do
|
4
|
-
|
5
|
-
describe 'class' do
|
6
|
-
describe '#parse' do
|
7
|
-
before(:each) do
|
8
|
-
@ruby = RBeautify::Language.language(:ruby)
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'should not match de' do
|
12
|
-
RBeautify::BlockMatcher.parse(@ruby, nil, 0, 'de foo', 0).should be_nil
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should match def' do
|
16
|
-
block = RBeautify::BlockMatcher.parse(@ruby, nil, 0, 'def foo', 0)
|
17
|
-
block.should_not be_nil
|
18
|
-
block.name.should == :standard
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'should be nested block' do
|
22
|
-
block = RBeautify::BlockMatcher.parse(@ruby, nil, 0, 'if {', 0)
|
23
|
-
block.should_not be_nil
|
24
|
-
block.name.should == :curly_bracket
|
25
|
-
block.parent.should_not be_nil
|
26
|
-
block.parent.name.should == :if
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should be nested block (taking into account ends)' do
|
30
|
-
block = RBeautify::BlockMatcher.parse(@ruby, nil, 0, 'if {}', 0)
|
31
|
-
block.should_not be_nil
|
32
|
-
block.name.should == :if
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'should be deeply nested block (taking into account ends)' do
|
36
|
-
block = RBeautify::BlockMatcher.parse(@ruby, nil, 0, 'def foo(bar = {})', 0)
|
37
|
-
block.should_not be_nil
|
38
|
-
block.name.should == :standard
|
39
|
-
block.parent.should be_nil
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'should current block if no started or ended blocks' do
|
43
|
-
block = RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 0, 'def', ' foo')
|
44
|
-
RBeautify::BlockMatcher.parse(@ruby, block, 0, 'a = 3', 0).should == block
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'should be newly started block if ends and starts' do
|
48
|
-
current_block = RBeautify::BlockStart.new(@ruby.matcher(:if), nil, 0, 0, 'if', ' foo')
|
49
|
-
block = RBeautify::BlockMatcher.parse(@ruby, current_block, 0, 'else', 0)
|
50
|
-
block.should_not be_nil
|
51
|
-
block.name.should == :if
|
52
|
-
block.parent.should be_nil
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should be parent block if current block ends' do
|
56
|
-
parent_block = RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 0, 'class', ' Foo')
|
57
|
-
child_block = RBeautify::BlockStart.new(@ruby.matcher(:standard), parent_block, 0, 0, 'def', ' foo')
|
58
|
-
RBeautify::BlockMatcher.parse(@ruby, child_block, 0, 'end', 0).should == parent_block
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'should remove two blocks if top of stack ends implicitly' do
|
62
|
-
parent_block = RBeautify::BlockStart.new(@ruby.matcher(:case), nil, 0, 0, 'case', ' foo')
|
63
|
-
child_block = RBeautify::BlockStart.new(@ruby.matcher(:inner_case), parent_block, 0, 0, 'when', '2')
|
64
|
-
RBeautify::BlockMatcher.parse(@ruby, child_block, 0, 'end', 0).should be_nil
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
describe '#can_nest?' do
|
70
|
-
before(:each) do
|
71
|
-
@language = mock(RBeautify::Language)
|
72
|
-
end
|
73
|
-
|
74
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/).should be_can_nest(nil) }
|
75
|
-
|
76
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/).should be_can_nest(mock('block_start', :parse_content? => true)) }
|
77
|
-
|
78
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/).should_not be_can_nest(mock('block_start', :parse_content? => false)) }
|
79
|
-
|
80
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/, :nest_except => [:bar]).should be_can_nest(nil) }
|
81
|
-
|
82
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/, :nest_except => [:foo]).should be_can_nest(mock('block_start', :name => :bar, :parse_content? => true)) }
|
83
|
-
|
84
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/, :nest_except => [:foo]).should_not be_can_nest(mock('block_start', :name => :bar, :parse_content? => false)) }
|
85
|
-
|
86
|
-
it { RBeautify::BlockMatcher.new(@language, :foo, /foo/, /bar/, :nest_except => [:bar]).should_not be_can_nest(mock('block_start', :name => :bar, :parse_content? => true)) }
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
-
|
3
|
-
describe RBeautify::BlockStart do
|
4
|
-
before(:each) do
|
5
|
-
@ruby = RBeautify::Language.language(:ruby)
|
6
|
-
end
|
7
|
-
|
8
|
-
describe 'class' do
|
9
|
-
describe '#first_common_ancestor' do
|
10
|
-
before(:each) do
|
11
|
-
@grand_parent = RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 0, 'class', ' Foo')
|
12
|
-
@parent = RBeautify::BlockStart.new(@ruby.matcher(:standard), @grand_parent, 0, 0, 'def', ' foo')
|
13
|
-
@first = RBeautify::BlockStart.new(@ruby.matcher(:standard), @parent, 0, 0, 'def', ' foo')
|
14
|
-
@second = RBeautify::BlockStart.new(@ruby.matcher(:standard), @parent, 0, 0, 'def', ' bar')
|
15
|
-
@unrelated = RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 0, 'class', ' Bar')
|
16
|
-
end
|
17
|
-
|
18
|
-
it { RBeautify::BlockStart.first_common_ancestor(@grand_parent, nil).should be_nil }
|
19
|
-
it { RBeautify::BlockStart.first_common_ancestor(@grand_parent, @unrelated).should be_nil }
|
20
|
-
it { RBeautify::BlockStart.first_common_ancestor(@grand_parent, @parent).should == @grand_parent }
|
21
|
-
it { RBeautify::BlockStart.first_common_ancestor(@grand_parent, @first).should == @grand_parent }
|
22
|
-
it { RBeautify::BlockStart.first_common_ancestor(@first, @second).should == @parent }
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '#strict_ancestor_of?' do
|
27
|
-
before(:each) do
|
28
|
-
@block = RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 'def', ' foo', 0)
|
29
|
-
end
|
30
|
-
|
31
|
-
it { @block.should_not be_strict_ancestor_of(nil) }
|
32
|
-
it { @block.should_not be_strict_ancestor_of(@block) }
|
33
|
-
it { @block.should_not be_strict_ancestor_of(RBeautify::BlockStart.new(@ruby.matcher(:if), nil, 0, 0, 'if', ' foo') ) }
|
34
|
-
it { @block.should be_strict_ancestor_of(RBeautify::BlockStart.new(@ruby.matcher(:if), @block, 0, 0, 'if', ' foo') ) }
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
describe '#total_indent_size' do
|
39
|
-
before(:each) do
|
40
|
-
@block = RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 'def', ' foo', 0)
|
41
|
-
end
|
42
|
-
|
43
|
-
it { RBeautify::BlockStart.new(@ruby.matcher(:standard), nil, 0, 0, 'def', ' foo') .total_indent_size.should == 2 }
|
44
|
-
|
45
|
-
it 'should sum with parents total indent size' do
|
46
|
-
parent = mock('parent_start_block', :total_indent_size => 4)
|
47
|
-
RBeautify::BlockStart.new(@ruby.matcher(:standard), parent, 0, 0, 'def', ' foo') .total_indent_size.should == 6
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
@@ -1,183 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
-
|
3
|
-
run_fixtures_for_language(:ruby)
|
4
|
-
|
5
|
-
describe 'Ruby' do
|
6
|
-
|
7
|
-
describe 'matchers' do
|
8
|
-
before(:each) do
|
9
|
-
@ruby = RBeautify::Language.language(:ruby)
|
10
|
-
end
|
11
|
-
|
12
|
-
describe 'standard' do
|
13
|
-
before(:each) do
|
14
|
-
@matcher = @ruby.matcher(:standard)
|
15
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, '', '')
|
16
|
-
end
|
17
|
-
|
18
|
-
it { @matcher.parse_block_start('class Foo; end', nil, 0, 0).should be_block_start_like(:standard, 0, 'class', ' Foo; end') }
|
19
|
-
it { @matcher.parse_block_start('module Foo', nil, 0, 0).should be_block_start_like(:standard, 0, 'module', ' Foo') }
|
20
|
-
it { @matcher.parse_block_start('def foo()', nil, 0, 0).should be_block_start_like(:standard, 0, 'def', ' foo()') }
|
21
|
-
it { @matcher.parse_block_start('end Foo', nil, 0, 0).should be_nil }
|
22
|
-
|
23
|
-
it { @current_block.parse_block_end('end', 0).should be_block_end_like(@current_block, 0, 'end', '') }
|
24
|
-
it { @current_block.parse_block_end(';end', 0).should be_block_end_like(@current_block, 0, ';end', '') }
|
25
|
-
it { @current_block.parse_block_end('; end', 0).should be_block_end_like(@current_block, 1, ' end', '') }
|
26
|
-
it { @current_block.parse_block_end('rescue', 0).should be_block_end_like(@current_block, 0, 'rescue', '') }
|
27
|
-
it { @current_block.parse_block_end('ensure', 0).should be_block_end_like(@current_block, 0, 'ensure', '') }
|
28
|
-
it { @current_block.parse_block_end('}', 0).should be_nil }
|
29
|
-
end
|
30
|
-
|
31
|
-
describe 'if' do
|
32
|
-
before(:each) do
|
33
|
-
@matcher = @ruby.matcher(:if)
|
34
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, 'if', ' foo')
|
35
|
-
end
|
36
|
-
|
37
|
-
it { @matcher.should be_end_can_also_be_start}
|
38
|
-
|
39
|
-
it { @matcher.parse_block_start('if foo', nil, 0, 0).should be_block_start_like(:if, 0, 'if', ' foo') }
|
40
|
-
it { @matcher.parse_block_start('then foo = bar', nil, 0, 0).should be_block_start_like(:if, 0, 'then', ' foo = bar') }
|
41
|
-
it { @matcher.parse_block_start('if_foo', nil, 0, 0).should be_nil }
|
42
|
-
|
43
|
-
it { @current_block.parse_block_end('end', 0).should be_block_end_like(@current_block, 0, 'end', '') }
|
44
|
-
it { @current_block.parse_block_end('then', 0).should be_block_end_like(@current_block, 0, 'then', '') }
|
45
|
-
it { @current_block.parse_block_end('else', 0).should be_block_end_like(@current_block, 0, 'else', '') }
|
46
|
-
it { @current_block.parse_block_end('a = 3', 0).should be_nil }
|
47
|
-
end
|
48
|
-
|
49
|
-
describe 'curly_bracket' do
|
50
|
-
before(:each) do
|
51
|
-
@matcher = @ruby.matcher(:curly_bracket)
|
52
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, '{', '')
|
53
|
-
end
|
54
|
-
|
55
|
-
it { @matcher.parse_block_start('{', nil, 0, 0).should be_block_start_like(:curly_bracket, 0, '{', '') }
|
56
|
-
it { @matcher.parse_block_start('end', nil, 0, 0).should be_nil }
|
57
|
-
|
58
|
-
it { @current_block.parse_block_end('}', 0).should be_block_end_like(@current_block, 0, '}', '') }
|
59
|
-
it { @current_block.parse_block_end('end', 0).should be_nil }
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
describe 'double_quote' do
|
64
|
-
before(:each) do
|
65
|
-
@matcher = @ruby.matcher(:double_quote)
|
66
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, '"', 'foo"')
|
67
|
-
end
|
68
|
-
|
69
|
-
it { @matcher.parse_block_start('a = "foo"', nil, 0, 0).should be_block_start_like(:double_quote, 4, '"', 'foo"') }
|
70
|
-
it { @matcher.parse_block_start('a = 2', nil, 0, 0).should be_nil }
|
71
|
-
|
72
|
-
it { @current_block.parse_block_end(' bar"', 0).should be_block_end_like(@current_block, 4, '"', '') }
|
73
|
-
it { @current_block.parse_block_end(' " + bar + "', 0).should be_block_end_like(@current_block, 1, '"', ' + bar + "') }
|
74
|
-
it { @current_block.parse_block_end('\\\\"', 0).should be_block_end_like(@current_block, 2, '"', '') }
|
75
|
-
it { @current_block.parse_block_end('\\" more string"', 0).should be_block_end_like(@current_block, 14, '"', '') }
|
76
|
-
it { @current_block.parse_block_end('a = 2', 0).should be_nil }
|
77
|
-
it { @current_block.parse_block_end('\\"', 0).should be_nil }
|
78
|
-
it { @current_block.parse_block_end('\\\\\\"', 0).should be_nil }
|
79
|
-
end
|
80
|
-
|
81
|
-
describe 'single_quote' do
|
82
|
-
before(:each) do
|
83
|
-
@matcher = @ruby.matcher(:single_quote)
|
84
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, "'", "foo'")
|
85
|
-
end
|
86
|
-
|
87
|
-
it { @matcher.should_not be_end_can_also_be_start}
|
88
|
-
it { @matcher.parse_block_start("describe '#foo?' do", nil, 0, 0).should be_block_start_like(:single_quote, 9, "'", "#foo?' do") }
|
89
|
-
it { @matcher.parse_block_start('a = 2', nil, 0, 0).should be_nil }
|
90
|
-
|
91
|
-
it { @current_block.parse_block_end("#foo?' do", 9).should be_block_end_like(@current_block, 14, "'", ' do')}
|
92
|
-
it { @current_block.parse_block_end('a = 2', 0).should be_nil }
|
93
|
-
end
|
94
|
-
|
95
|
-
describe 'continuing_line' do
|
96
|
-
before(:each) do
|
97
|
-
@matcher = @ruby.matcher(:continuing_line)
|
98
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 8, ',', '')
|
99
|
-
end
|
100
|
-
|
101
|
-
it { @matcher.parse_block_start('foo :bar,', nil, 0, 0).should be_block_start_like(:continuing_line, 8, ',', '') }
|
102
|
-
it { @matcher.parse_block_start('a = 3 &&', nil, 0, 0).should be_block_start_like(:continuing_line, 6, '&&', '') }
|
103
|
-
it { @matcher.parse_block_start('a = 3 ||', nil, 0, 0).should be_block_start_like(:continuing_line, 6, '||', '') }
|
104
|
-
it { @matcher.parse_block_start('a = 3 +', nil, 0, 0).should be_block_start_like(:continuing_line, 6, '+', '') }
|
105
|
-
it { @matcher.parse_block_start('a = 3 -', nil, 0, 0).should be_block_start_like(:continuing_line, 6, '-', '') }
|
106
|
-
it { @matcher.parse_block_start("a \\", nil, 0, 0).should be_block_start_like(:continuing_line, 2, '\\', '') }
|
107
|
-
it { @matcher.parse_block_start('a ?', nil, 0, 0).should be_block_start_like(:continuing_line, 1, ' ?', '') }
|
108
|
-
it { @matcher.parse_block_start('a ? # some comment', nil, 0, 0).should be_block_start_like(:continuing_line, 1, ' ? # some comment', '') }
|
109
|
-
it { @matcher.parse_block_start('a = 3', nil, 0, 0).should be_nil }
|
110
|
-
it { @matcher.parse_block_start('a = foo.bar?', nil, 0, 0).should be_nil }
|
111
|
-
it { @matcher.parse_block_start('# just a comment', nil, 0, 0).should be_nil }
|
112
|
-
|
113
|
-
it { @current_block.parse_block_end('a = 3', 0).should be_block_end_like(@current_block, 0, '', 'a = 3') }
|
114
|
-
it { @current_block.parse_block_end('foo :bar,', 0).should be_nil }
|
115
|
-
it { @current_block.parse_block_end('a = 3 &&', 0).should be_nil }
|
116
|
-
it { @current_block.parse_block_end('a = 3 +', 0).should be_nil }
|
117
|
-
it { @current_block.parse_block_end("a \\", 0).should be_nil }
|
118
|
-
it { @current_block.parse_block_end('# just a comment', 0).should be_nil }
|
119
|
-
it { @current_block.parse_block_end('#', 0).should be_nil }
|
120
|
-
end
|
121
|
-
|
122
|
-
describe 'round_bracket' do
|
123
|
-
before(:each) do
|
124
|
-
@matcher = @ruby.matcher(:round_bracket)
|
125
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, '(', '')
|
126
|
-
end
|
127
|
-
|
128
|
-
it { @matcher.parse_block_start('a = (foo,', nil, 0, 0).should be_block_start_like(:round_bracket, 4, '(', 'foo,') }
|
129
|
-
it { @matcher.parse_block_start('anything else', nil, 0, 0).should be_nil }
|
130
|
-
|
131
|
-
it { @current_block.parse_block_end('foo)', 0).should be_block_end_like(@current_block, 3, ')', '') }
|
132
|
-
it { @current_block.parse_block_end('a = 3', 0).should be_nil }
|
133
|
-
end
|
134
|
-
|
135
|
-
describe 'comment' do
|
136
|
-
before(:each) do
|
137
|
-
@matcher = @ruby.matcher(:comment)
|
138
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 8, '#', ' comment')
|
139
|
-
end
|
140
|
-
|
141
|
-
it { @matcher.parse_block_start('anything # comment', nil, 0, 0).should be_block_start_like(:comment, 8, ' #', ' comment') }
|
142
|
-
it { @matcher.parse_block_start('#', nil, 0, 0).should be_block_start_like(:comment, 0, '#', '') }
|
143
|
-
it { @matcher.parse_block_start('anything else', nil, 0, 0).should be_nil }
|
144
|
-
|
145
|
-
it { @current_block.parse_block_end('anything', 0).should be_block_end_like(@current_block, 8, '', '') }
|
146
|
-
it { @current_block.parse_block_end('', 0).should be_block_end_like(@current_block, 0, '', '') }
|
147
|
-
end
|
148
|
-
|
149
|
-
describe 'begin' do
|
150
|
-
before(:each) do
|
151
|
-
@matcher = @ruby.matcher(:begin)
|
152
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, 'begin', '')
|
153
|
-
end
|
154
|
-
|
155
|
-
it { @matcher.parse_block_start('begin', nil, 0, 0).should be_block_start_like(:begin, 0, 'begin', '') }
|
156
|
-
it { @matcher.parse_block_start('beginning', nil, 0, 0).should be_nil }
|
157
|
-
|
158
|
-
it { @current_block.parse_block_end('rescue', 0).should be_block_end_like(@current_block, 0, 'rescue', '') }
|
159
|
-
it { @current_block.parse_block_end('ensure', 0).should be_block_end_like(@current_block, 0, 'ensure', '') }
|
160
|
-
it { @current_block.parse_block_end('else', 0).should be_block_end_like(@current_block, 0, 'else', '') }
|
161
|
-
it { @current_block.parse_block_end('end', 0).should be_block_end_like(@current_block, 0, 'end', '') }
|
162
|
-
end
|
163
|
-
|
164
|
-
describe 'regex' do
|
165
|
-
before(:each) do
|
166
|
-
@matcher = @ruby.matcher(:regex)
|
167
|
-
@current_block = RBeautify::BlockStart.new(@matcher, nil, 0, 0, '/', 'foo/')
|
168
|
-
end
|
169
|
-
|
170
|
-
it { @matcher.parse_block_start('/foo/', nil, 0, 0).should be_block_start_like(:regex, 0, '/', 'foo/') }
|
171
|
-
it { @matcher.parse_block_start(', /foo/', nil, 0, 0).should be_block_start_like(:regex, 0, ', /', 'foo/') }
|
172
|
-
it { @matcher.parse_block_start('foo = /bar/', nil, 0, 0).should be_block_start_like(:regex, 4, '= /', 'bar/') }
|
173
|
-
it { @matcher.parse_block_start('foo =~ /bar/', nil, 0, 0).should be_block_start_like(:regex, 5, '~ /', 'bar/') }
|
174
|
-
it { @matcher.parse_block_start('1/2', nil, 0, 0).should be_nil }
|
175
|
-
it { @matcher.parse_block_start('anything else', nil, 0, 0).should be_nil }
|
176
|
-
|
177
|
-
it { @current_block.parse_block_end('foo/', 0).should be_block_end_like(@current_block, 3, '/', '') }
|
178
|
-
it { @current_block.parse_block_end('foo/', 0).should be_block_end_like(@current_block, 3, '/', '') }
|
179
|
-
it { @current_block.parse_block_end('', 0).should be_nil }
|
180
|
-
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
data/spec/rbeautify/line_spec.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
-
|
3
|
-
describe RBeautify::Line do
|
4
|
-
|
5
|
-
describe '#format' do
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
@language = mock(RBeautify::Language)
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'should just strip with empty stack' do
|
12
|
-
RBeautify::BlockMatcher.stub!(:parse => nil)
|
13
|
-
RBeautify::Line.new(@language, ' a = 3 ', 0).format.should == "a = 3"
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'should indent with existing indent' do
|
17
|
-
current_block = mock('block_start', :total_indent_size => 2, :format_content? => true, :strict_ancestor_of? => false)
|
18
|
-
RBeautify::BlockStart.stub(:first_common_ancestor => current_block)
|
19
|
-
RBeautify::BlockMatcher.stub!(:parse => current_block)
|
20
|
-
RBeautify::Line.new(@language, ' a = 3 ', 0, current_block).format.should == ' a = 3'
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'leave empty lines blank' do
|
24
|
-
current_block = mock('block_start', :format_content? => true)
|
25
|
-
RBeautify::BlockMatcher.stub!(:parse => current_block)
|
26
|
-
RBeautify::Line.new(@language, ' ', 0, current_block).format.should == ''
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should remove indent with match to end of block' do
|
30
|
-
current_block = mock('block_start', :format_content? => true, :indent_end_line? => false)
|
31
|
-
RBeautify::BlockStart.stub(:first_common_ancestor => nil)
|
32
|
-
RBeautify::BlockMatcher.stub!(:parse => nil)
|
33
|
-
RBeautify::Line.new(@language, ' end ', 0, current_block).format.should == 'end'
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should not remove indent with match to end of block if indent_end_line? is true' do
|
37
|
-
current_block = mock('block_start', :total_indent_size => 2, :format_content? => true, :indent_end_line? => true)
|
38
|
-
RBeautify::BlockMatcher.stub!(:parse => nil)
|
39
|
-
RBeautify::Line.new(@language, ' end ', 0, current_block).format.should == ' end'
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'should leave indent at old stack level with match of new block' do
|
43
|
-
current_block = mock('current_block_start', :total_indent_size => 2, :format_content? => true)
|
44
|
-
new_block = mock('new_block_start', :format_content? => true, :strict_ancestor_of? => false)
|
45
|
-
RBeautify::BlockStart.stub(:first_common_ancestor => current_block)
|
46
|
-
RBeautify::BlockMatcher.stub!(:parse => new_block)
|
47
|
-
RBeautify::Line.new(@language, 'class Foo', 0, current_block).format.should == ' class Foo'
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'should remove indent if a block ends and starts' do
|
51
|
-
current_block = mock('current_block_start', :format_content? => true)
|
52
|
-
new_block = mock('new_block_start', :format_content? => true, :strict_ancestor_of? => false)
|
53
|
-
RBeautify::BlockStart.stub(:first_common_ancestor => nil)
|
54
|
-
RBeautify::BlockMatcher.stub!(:parse => new_block)
|
55
|
-
RBeautify::Line.new(@language, ' else ', 0, current_block).format.should == 'else'
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'should not change when format is false' do
|
59
|
-
current_block = mock('block_start', :format_content? => false)
|
60
|
-
RBeautify::BlockMatcher.stub!(:parse => current_block)
|
61
|
-
RBeautify::Line.new(@language, ' some content after program has finished. ', 0, current_block).format.should ==
|
62
|
-
" some content after program has finished. "
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'should leave indent with match to end of block (but no format)' do
|
66
|
-
current_block = mock('block_start', :format_content? => false)
|
67
|
-
RBeautify::BlockMatcher.stub!(:parse => nil)
|
68
|
-
RBeautify::Line.new(@language, ' "', 0, current_block).format.should == ' "'
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
data/spec/rbeautify_spec.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
data/spec/spec_helper.rb
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'rspec'
|
3
|
-
rescue LoadError
|
4
|
-
require 'rubygems'
|
5
|
-
require 'rspec'
|
6
|
-
end
|
7
|
-
require 'yaml'
|
8
|
-
require File.dirname(__FILE__) + '/../lib/ruby-beautify.rb'
|
9
|
-
|
10
|
-
module RBeautifyMatchers
|
11
|
-
# Adds more descriptive failure messages to the dynamic be_valid matcher
|
12
|
-
class BeBlockStartLike #:nodoc:
|
13
|
-
def initialize(block_matcher_name, offset, match, after_match)
|
14
|
-
# triggers the standard Spec::Matchers::Be magic, as if the original Spec::Matchers#method_missing had fired
|
15
|
-
@block_matcher_name = block_matcher_name
|
16
|
-
@offset = offset
|
17
|
-
@match = match
|
18
|
-
@after_match = after_match
|
19
|
-
end
|
20
|
-
|
21
|
-
def matches?(target_block)
|
22
|
-
@target_block = target_block
|
23
|
-
return !target_block.nil? &&
|
24
|
-
(expected_string == got_string)
|
25
|
-
end
|
26
|
-
|
27
|
-
def failure_message
|
28
|
-
"expected\n#{expected_string} but got\n#{got_string}"
|
29
|
-
end
|
30
|
-
|
31
|
-
def negative_failure_message
|
32
|
-
"expected to be different from #{expected_string}"
|
33
|
-
end
|
34
|
-
|
35
|
-
def expected_string
|
36
|
-
"name: #{@block_matcher_name}, offset: #{@offset}, match: '#{@match}', after_match: '#{@after_match}'"
|
37
|
-
end
|
38
|
-
|
39
|
-
def got_string
|
40
|
-
"name: #{@target_block.block_matcher.name}, offset: #{@target_block.offset}, match: '#{@target_block.match}', after_match: '#{@target_block.after_match}'"
|
41
|
-
end
|
42
|
-
|
43
|
-
def description
|
44
|
-
"block start with"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
class BeBlockEndLike #:nodoc:
|
49
|
-
def initialize(block_start, offset, match, after_match)
|
50
|
-
# triggers the standard Spec::Matchers::Be magic, as if the original Spec::Matchers#method_missing had fired
|
51
|
-
@block_start = block_start
|
52
|
-
@offset = offset
|
53
|
-
@match = match
|
54
|
-
@after_match = after_match
|
55
|
-
end
|
56
|
-
|
57
|
-
def matches?(target_block)
|
58
|
-
@target_block = target_block
|
59
|
-
expected_string == got_string
|
60
|
-
end
|
61
|
-
|
62
|
-
def failure_message
|
63
|
-
"expected\n#{expected_string} but got\n#{got_string}"
|
64
|
-
end
|
65
|
-
|
66
|
-
def negative_failure_message
|
67
|
-
"expected to be different from #{expected_string}"
|
68
|
-
end
|
69
|
-
|
70
|
-
def expected_string
|
71
|
-
"block_end: #{@block_start.name}, offset: #{@offset}, match: '#{@match}', after_match: '#{@after_match}'"
|
72
|
-
end
|
73
|
-
|
74
|
-
def got_string
|
75
|
-
if @target_block.nil?
|
76
|
-
'nil'
|
77
|
-
else
|
78
|
-
"block_end: #{@target_block.block_start.name}, offset: #{@target_block.offset}, match: '#{@target_block.match}', after_match: '#{@target_block.after_match}'"
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def description
|
83
|
-
"block end with"
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
def be_block_start_like(block_matcher, offset, match, after_match)
|
89
|
-
BeBlockStartLike.new(block_matcher, offset, match, after_match)
|
90
|
-
end
|
91
|
-
|
92
|
-
def be_block_end_like(block_start, offset, match, after_match)
|
93
|
-
BeBlockEndLike.new(block_start, offset, match, after_match)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
RSpec.configure do |config|
|
98
|
-
config.include(RBeautifyMatchers)
|
99
|
-
end
|
100
|
-
|
101
|
-
|
102
|
-
def run_fixtures_for_language(language)
|
103
|
-
fixtures = YAML.load_file(File.dirname(__FILE__) + "/fixtures/#{language}.yml")
|
104
|
-
|
105
|
-
describe language do
|
106
|
-
fixtures.each do |fixture|
|
107
|
-
it "should #{fixture['name']}" do
|
108
|
-
input = fixture['input']
|
109
|
-
output = fixture['output'] || input
|
110
|
-
debug = fixture['debug'] || false
|
111
|
-
|
112
|
-
if fixture['pending']
|
113
|
-
pending fixture['pending'] do
|
114
|
-
RBeautify.beautify_string(language, input).should == output
|
115
|
-
end
|
116
|
-
else
|
117
|
-
RBeautify::BlockMatcher.debug = debug
|
118
|
-
RBeautify.beautify_string(language, input).should == output
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
end
|