navigator 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 074bdec84f357eca1409cc391a09c56e70d02d57
4
- data.tar.gz: e055f6c5572472f7d057e172dbc27c8825a87e48
3
+ metadata.gz: ac3406e04b869c54a3190d36e050584f18783976
4
+ data.tar.gz: 803ae60045de98fd39b8a5ad9609760073542f7f
5
5
  SHA512:
6
- metadata.gz: 90dcd0846caf6e502ca898cfd7b9501aa1fd025c2db749ce0c5df370d307a01d0a48d459b02a1e9161c71e4114f930e491faea183ee04cd29ac4fc44046b627a
7
- data.tar.gz: 4f0d277cd2e7f69f42ca2b903d7261c421406d7fe3034904965e8f4a0961adc162f2c1414956ceca92b33c851e1bfaf38584badc32f0deeb02707b4b6d0d5b3d
6
+ metadata.gz: fe2b2d1b48c57428212a5d11af23837ff1b8a2725a5fb6ed08d80c80c2eca10f6e6d0d90b94283766f1e0e197ff449de4df681f1635613615fe81b6c89e710b0
7
+ data.tar.gz: a1929bdc13a9c05e246e637a8c71aef7de80bd684474ae3d9be85ecf5489f93165bb4c3747630e4a7bbac7e5dd319c8f5bcb8cc0665975f6809047e519f04b59
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- U
1
+ r����Br,�<�Io�`��$�R��5ҫ�L" q[��в���z�8��o��}�N�e��o���!Ћ��r����[��#��K���ѨA�ӿ�+�uI�F�8��'3F�>���+h9n�� �k`�H+��!�� ��ei\�˜�Q��<��d��0��dx*=o�B�{��Yht��ħ_0�<�a���4�L��OA74�����2�Yq_��l��aZ�
data/README.md CHANGED
@@ -11,7 +11,7 @@ Enhances Rails with a DSL for menu navigation.
11
11
 
12
12
  # Features
13
13
 
14
- - Provides a simple DSL for building navigation menus.
14
+ - Provides a DSL for building navigation menus.
15
15
  - Supports auto-detection/highlighting of active menu items based on current path (customizable for non-path usage too).
16
16
  - Supports sub-menus, nested tags, HTML attributes, etc.
17
17
  - Supports the following HTML tags:
@@ -316,6 +316,39 @@ This customization allows for more sophisticated detection/updating of active HT
316
316
  <a href="/about" data-id="789">About</a>
317
317
  </nav>
318
318
 
319
+ Lastly, the search value can be a *regular expression* to make things easier when dealing with complicated routes, sub-
320
+ menus, etc. Example:
321
+
322
+ # Code
323
+ profile_activator = Navigator::TagActivator.new search_value: /^profile.+/
324
+
325
+ navigation do
326
+ item "Dashboard", dashboard_path
327
+ li activator: profile_activator do
328
+ link "Profile", '#'
329
+
330
+ ul do
331
+ item "Addresses", profile_addresses_path
332
+ item "Emails", profile_emails_path
333
+ end
334
+ end
335
+ end
336
+
337
+ <!-- Result -->
338
+ <ul>
339
+ <li><a href="/dashboard">Dashboard</a></li>
340
+ <li class="active">
341
+ <a href="#">Profile</a>
342
+ <ul>
343
+ <li><a href="profile/addresses">Addresses</a></li>
344
+ <li><a href="profile/emails">Emails</a></li>
345
+ </ul>
346
+ </li>
347
+ </ul>
348
+
349
+ Assuming either the `Addresses` or `Emails` menu item was clicked, the `Profile` menu item would be active due to the
350
+ regular expression (i.e. `/^profile.+/`) matching one of the the `profile/*` paths.
351
+
319
352
  # Tests
320
353
 
321
354
  To test, run:
@@ -11,17 +11,21 @@ module Navigator
11
11
  end
12
12
 
13
13
  def activatable? attributes = {}
14
- attributes = attributes.with_indifferent_access
15
- search_value.present? && attributes[search_key] == search_value
16
- end
14
+ return false unless search_value.present?
17
15
 
18
- def activate attributes = {}
19
16
  attributes = attributes.with_indifferent_access
17
+ current_search_value = attributes[search_key]
20
18
 
21
- if activatable? attributes
22
- attributes[target_key] = [attributes[target_key], target_value].compact * ' '
19
+ if current_search_value.is_a?(Regexp) || search_value.is_a?(Regexp)
20
+ !!(current_search_value =~ search_value)
21
+ else
22
+ current_search_value == search_value
23
23
  end
24
+ end
24
25
 
26
+ def activate attributes = {}
27
+ attributes = attributes.with_indifferent_access
28
+ attributes[target_key] = [attributes[target_key], target_value].compact.join(' ') if activatable? attributes
25
29
  attributes
26
30
  end
27
31
  end
@@ -1,3 +1,3 @@
1
1
  module Navigator
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: navigator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -30,7 +30,7 @@ cert_chain:
30
30
  fMlZDUGx3lQarp/vPjK+6XH7DLXjBEKqeIGBIpLthYUvDxJRp23C+T3liGSL32vg
31
31
  mSpxxwmK95GDFuEy2mNPaxnazdkw8c+7DbrSpzd/CnNZkRgitxOavs8=
32
32
  -----END CERTIFICATE-----
33
- date: 2015-04-02 00:00:00.000000000 Z
33
+ date: 2015-04-11 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: pry-byebug
metadata.gz.sig CHANGED
Binary file