abraham 2.5.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -0
- data/app/helpers/abraham_helper.rb +12 -5
- data/app/helpers/flipper_helper.rb +26 -0
- data/lib/abraham/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f58e765abccdc1ca54c84235af22089873e9d3a5de2b4e862a85273f58d56a9
|
4
|
+
data.tar.gz: a8e6aafc28d11ebbb4c593c010d0d5eb5a9b204897394286bd1cdc3a5b4e67ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05f6395978a18eb6cdfec2acae497620fdeee810e63fc3c78a314424b5d5f613017627bbad83182e8e42bb6fb0c0fe945f12cb6e28ee56794dc180014883267e
|
7
|
+
data.tar.gz: cc2846b357694af6e720cdc87d081968625f76870090116d056a7d5ace468bb6077231f5fb8e061b650a4c1fed6ee6e6d14d19c9ffe999d42ec5348d3fc4c3b3
|
data/README.md
CHANGED
@@ -207,6 +207,29 @@ my_tour:
|
|
207
207
|
* `action` is one of the Shepherd tour method names, i.e. `cancel`, `next`, or `complete`
|
208
208
|
* `classes` are the CSS class names you want applied to the button
|
209
209
|
|
210
|
+
### Flipper integration
|
211
|
+
|
212
|
+
If you have [Flipper](https://github.com/jnunemaker/flipper) installed as a dependency in your project you will be able to enable or disable tours based on a flipper using the `flipper_key` option. This will automatically enable a tour when this flipper is active and disable it when it's inactive.
|
213
|
+
|
214
|
+
```yml
|
215
|
+
walkthrough:
|
216
|
+
flipper_key: "name_of_flipper"
|
217
|
+
steps:
|
218
|
+
1:
|
219
|
+
text: "This walkthrough will show you how to..."
|
220
|
+
```
|
221
|
+
|
222
|
+
If you would like to disable a tour when a flipper is active you may couple the `flipper_key` option with the `flipper_activation` option. `flipper_activation` supports "enabled" or "disabled" as options. If you enter something other than "enabled" or "disabled" it will use the default, which is "enabled".
|
223
|
+
|
224
|
+
```yml
|
225
|
+
walkthrough:
|
226
|
+
flipper_key: "name_of_flipper"
|
227
|
+
flipper_activation: "disabled"
|
228
|
+
steps:
|
229
|
+
1:
|
230
|
+
text: "This walkthrough will show you how to..."
|
231
|
+
```
|
232
|
+
|
210
233
|
### Testing your tours
|
211
234
|
|
212
235
|
Abraham loads tour definitions once when you start your server. Restart your server to see tour changes.
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module AbrahamHelper
|
4
|
+
include FlipperHelper
|
5
|
+
|
4
6
|
def abraham_tour
|
5
7
|
# Do we have tours for this controller/action in the user's locale?
|
6
8
|
tours = Rails.configuration.abraham.tours["#{controller_path}.#{action_name}.#{I18n.locale}"]
|
@@ -21,11 +23,16 @@ module AbrahamHelper
|
|
21
23
|
tour_html = ''
|
22
24
|
|
23
25
|
tour_keys.each do |key|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
flipper_key = tours[key]["flipper_key"]
|
27
|
+
flipper_activation = tours[key]["flipper_activation"]
|
28
|
+
|
29
|
+
if should_add_tour(flipper_key, flipper_activation)
|
30
|
+
tour_html += render(partial: "application/abraham",
|
31
|
+
locals: { tour_name: key,
|
32
|
+
tour_completed: tour_keys_completed.include?(key),
|
33
|
+
trigger: tours[key]["trigger"],
|
34
|
+
steps: tours[key]["steps"] })
|
35
|
+
end
|
29
36
|
end
|
30
37
|
|
31
38
|
tour_html.html_safe
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FlipperHelper
|
4
|
+
def should_add_tour(flipper_key, flipper_activation)
|
5
|
+
return true if !flipper_defined?
|
6
|
+
|
7
|
+
case process_activation_option(flipper_activation)
|
8
|
+
when "enabled"
|
9
|
+
return (flipper_key && Flipper.enabled?(flipper_key.to_sym)) || flipper_key.nil?
|
10
|
+
when "disabled"
|
11
|
+
return (flipper_key && !Flipper.enabled?(flipper_key.to_sym)) || flipper_key.nil?
|
12
|
+
else
|
13
|
+
return false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def flipper_defined?
|
19
|
+
Object.const_defined?("Flipper")
|
20
|
+
end
|
21
|
+
|
22
|
+
def process_activation_option(flipper_activation)
|
23
|
+
return "disabled" if flipper_activation == "disabled"
|
24
|
+
"enabled"
|
25
|
+
end
|
26
|
+
end
|
data/lib/abraham/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abraham
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Abbett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sassc-rails
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- app/assets/stylesheets/abraham/theme-default.scss
|
97
97
|
- app/controllers/abraham_histories_controller.rb
|
98
98
|
- app/helpers/abraham_helper.rb
|
99
|
+
- app/helpers/flipper_helper.rb
|
99
100
|
- app/models/abraham_history.rb
|
100
101
|
- app/models/application_record.rb
|
101
102
|
- app/views/application/_abraham.html.erb
|