simple-navigation 2.7.0 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,9 +1,13 @@
1
+ *2.7.1
2
+
3
+ * added SimpleNavigation.request and SimpleNavigation.request_uri as abstraction for getting request_uri (rails2/rails3)
4
+ * use request.fullpath instead of request.request_uri for Rails3. Credits to Ben Langfeld.
5
+
1
6
  *2.7.0
2
7
 
3
8
  * added new option :highlights_on to item definition in config-file. Specify a regexp which is matched against the current_uri to determine if an item is active or not. Replaces explicit highlighting in controllers.
4
9
  * deprecated explicit highlighting in the controllers.
5
10
 
6
-
7
11
  *2.6.0
8
12
 
9
13
  * added rendering option 'skip_if_empty' to Renderer::List to avoid rendering of empty ul-tags
@@ -17,7 +21,7 @@
17
21
 
18
22
  *2.5.3
19
23
 
20
- * removed depreciated railtie_name from simple_navigation/railtie. Credits to Markus Schirp.
24
+ * removed deprecated railtie_name from simple_navigation/railtie. Credits to Markus Schirp.
21
25
 
22
26
  *2.5.2
23
27
 
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 2
3
3
  :minor: 7
4
- :patch: 0
4
+ :patch: 1
@@ -35,7 +35,7 @@ SimpleNavigation::Configuration.run do |navigation|
35
35
  # :unless - Specifies a proc to call to determine if the item should not
36
36
  # be rendered (e.g. <tt>:unless => Proc.new { current_user.admin? }</tt>). The
37
37
  # proc should evaluate to a true or false value and is evaluated in the context of the view.
38
- # :method - Specified the http-method for the generated link - default is :get.
38
+ # :method - Specifies the http-method for the generated link - default is :get.
39
39
  # :highlights_on - if autohighlighting is turned off and/or you want to explicitly specify
40
40
  # when the item should be highlighted, you can set a regexp which is matched
41
41
  # against the current URI.
@@ -149,6 +149,20 @@ module SimpleNavigation
149
149
  self.registered_renderers.merge!(renderer_hash)
150
150
  end
151
151
 
152
+ # Returns the current request.
153
+ #
154
+ def request
155
+ SimpleNavigation.template.request if SimpleNavigation.template
156
+ end
157
+
158
+ # Returns the current request's URI.
159
+ #
160
+ def request_uri
161
+ return '' unless SimpleNavigation.request
162
+ return SimpleNavigation.request.fullpath if SimpleNavigation.request.respond_to?(:fullpath)
163
+ SimpleNavigation.request.request_uri
164
+ end
165
+
152
166
  private
153
167
 
154
168
 
@@ -66,7 +66,7 @@ module SimpleNavigation
66
66
  def selected_by_url?
67
67
  if highlights_on
68
68
  raise ArgumentError, ':highlights_on must be a regexp' unless highlights_on.instance_of?(Regexp)
69
- SimpleNavigation.template.request.request_uri =~ highlights_on
69
+ SimpleNavigation.request_uri =~ highlights_on
70
70
  elsif auto_highlight?
71
71
  !!(root_path_match? || (SimpleNavigation.template && SimpleNavigation.template.current_page?(url)))
72
72
  else
@@ -29,7 +29,7 @@ module SimpleNavigation
29
29
  # * <tt>:unless</tt> - Specifies a proc to call to determine if the item should not
30
30
  # be rendered (e.g. <tt>:unless => Proc.new { current_user.admin? }</tt>). The
31
31
  # proc should evaluate to a true or false value and is evaluated in the context of the view.
32
- # * <tt>:method</tt> - Specified the http-method for the generated link - default is :get.
32
+ # * <tt>:method</tt> - Specifies the http-method for the generated link - default is :get.
33
33
  # * <tt>:highlights_on</tt> - if autohighlighting is turned off and/or you want to explicitly specify
34
34
  # when the item should be highlighted, you can set a regexp which is matched againstthe current URI.
35
35
  #
@@ -282,8 +282,7 @@ describe SimpleNavigation::Item do
282
282
  context ':highlights_on option is set' do
283
283
  before(:each) do
284
284
  @item.stub!(:highlights_on => /^\/current/)
285
- @template = stub(:template, :request => stub(:request, :request_uri => '/current_url'))
286
- SimpleNavigation.stub!(:template => @template)
285
+ SimpleNavigation.stub!(:request_uri => '/current_url')
287
286
  end
288
287
  it "should not check for autohighlighting" do
289
288
  @item.should_not_receive(:auto_highlight?)
@@ -325,6 +325,44 @@ describe SimpleNavigation do
325
325
  end
326
326
  end
327
327
 
328
+ describe 'request' do
329
+ context 'template is set' do
330
+ before(:each) do
331
+ @request = stub(:request)
332
+ SimpleNavigation.stub!(:template => stub(:template, :request => @request))
333
+ end
334
+ it {SimpleNavigation.request.should == @request}
335
+ end
336
+ context 'template is not set' do
337
+ it {SimpleNavigation.request.should be_nil}
338
+ end
339
+ end
340
+
341
+ describe 'request_uri' do
342
+ context 'request is set' do
343
+ context 'fullpath is defined on request' do
344
+ before(:each) do
345
+ @request = stub(:request, :fullpath => '/fullpath')
346
+ SimpleNavigation.stub!(:request => @request)
347
+ end
348
+ it {SimpleNavigation.request_uri.should == '/fullpath'}
349
+ end
350
+ context 'fullpath is not defined on request' do
351
+ before(:each) do
352
+ @request = stub(:request, :request_uri => '/request_uri')
353
+ SimpleNavigation.stub!(:request => @request)
354
+ end
355
+ it {SimpleNavigation.request_uri.should == '/request_uri'}
356
+ end
357
+ end
358
+ context 'request is not set' do
359
+ before(:each) do
360
+ SimpleNavigation.stub!(:request => nil)
361
+ end
362
+ it {SimpleNavigation.request_uri.should == ''}
363
+ end
364
+ end
365
+
328
366
  describe 'config' do
329
367
  it {SimpleNavigation.config.should == SimpleNavigation::Configuration.instance}
330
368
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 2
7
7
  - 7
8
- - 0
9
- version: 2.7.0
8
+ - 1
9
+ version: 2.7.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Andi Schacke
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-07-30 00:00:00 +02:00
17
+ date: 2010-08-12 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency