bri 0.1.5 → 0.2.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.
@@ -1,32 +1,65 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Bri::Search::Class do
4
- before( :each ) do
5
- store_one = mock( RDoc::RI::Store, :load_cache => true,
6
- :load_class => true,
7
- :modules => %w{ ClassThree } )
8
- store_two = mock( RDoc::RI::Store, :load_cache => true,
9
- :load_class => true,
10
- :modules => %w{ ClassOne ClassTwo } )
11
- Bri::Mall.instance.stub!( :stores => [ store_one, store_two ] )
12
- Bri::Match::Class.stub!( :new ).and_return( mock( Bri::Match::Class ) )
4
+ describe "#initialize" do
5
+ context "for an empty search" do
6
+ subject { Bri::Search::Class.new( "term" ) }
7
+ its( :term ) { should == "term" }
8
+ its( :matches ) { should be_empty }
9
+ end
13
10
  end
14
11
 
12
+
15
13
  describe "#search" do
16
- context "if there are no matching modules in any store" do
17
- subject { Bri::Search::Class.new( "I::Dont::Exist" ) }
18
- it "should have no matches" do
19
- subject.search
20
- subject.matches.should == []
14
+ context "basic functionality" do
15
+ before( :each ) do
16
+ store_one = mock( RDoc::RI::Store, :load_cache => true,
17
+ :load_class => true,
18
+ :modules => %w{ ClassThree } )
19
+ store_two = mock( RDoc::RI::Store, :load_cache => true,
20
+ :load_class => true,
21
+ :modules => %w{ ClassOne ClassTwo } )
22
+ Bri::Mall.instance.stub!( :stores => [ store_one, store_two ] )
23
+ Bri::Match::Class.stub!( :new ).and_return( mock( Bri::Match::Class ) )
24
+ end
25
+
26
+ context "if there are no matching modules in any store" do
27
+ subject { Bri::Search::Class.new( "I::Dont::Exist" ) }
28
+ it "should have no matches" do
29
+ subject.search
30
+ subject.matches.should == []
31
+ end
32
+ end
33
+
34
+ context "if there is a matching module in the stores" do
35
+ subject { Bri::Search::Class.new( "ClassOne" ) }
36
+ it "should have a match for each name" do
37
+ subject.search
38
+ subject.matches.size.should == 1
39
+ end
21
40
  end
22
41
  end
23
42
 
24
- context "if there is a matching module in the stores" do
25
- subject { Bri::Search::Class.new( "ClassOne" ) }
26
- it "should have a match for each name" do
27
- subject.search
28
- subject.matches.size.should == 1
43
+ context "for the type :fully_qualified" do
44
+ context "when searching for the class BriDummySpecClass" do
45
+ subject { Bri::Search::Class.new( "BriDummySpecClass" ) }
46
+
47
+ it "should have matches" do
48
+ subject.search
49
+ subject.matches.should_not be_empty
50
+ subject.matches.any?{ |match| match.name == "BriDummySpecClass" }.should be_true
51
+ end
52
+ end
53
+
54
+ context "when searching for the class IAmQuiteCertainIDontExist" do
55
+ subject { Bri::Search::Class.new( "IAmQuiteCertainIDontExist" ) }
56
+
57
+ it "should not have any matches" do
58
+ subject.search
59
+ subject.matches.any? { |match| match.name == "IAmQuiteCertainIDontExist" }.should be_false
60
+ end
29
61
  end
30
62
  end
63
+
31
64
  end
32
65
  end
@@ -87,4 +87,85 @@ describe Bri::Search::InstanceMethod do
87
87
  end
88
88
  end
89
89
  end
