helmsman 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -8
- data/lib/helmsman/helm.rb +21 -8
- data/lib/helmsman/version.rb +1 -1
- data/lib/helmsman/view_helper.rb +2 -2
- data/spec/lib/helmsman/helm_spec.rb +12 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6b701adb066d32088971a3e5daa6e1ea70a61cc
|
4
|
+
data.tar.gz: 079e0a5d62c8205a7f60cdbbb15573acf7bc5224
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b8142ba64141f62d0a0163f7b063d92b27e90353cf4942393a1d46ad720c11610ff004ddf7cec7192347805bacfedaa99be945352a1c98676c4a7ea185e8e62
|
7
|
+
data.tar.gz: 6b3532ef9ceac4bf2a9d43cd5d863dbb15196ae800b2dd9ddb3a449fa77e186e00a469c55bca013234aa9656de27685a26c32b4b10879170c1cc1438b28ee051
|
data/README.md
CHANGED
@@ -63,6 +63,7 @@ e.g. `helm :edit` called from `app/views/pictures/_menu.html.*` uses the followi
|
|
63
63
|
|
64
64
|
- en.pictures.menu.edit
|
65
65
|
- en.pictures.menu.edit_disabled_tooltip
|
66
|
+
- en.pictures.menu.disabled_tooltip
|
66
67
|
|
67
68
|
### Highlight current
|
68
69
|
|
@@ -73,10 +74,10 @@ Per default the first parameter will be treated as the controller name: `helm :p
|
|
73
74
|
You may customize the highlight options by providing a set of controller and/or action names in the `highlight` options. Here are some examples:
|
74
75
|
|
75
76
|
```ruby
|
76
|
-
helm :bridge, highlight: :screens
|
77
|
-
helm :bridge, highlight: [:screens, :sensors]
|
78
|
-
helm :bridge, highlight: { screens: :show }
|
79
|
-
helm :bridge, highlight: :screens, sensors: [:show, :index] #
|
77
|
+
helm :bridge, highlight: :screens # on any screens controller action
|
78
|
+
helm :bridge, highlight: [:screens, :sensors] # on any screens and sensors controller action
|
79
|
+
helm :bridge, highlight: { screens: :show } # on bridges controller show action
|
80
|
+
helm :bridge, highlight: [:screens, { sensors: [:show, :index] }] # all screens controller actions and sensors controller #show and #index
|
80
81
|
```
|
81
82
|
|
82
83
|
Anyway you are not forced to use that mechanism, you can also set `current` by hand:
|
@@ -87,16 +88,16 @@ helm :bridge, current: true
|
|
87
88
|
|
88
89
|
### Disabling and visibility
|
89
90
|
|
90
|
-
To set a helm disabled you may use the `disabled` option. It will then add a tooltip to that entry to explain why it was disabled.
|
91
|
+
To set a helm disabled you may use the `disabled` option. It will then add a tooltip to that entry to explain why it was disabled (´.pictures_disabled_tooltip´).
|
91
92
|
|
92
93
|
```ruby
|
93
|
-
|
94
|
+
helm :pictures, url: pictures_url, disabled: user_signed_in?
|
94
95
|
```
|
95
96
|
|
96
97
|
If you want it to not be visible at all set the `visible` option to false.
|
97
98
|
|
98
99
|
```ruby
|
99
|
-
|
100
|
+
helm :pictures, url: pictures_url, visible: user_signed_in?
|
100
101
|
```
|
101
102
|
|
102
103
|
### Additional content and nesting
|
@@ -114,7 +115,7 @@ You can always use the current helm during that yield, so finding out whether it
|
|
114
115
|
|
115
116
|
|
116
117
|
```ruby
|
117
|
-
|
118
|
+
helm :pictures, disabled: true, current: false do |entry|
|
118
119
|
puts entry.enabled? # false
|
119
120
|
puts entry.disabled? # true
|
120
121
|
puts entry.visible? # true
|
data/lib/helmsman/helm.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
module Helmsman
|
2
2
|
class Helm
|
3
|
-
attr_accessor :name, :url, :additional, :i18n_key
|
3
|
+
attr_accessor :name, :url, :additional, :i18n_key, :i18n_scope
|
4
4
|
include ActionView::Helpers::TagHelper
|
5
5
|
include ActionView::Helpers::UrlHelper
|
6
6
|
|
7
7
|
def initialize(options = {})
|
8
|
-
@disabled
|
9
|
-
@visible
|
10
|
-
@current
|
11
|
-
@
|
12
|
-
@
|
8
|
+
@disabled = options.fetch(:disabled) { false }
|
9
|
+
@visible = options.fetch(:visible) { true }
|
10
|
+
@current = options.fetch(:current) { false }
|
11
|
+
@i18n_scope = options.fetch(:i18n_scope)
|
12
|
+
@i18n_key = options.fetch(:i18n_key)
|
13
|
+
@url = options[:url]
|
13
14
|
end
|
14
15
|
|
15
16
|
def to_s
|
@@ -38,11 +39,23 @@ module Helmsman
|
|
38
39
|
end
|
39
40
|
|
40
41
|
def name
|
41
|
-
I18n.translate(i18n_key).html_safe
|
42
|
+
I18n.translate("#{i18n_scope}#{i18n_key}").html_safe
|
42
43
|
end
|
43
44
|
|
44
45
|
def disabled_title
|
45
|
-
I18n.translate(
|
46
|
+
I18n.translate(disabled_tooltip_translation_key, default: default_disabled_tooltip_translation_key).html_safe
|
47
|
+
end
|
48
|
+
|
49
|
+
def name_translation_key
|
50
|
+
"#{i18n_scope}#{i18n_key}"
|
51
|
+
end
|
52
|
+
|
53
|
+
def disabled_tooltip_translation_key
|
54
|
+
"#{i18n_scope}#{i18n_key}_disabled_tooltip"
|
55
|
+
end
|
56
|
+
|
57
|
+
def default_disabled_tooltip_translation_key
|
58
|
+
"#{i18n_scope}disabled_tooltip"
|
46
59
|
end
|
47
60
|
|
48
61
|
def disabled?
|
data/lib/helmsman/version.rb
CHANGED
data/lib/helmsman/view_helper.rb
CHANGED
@@ -48,9 +48,9 @@ module Helmsman
|
|
48
48
|
current = options.fetch(:current) { highlight_helm?(highlight_opts) }
|
49
49
|
visible = options.fetch(:visible) { true }
|
50
50
|
url = options[:url]
|
51
|
-
|
51
|
+
i18n_scope = expand_i18n_key('.')
|
52
52
|
|
53
|
-
entry = Helm.new(disabled: disabled, current: current, visible: visible, i18n_key:
|
53
|
+
entry = Helm.new(disabled: disabled, current: current, visible: visible, i18n_key: key, i18n_scope: i18n_scope, url: url)
|
54
54
|
|
55
55
|
entry.additional = capture(entry, &block) if block_given?
|
56
56
|
entry
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Helmsman::Helm do
|
4
|
-
let(:helm) { Helmsman::Helm.new }
|
4
|
+
let(:helm) { Helmsman::Helm.new(i18n_scope: 'helmsman.', i18n_key: 'foo') }
|
5
5
|
|
6
6
|
it 'is always html_safe' do
|
7
7
|
helm.should be_html_safe
|
@@ -13,5 +13,16 @@ describe Helmsman::Helm do
|
|
13
13
|
helm.disabled_title.should be_html_safe
|
14
14
|
end
|
15
15
|
|
16
|
+
it '#name_translation_key returns the right thing' do
|
17
|
+
helm.name_translation_key.should eq 'helmsman.foo'
|
18
|
+
end
|
19
|
+
|
20
|
+
it '#disabled_tooltip_translation_key' do
|
21
|
+
helm.disabled_tooltip_translation_key.should eq 'helmsman.foo_disabled_tooltip'
|
22
|
+
end
|
23
|
+
|
24
|
+
it '#default_disabled_tooltip_translation_key' do
|
25
|
+
helm.default_disabled_tooltip_translation_key.should eq 'helmsman.disabled_tooltip'
|
26
|
+
end
|
16
27
|
end
|
17
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: helmsman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johannes Opper
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|