smart_navigation 0.1.9 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07dff0569fa646fb31996e620ac88508fa9a0f251ce87be5e2484aae20ec5afd
4
- data.tar.gz: 568f75e17cf02d1b862c402cae1e96cd8b1d321f25a2703078b55b12cda41096
3
+ metadata.gz: b8fb31ca40e5fec67942b532e4d901ff4088d1acefa21edc055a7ea57d0df3da
4
+ data.tar.gz: 776fa59e92ed07279958dfe3bf1573dd6f8cd251610f82be4133bb45e7fdddab
5
5
  SHA512:
6
- metadata.gz: 9f257bf449231301d13a1543b055e55679943e83de4d6522973c9cc2834e4a38bab4495299f2f4e8ef8bfe703b3fb59d340af0ea9b10cedae1f1c80af968a98f
7
- data.tar.gz: 1bb5951b40489454f706526e1372ee4421a3dfd9cd04a59f01eb7b8a11bb4c64e6e30cc856e5794f4f0eb3ffa3d53f61ae00314dff2512c268cfebbd2aa63a09
6
+ metadata.gz: a92c31d6ba8b5ea4f2a393b253a25ef03723c7eb9a733207dbd3c31894ddd9bc0b158ae6f53402623161bcf5bf631a078c112fef9c067fdd014be58a45916faf
7
+ data.tar.gz: 6cad3c37c85830b2ea409829b7f8e64421e53f25cab2842c1bba518239248b3eddff6000e0c70247cb836ddde798518621f56d1390188241f245e83f67360856
data/README.md CHANGED
@@ -32,6 +32,7 @@ Define the menu items in a hash:
32
32
  label: 'Dashboard',
33
33
  url: :root_path,
34
34
  icon: 'dashboard',
35
+ root: true,
35
36
  html: { target: :_blank },
36
37
  wrapper_html: { class: 'dashboard' }
37
38
  },
@@ -50,6 +50,14 @@ module SmartNavigation
50
50
  items.sort_by { |_k, v| v[:order] }.to_h
51
51
  end
52
52
 
53
+ # Check if url parent
54
+ def page_parent?(item)
55
+ url = item_url item
56
+ paths = [@context.request.path, @context.request.url]
57
+
58
+ item[:root].blank? && paths.any? { |i| i.starts_with?(url) }
59
+ end
60
+
53
61
  # Get menu item url
54
62
  def item_url(item)
55
63
  if item[:url].present?
@@ -72,15 +80,18 @@ module SmartNavigation
72
80
 
73
81
  # Check if current page
74
82
  def current_page?(item)
75
- url = item_url(item)
76
- @context.current_page?(url)
83
+ current = @context.current_page?(item_url(item))
84
+ current = page_parent?(item) if item[:children].blank? and current.blank?
85
+
86
+ current
77
87
  end
78
88
 
79
89
  # Check if current group
80
90
  def current_group?(item)
81
- current = true if current_page?(item)
91
+ current = current_page?(item)
82
92
  current = Hash(item[:children]).any? { |_k, v| current_page?(v) } if current.blank?
83
93
  current = Hash(item[:children]).any? { |_k, v| current_group?(v) } if current.blank?
94
+
84
95
  current
85
96
  end
86
97
 
@@ -1,3 +1,3 @@
1
1
  module SmartNavigation
2
- VERSION = '0.1.9'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonian Guveli
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-13 00:00:00.000000000 Z
11
+ date: 2018-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  requirements: []
104
104
  rubyforge_project:
105
- rubygems_version: 2.7.6
105
+ rubygems_version: 2.7.7
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: View helpers for navigation menus