90
+
91
+ context "real searches going through rdoc" do
92
+ context "a fully qualified search" do
93
+ context "with no matching methods" do
94
+ it "should have no matches" do
95
+ search_instance = Bri::Search::InstanceMethod.new( "BriDummySpecClass#i_dont_exist" )
96
+ search_instance.search( :fully_qualified )
97
+ search_instance.matches.should be_empty
98
+ end
99
+ end
100
+
101
+ context "with a matching method" do
102
+ it "should have a match" do
103
+ search_instance = Bri::Search::InstanceMethod.new( "BriDummySpecClass#bri_dummy_spec_instance_method" )
104
+ search_instance.search( :fully_qualified )
105
+ search_instance.matches.should_not be_empty
106
+ search_instance.matches.first.full_name.should == "BriDummySpecClass#bri_dummy_spec_instance_method"
107
+ end
108
+ end
109
+ end
110
+
111
+ context "a partially qualified search" do
112
+ context "with no matching methods" do
113
+ it "should have no matches" do
114
+ search_instance = Bri::Search::InstanceMethod.new( "#i_dont_exist" )
115
+ search_instance.search( :partially_qualified )
116
+ search_instance.matches.should be_empty
117
+ end
118
+ end
119
+
120
+ context "with one matching method" do
121
+ it "should have one match" do
122
+ search_instance = Bri::Search::InstanceMethod.new( "#bri_dummy_spec_instance_method" )
123
+ search_instance.search( :partially_qualified )
124
+ search_instance.matches.should_not be_empty
125
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClass#bri_dummy_spec_instance_method" }.should be_true
126
+ end
127
+ end
128
+
129
+ context "with multiple matching methods" do
130
+ it "should have all matches" do
131
+ search_instance = Bri::Search::InstanceMethod.new( "#bri_dummy_spec_instance_method_with_arguments" )
132
+ search_instance.search( :partially_qualified )
133
+ search_instance.matches.should_not be_empty
134
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClass#bri_dummy_spec_instance_method_with_arguments" }.should be_true
135
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClassTwo#bri_dummy_spec_instance_method_with_arguments" }.should be_true
136
+ end
137
+ end
138
+ end
139
+
140
+ context "an unqualified search" do
141
+ context "with no matching methods" do
142
+ it "should have no matches" do
143
+ search_instance = Bri::Search::InstanceMethod.new( "i_dont_exist_go_away" )
144
+ search_instance.search( :unqualified )
145
+ search_instance.matches.should be_empty
146
+ end
147
+ end
148
+
149
+ context "with one matching method" do
150
+ it "should have one match" do
151
+ search_instance = Bri::Search::InstanceMethod.new( "bri_dummy_spec_instance_method" )
152
+ search_instance.search( :unqualified )
153
+ search_instance.matches.should_not be_empty
154
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClass#bri_dummy_spec_instance_method" }.should be_true
155
+ end
156
+ end
157
+
158
+ context "with multiple matching methods" do
159
+ it "should have all matches" do
160
+ search_instance = Bri::Search::InstanceMethod.new( "bri_dummy_spec" )
161
+ search_instance.search( :unqualified )
162
+ search_instance.matches.should_not be_empty
163
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClass#bri_dummy_spec_instance_method" }.should be_true
164
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClass#bri_dummy_spec_instance_method_with_arguments" }.should be_true
165
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClassTwo#bri_dummy_spec_instance_method_with_arguments" }.should be_true
166
+ search_instance.matches.any? { |match| match.full_name == "BriDummySpecClass#bri_dummy_spec_instance_method_with_default_arguments" }.should be_true
167
+ end
168
+ end
169
+ end
170
+ end
90
171
  end
