slither 0.99.4 → 0.99.5

Sign up to get free protection for your applications and to get access to all the features.
data/spec/section_spec.rb DELETED
@@ -1,146 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'spec_helper')
2
-
3
- describe Slither::Section do
4
- before(:each) do
5
- @section = Slither::Section.new(:body)
6
- end
7
-
8
- it "should have no columns after creation" do
9
- @section.columns.should be_empty
10
- end
11
-
12
- it "should know it's reserved names" do
13
- Slither::Section::RESERVED_NAMES.should == [:spacer]
14
- end
15
-
16
- describe "when adding columns" do
17
- it "should build an ordered column list" do
18
- @section.should have(0).columns
19
-
20
- col1 = @section.column :id, 10
21
- col2 = @section.column :name, 30
22
- col3 = @section.column :state, 2
23
-
24
- @section.should have(3).columns
25
- @section.columns[0].should be(col1)
26
- @section.columns[1].should be(col2)
27
- @section.columns[2].should be(col3)
28
- end
29
-
30
- it "should create spacer columns" do
31
- @section.should have(0).columns
32
- @section.spacer(5)
33
- @section.should have(1).columns
34
- end
35
-
36
- it "can should override the alignment of the definition" do
37
- section = Slither::Section.new('name', :align => :left)
38
- section.options[:align].should == :left
39
- end
40
-
41
- it "should use a missing method to create a column" do
42
- @section.should have(0).columns
43
- @section.first_name 5
44
- @section.should have(1).columns
45
- end
46
-
47
- it "should prevent duplicate column names" do
48
- @section.column :id, 10
49
- lambda { @section.column(:id, 30) }.should raise_error(Slither::DuplicateColumnNameError, "You have already defined a column named 'id'.")
50
- end
51
-
52
- it "should allow duplicate column names that are reserved (i.e. spacer)" do
53
- @section.spacer 10
54
- lambda { @section.spacer 10 }.should_not raise_error(Slither::DuplicateColumnNameError)
55
- end
56
- end
57
-
58
- it "should accept and store the trap as a block" do
59
- @section.trap { |v| v == 4 }
60
- trap = @section.instance_variable_get(:@trap)
61
- trap.should be_a(Proc)
62
- trap.call(4).should == true
63
- end
64
-
65
- describe "when adding a template" do
66
- before(:each) do
67
- @template = mock('templated section', :columns => [1,2,3], :options => {})
68
- @definition = mock("definition", :templates => { :test => @template } )
69
- @section.definition = @definition
70
- end
71
-
72
- it "should ensure the template exists" do
73
- @definition.stub! :templates => {}
74
- lambda { @section.template(:none) }.should raise_error(ArgumentError)
75
- end
76
-
77
- it "should add the template columns to the current column list" do
78
- @section.template :test
79
- @section.should have(3).columns
80
- end
81
-
82
- it "should merge the template option" do
83
- @section = Slither::Section.new(:body, :align => :left)
84
- @section.definition = @definition
85
- @template.stub! :options => {:align => :right}
86
- @section.template :test
87
- @section.options.should == {:align => :left}
88
- end
89
- end
90
-
91
- describe "when formatting a row" do
92
- before(:each) do
93
- @data = { :id => 3, :name => "Ryan" }
94
- end
95
-
96
- it "should default to string data aligned right" do
97
- @section.column(:id, 5)
98
- @section.column(:name, 10)
99
- @section.format( @data ).should == " 3 Ryan"
100
- end
101
-
102
- it "should left align if asked" do
103
- @section.column(:id, 5)
104
- @section.column(:name, 10, :align => :left)
105
- @section.format(@data).should == " 3Ryan "
106
- end
107
-
108
- # it "should raise an error if the data and column definitions aren't the same size" do
109
- # @section.column(:id, 5)
110
- # lambda { @section.format(@data) }.should raise_error(
111
- # Slither::ColumnMismatchError,
112
- # "The 'body' section has 1 column(s) defined, but there are 2 column(s) provided in the data."
113
- # )
114
- # end
115
- end
116
-
117
- describe "when parsing a file" do
118
- before(:each) do
119
- @line = ' 45 Ryan WoodSC '
120
- @section = Slither::Section.new(:body)
121
- @column_content = { :id => 5, :first => 10, :last => 10, :state => 2 }
122
- end
123
-
124
- it "should return a key for key column" do
125
- @column_content.each { |k,v| @section.column(k, v) }
126
- parsed = @section.parse(@line)
127
- @column_content.each_key { |name| parsed.should have_key(name) }
128
- end
129
-
130
- it "should not return a key for reserved names" do
131
- @column_content.each { |k,v| @section.column(k, v) }
132
- @section.spacer 5
133
- @section.should have(5).columns
134
- parsed = @section.parse(@line)
135
- parsed.should have(4).keys
136
- end
137
- end
138
-
139
- it "should try to match a line using the trap" do
140
- @section.trap do |line|
141
- line == 'hello'
142
- end
143
- @section.match('hello').should be_true
144
- @section.match('goodbye').should be_false
145
- end
146
- end
data/spec/slither_spec.rb DELETED
@@ -1,84 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'spec_helper')
2
-
3
- describe Slither do
4
-
5
- before(:each) do
6
- @name = :doc
7
- @options = { :align => :left }
8
- end
9
-
10
- describe "when defining a format" do
11
- before(:each) do
12
- @definition = mock('definition')
13
- end
14
-
15
- it "should create a new definition using the specified name and options" do
16
- Slither.should_receive(:define).with(@name, @options).and_return(@definition)
17
- Slither.define(@name , @options)
18
- end
19
-
20
- it "should pass the definition to the block" do
21
- yielded = nil
22
- Slither.define(@name) do |y|
23
- yielded = y
24
- end
25
- yielded.should be_a( Slither::Definition )
26
- end
27
-
28
- it "should add to the internal definition count" do
29
- Slither.definitions.clear
30
- Slither.should have(0).definitions
31
- Slither.define(@name , @options) {}
32
- Slither.should have(1).definitions
33
- end
34
- end
35
-
36
- describe "when creating file from data" do
37
- it "should raise an error if the definition name is not found" do
38
- lambda { Slither.generate(:not_there, {}) }.should raise_error(ArgumentError)
39
- end
40
-
41
- it "should output a string" do
42
- definition = mock('definition')
43
- generator = mock('generator')
44
- generator.should_receive(:generate).with({})
45
- Slither.should_receive(:definition).with(:test).and_return(definition)
46
- Slither::Generator.should_receive(:new).with(definition).and_return(generator)
47
- Slither.generate(:test, {})
48
- end
49
-
50
- it "should output a file" do
51
- file = mock('file')
52
- text = mock('string')
53
- file.should_receive(:write).with(text)
54
- File.should_receive(:open).with('file.txt', 'w').and_yield(file)
55
- Slither.should_receive(:generate).with(:test, {}).and_return(text)
56
- Slither.write('file.txt', :test, {})
57
- end
58
- end
59
-
60
- describe "when parsing a file" do
61
- before(:each) do
62
- @file_name = 'file.txt'
63
- end
64
-
65
- it "should check the file exists" do
66
- lambda { Slither.parse(@file_name, :test, {}) }.should raise_error(ArgumentError)
67
- end
68
-
69
- it "should raise an error if the definition name is not found" do
70
- Slither.definitions.clear
71
- File.stub!(:exists? => true)
72
- lambda { Slither.parse(@file_name, :test, {}) }.should raise_error(ArgumentError)
73
- end
74
-
75
- it "should create a parser and call parse" do
76
- File.stub!(:exists? => true)
77
- parser = mock("parser", :null_object => true)
78
- definition = mock('definition')
79
- Slither.should_receive(:definition).with(:test).and_return(definition)
80
- Slither::Parser.should_receive(:new).with(definition, @file_name).and_return(parser)
81
- Slither.parse(@file_name, :test)
82
- end
83
- end
84
- end
data/spec/spec_helper.rb DELETED
@@ -1,4 +0,0 @@
1
- require 'rubygems'
2
- require 'spec'
3
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'slither'))
4
-