navlinks 0.1.3 → 0.1.4

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.
Files changed (4) hide show
  1. data/README.rdoc +13 -6
  2. data/VERSION +1 -1
  3. data/lib/navlinks/helper.rb +15 -6
  4. metadata +12 -5
data/README.rdoc CHANGED
@@ -1,12 +1,11 @@
1
1
  = Very light-weight implementation for navigation links
2
2
 
3
- = Simple navigation (HOWTO)
3
+ = Simple navigation (HOW-TO)
4
4
 
5
5
  === Install
6
6
 
7
7
  gem install navlinks --source http://gemcutter.org
8
8
 
9
-
10
9
  === First add navigation areas to the layout
11
10
 
12
11
  ==== app/views/layouts/application.html.erb
@@ -16,7 +15,7 @@
16
15
  <body>
17
16
  <ul id="nav">
18
17
  <li><%= nav_link_to :home, root_path %></li>
19
- <li><%= nav_link_to :foo, foo_ath %></li>
18
+ <li><%= nav_link_to :foo, foo_path %></li>
20
19
  </ul>
21
20
 
22
21
  <div id="content">
@@ -25,9 +24,13 @@
25
24
  </body>
26
25
  </html>
27
26
 
28
- === Next, label different views to belong to different nav areas.
27
+ === Next, label what views belong to what nav areas
28
+
29
+ Suppose we have following pages:
30
+ 1. A home page that is rendered by +pages/home.html.erb+ template and that we want to belong to 'home' nav area.
31
+ 2. A page where we show a Foo resource that is rendered by +foos/show.html.erb+ template and that we want to belong to 'foo' nav area.
29
32
 
30
- Let's have the home page be part of 'home' area and showing a Foo resource part of 'foo' area.
33
+ Easy! Just assign the nav-areas at the top of the views like this:
31
34
 
32
35
  ==== app/views/pages/home.html.erb
33
36
  <%- self.nav_area = :home -%>
@@ -38,6 +41,10 @@ Let's have the home page be part of 'home' area and showing a Foo resource part
38
41
 
39
42
  === Done!
40
43
 
44
+ Now when someone is viewing the +pages/home.html.erb+ template, the 'home' anchor tag will have a class +current+. If someone is viewing a
45
+ +foos/show.html.erb+ template, then the 'foo' anchor tag will have a class +current+. When viewing any other page, however, both of the
46
+ navigation anchors will not have any classes.
47
+
41
48
  = Localization
42
49
 
43
50
  +navlinks+ supports common localization but also allows some tricks. Suppose the localization file is as follows:
@@ -48,7 +55,7 @@ Let's have the home page be part of 'home' area and showing a Foo resource part
48
55
  home: Go home
49
56
  home_current: At home
50
57
 
51
- This causes the 'home' area description to be usually 'Go home'. However if the user is looking at a page that belongs to 'home', it will display 'At home'. Cool, huh?
58
+ This causes the 'home' area description to be usually 'Go home'. However if the user is looking at a page that belongs to 'home' nav area, it will display 'At home'. Cool, huh?
52
59
 
53
60
  = Decoration Override
54
61
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -3,18 +3,27 @@ module Navlinks
3
3
  module Helper
4
4
  attr_accessor :nav_area
5
5
 
6
- def nav_link_to area, path, options = nil
6
+ def nav_link_to(area, path, options = nil)
7
+ link_to(nav_label_for(area), path, :class => (nav_current?(area) ? 'current' : nil))
8
+ end
9
+
10
+ private
11
+
12
+ def nav_current?(area)
13
+ nav_area == area
14
+ end
15
+
16
+ def nav_label_for(area)
7
17
  label = translate(area, :scope => 'navigation', :default => area.to_s)
8
- current_label = translate([ area, 'current' ].join('_'), :scope => 'navigation', :default => label)
9
18
 
10
- if nav_area == area
11
- link_to(decorate_current(current_label), path, :class => 'current')
19
+ if nav_current?(area)
20
+ current_label = translate([ area, 'current' ].join('_'), :scope => 'navigation', :default => label)
21
+ decorate_current( current_label )
12
22
  else
13
- link_to(label, path)
23
+ label
14
24
  end
15
25
  end
16
26
 
17
- private
18
27
 
19
28
  def decorate_current( current_label )
20
29
  "[ #{current_label} ]"
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: navlinks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 4
9
+ version: 0.1.4
5
10
  platform: ruby
6
11
  authors:
7
12
  - Dmitry Ratnikov
@@ -9,7 +14,7 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-01-25 00:00:00 -06:00
17
+ date: 2010-04-07 00:00:00 -05:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
@@ -40,18 +45,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
40
45
  requirements:
41
46
  - - ">="
42
47
  - !ruby/object:Gem::Version
48
+ segments:
49
+ - 0
43
50
  version: "0"
44
- version:
45
51
  required_rubygems_version: !ruby/object:Gem::Requirement
46
52
  requirements:
47
53
  - - ">="
48
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
49
57
  version: "0"
50
- version:
51
58
  requirements: []
52
59
 
53
60
  rubyforge_project:
54
- rubygems_version: 1.3.5
61
+ rubygems_version: 1.3.6
55
62
  signing_key:
56
63
  specification_version: 3
57
64
  summary: Very light-weight navigation