@@ -1 +1,7 @@
1
- require File.join( File.dirname( __FILE__ ), '..', 'lib', 'bri.rb' )
1
+ spec_root = File.dirname( __FILE__ )
2
+ require File.join( spec_root, '..', 'lib', 'bri.rb' )
3
+
4
+ puts "Regenerating ri document cache"
5
+ output_path = File.join( spec_root, 'ri' )
6
+ class_file = File.join( spec_root, 'bri_dummy_spec_class.rb' )
7
+ %x{rdoc --ri #{class_file}}
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: bri
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.5
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sven Riedel
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-04 00:00:00 +01:00
13
+ date: 2011-02-20 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -64,12 +64,14 @@ files:
64
64
  - lib/bri/templates.rb
65
65
  - lib/bri/renderer.rb
66
66
  - spec/spec_helper.rb
67
+ - spec/bri_dummy_spec_class.rb
67
68
  - spec/lib/bri/mall_spec.rb
68
69
  - spec/lib/bri/matcher_spec.rb
69
- - spec/lib/bri/match/class_match_spec.rb
70
- - spec/lib/bri/match/method_match_spec.rb
70
+ - spec/lib/bri/renderer_spec.rb
71
+ - spec/lib/bri/match/class_spec.rb
72
+ - spec/lib/bri/match/method_spec.rb
71
73
  - spec/lib/bri/search/class_spec.rb
72
- - spec/lib/bri/search/class_method_search_spec.rb
74
+ - spec/lib/bri/search/class_method_spec.rb
73
75
  - spec/lib/bri/search/instance_method_spec.rb
74
76
  - spec/lib/bri/search/method_spec.rb
75
77
  has_rdoc: true
@@ -99,6 +101,6 @@ rubyforge_project:
99
101
  rubygems_version: 1.5.0
100
102
  signing_key:
101
103
  specification_version: 3
102
- summary: Beautified RI in the spirit of fastri/qri. Unlike fastri, bri builds on top of the rdoc 2.x backend, only output and formatting is handled by bri
104
+ summary: Beautified RI in the spirit of fastri/qri. Unlike fastri, bri builds on top of the rdoc 2.x/3.x backend, only output and formatting is handled by bri
103
105
  test_files: []
104
106
 
@@ -1,90 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Bri::Match::Class do
4
- let( :fake_paragraph ) do
5
- mock( RDoc::Markup::Paragraph, :parts => [ "This is row one",
6
- "And this is row 2" ] )
7
- end
8
-
9
- let( :fake_description ) do
10
- mock( RDoc::Markup::Document, :parts => [ fake_paragraph ] )
11
- end
12
-
13
- let( :fake_include ) do
14
- mock( RDoc::Include, :full_name => "Included::Module" )
15
- end
16
-
17
- let( :fake_constant ) do
18
- mock( RDoc::Constant, :name => "MockConstant", :value => "This is my value" )
19
- end
20
-
21
- let( :fake_attribute ) do
22
- mock( RDoc::Constant, :name => "attribute", :rw => 'R' )
23
- end
24
-
25
- let( :fake_public_instance_method ) do
26
- mock( RDoc::AnyMethod, :name => "public_instance",
27
- :singleton => false,
28
- :visibility => :public )
29
- end
30
-
31
- let( :fake_protected_instance_method ) do
32
- mock( RDoc::AnyMethod, :name => "protected_instance",
33
- :singleton => false,
34
- :visibility => :protected )
35
- end
36
-
37
- let( :fake_private_instance_method ) do
38
- mock( RDoc::AnyMethod, :name => "private_instance",
39
- :singleton => false,
40
- :visibility => :private )
41
- end
42
-
43
- let( :fake_public_class_method ) do
44
- mock( RDoc::AnyMethod, :name => "public_class",
45
- :singleton => true,
46
- :visibility => :public )
47
- end
48
-
49
- let( :fake_protected_class_method ) do
50
- mock( RDoc::AnyMethod, :name => "protected_class",
51
- :singleton => true,
52
- :visibility => :protected )
53
- end
54
-
55
- let( :fake_private_class_method ) do
56
- mock( RDoc::AnyMethod, :name => "private_class",
57
- :singleton => true,
58
- :visibility => :private )
59
- end
60
-
61
- let( :rdoc_class ) { mock( RDoc::NormalClass, :type => "module",
62
- :name => "MyModule",
63
- :comment => fake_description,
64
- :includes => [ fake_include ],
65
- :constants => [ fake_constant ],
66
- :attributes => [ fake_attribute ],
67
- :method_list => [ fake_public_instance_method,
68
- fake_protected_instance_method,
69
- fake_private_instance_method,
70
- fake_public_class_method,
71
- fake_protected_class_method,
72
- fake_private_class_method ]
73
- )
74
- }
75
-
76
- describe "#initialize" do
77
- context "a class with everything" do
78
- subject { Bri::Match::Class.new( rdoc_class ) }
79
-
80
- its( :type ) { should == rdoc_class.type }
81
- its( :name ) { should == rdoc_class.name }
82
- its( :description_paragraphs ) { should == fake_description.parts.collect { |p| p.parts.join( " " ) } }
83
- its( :includes ) { should == rdoc_class.includes.collect{ |i| i.full_name } }
84
- its( :constants ) { should == rdoc_class.constants.collect { |c| { :name => c.name, :value => c.value } } }
85
- its( :attributes ) { should == rdoc_class.attributes.collect { |a| "#{a.name} (#{a.rw})" } }
86
- its( :instance_methods ) { should == rdoc_class.method_list.select { |m| m.visibility == :public && m.singleton == false }.collect { |m| m.name } }
87
- its( :class_methods ) { should == rdoc_class.method_list.select { |m| m.visibility == :public && m.singleton == true }.collect { |m| m.name } }
88
- end
89
- end
90
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Bri::Match::Method do
4
- let( :fake_paragraph ) do
5
- RDoc::Markup::Paragraph.new "This is line one", "This is line two"
6
- end
7
-
8
- let( :fake_description ) do
9
- mock( RDoc::Markup::Document, :parts => [ fake_paragraph ] )
10
- end
11
-
12
- let( :rdoc_method ) do
13
- mock( RDoc::AnyMethod, :full_name => "This::IS::My.full_name",
14
- :arglists => "First\nSecond\nThird",
15
- :comment => fake_description )
16
- end
17
-
18
- describe "#initialize" do
19
- subject { Bri::Match::Method.new( rdoc_method ) }
20
-
21
- its( :full_name ) { should == rdoc_method.full_name }
22
- its( :call_syntaxes ) { should == " First\n Second\n Third\n" }
23
- its( :description_paragraphs ) { should == [ " This is line one This is line two" ] }
24
- end
25
- end