demo_mode 2.1.0 → 2.3.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 +4 -4
- data/Rakefile +6 -0
- data/app/controllers/demo_mode/sessions_controller.rb +1 -1
- data/app/models/demo_mode/session.rb +4 -4
- data/app/views/layouts/demo_mode/application.html.erb +7 -3
- data/lib/demo_mode/cli.rb +40 -33
- data/lib/demo_mode/clis/multi_word_search_patch.rb +1 -1
- data/lib/demo_mode/config.rb +5 -5
- data/lib/demo_mode/version.rb +1 -1
- data/lib/demo_mode.rb +4 -4
- metadata +17 -31
- /data/public/{assets/demo_mode → demo_mode/assets}/demo_mode.css +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/demo_mode.js +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/icon--tophat.png +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/icon--user.png +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/icon--users.png +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/loader.png +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/vendor/normalize-v8.0.1.css +0 -0
- /data/public/{assets/demo_mode → demo_mode/assets}/vendor/typed-v2.1.0.js +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd6c9ac4c3457ca727a5869cfb4ee13dd9d189a8cbb1bfee91bed6d71c5103b4
|
4
|
+
data.tar.gz: 6ccf2279207588ee5cd1efcca188766badb00ed85a2e15bae373f4fc2eb1796d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5f8a1e8e0f04c228e748e1f149c8c4f4a6e9ace74c9a58e243c23e47b3ab2c74b37f172af9a69ca15e79e6b1f0be8048e81236bfdea120fd17a02a0db461aa2
|
7
|
+
data.tar.gz: 3bab26eddd3379a276c0df342c2b895168b570af6bca36f448fd85b007874692f87c91d4ce12c9910a3a414f86f40006da0f25a30735a802b28a7e8cacd5a26b
|
data/Rakefile
CHANGED
@@ -8,6 +8,9 @@ end
|
|
8
8
|
|
9
9
|
Bundler::GemHelper.install_tasks
|
10
10
|
|
11
|
+
APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
|
12
|
+
load 'rails/tasks/engine.rake'
|
13
|
+
|
11
14
|
require 'rubocop/rake_task'
|
12
15
|
RuboCop::RakeTask.new
|
13
16
|
|
@@ -15,6 +18,9 @@ require 'rspec/core'
|
|
15
18
|
require 'rspec/core/rake_task'
|
16
19
|
RSpec::Core::RakeTask.new(:spec)
|
17
20
|
|
21
|
+
desc 'Create a persona'
|
22
|
+
task create_user: 'app:persona:create'
|
23
|
+
|
18
24
|
def default_task
|
19
25
|
if ENV.fetch('APPRAISAL_INITIALIZED', nil) || ENV.fetch('CI', nil)
|
20
26
|
%i(rubocop spec)
|
@@ -28,7 +28,7 @@ module DemoMode
|
|
28
28
|
@session.save_and_generate_account_later!(**options_params.to_unsafe_h.deep_symbolize_keys)
|
29
29
|
session[:demo_session] = { 'id' => @session.id, 'last_request_at' => Time.zone.now }
|
30
30
|
respond_to do |f|
|
31
|
-
f.html { redirect_to @session }
|
31
|
+
f.html { redirect_to @session, status: :see_other }
|
32
32
|
f.json { render_signinable_json }
|
33
33
|
end
|
34
34
|
end
|
@@ -11,10 +11,10 @@ module DemoMode
|
|
11
11
|
before_create :set_password!
|
12
12
|
|
13
13
|
delegate :begin_demo,
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
:custom_sign_in?,
|
15
|
+
:display_credentials?,
|
16
|
+
to: :persona,
|
17
|
+
allow_nil: true
|
18
18
|
|
19
19
|
def signinable_username
|
20
20
|
signinable.public_send(DemoMode.signinable_username_method)
|
@@ -7,11 +7,15 @@
|
|
7
7
|
<%= favicon_link_tag '/favicon.ico' %>
|
8
8
|
|
9
9
|
<% DemoMode.stylesheets.each do |stylesheet| %>
|
10
|
-
|
10
|
+
<% if stylesheet.respond_to?(:call) %>
|
11
|
+
<%= stylesheet_link_tag(instance_exec(&stylesheet), media: 'all') %>
|
12
|
+
<% else %>
|
13
|
+
<%= stylesheet_link_tag(stylesheet, media: 'all') %>
|
14
|
+
<% end %>
|
11
15
|
<% end %>
|
12
16
|
|
13
|
-
<script src="/assets/
|
14
|
-
<script src="/assets/demo_mode
|
17
|
+
<script src="/demo_mode/assets/vendor/typed-v2.1.0.js"></script>
|
18
|
+
<script src="/demo_mode/assets/demo_mode.js?v=<%= DemoMode::VERSION %>"></script>
|
15
19
|
<%= csrf_meta_tags %>
|
16
20
|
<meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1.0, user-scalable=0">
|
17
21
|
</head>
|
data/lib/demo_mode/cli.rb
CHANGED
@@ -27,58 +27,65 @@ class DemoMode::Cli
|
|
27
27
|
private
|
28
28
|
|
29
29
|
def ask_next_step
|
30
|
-
CLI::UI::Prompt.ask(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
prompt_persona
|
36
|
-
end
|
30
|
+
case CLI::UI::Prompt.ask("What next?", options: ["I'm done", "Keep going"])
|
31
|
+
in "I'm done"
|
32
|
+
puts "good bye"
|
33
|
+
in "Keep going"
|
34
|
+
prompt_persona
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
40
|
-
def prompt_persona
|
38
|
+
def prompt_persona
|
41
39
|
CLI::UI::Frame.open("{{*}} Generate an Account! {{*}}") do
|
42
|
-
|
43
|
-
DemoMode.personas.sort_by { |p| p.name.to_s }.each do |persona|
|
44
|
-
persona_label = persona.name.to_s.titleize
|
45
|
-
|
46
|
-
handler.option(persona_label) do
|
47
|
-
persona.features.each do |feature|
|
48
|
-
puts "👉 #{feature}"
|
49
|
-
end
|
50
|
-
|
51
|
-
named_tags = SemanticLogger.named_tags if defined?(SemanticLogger)
|
52
|
-
|
53
|
-
variant = variant_for(persona, persona_label)
|
40
|
+
personas = DemoMode.personas.sort_by { |p| p.name.to_s }
|
54
41
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
session = DemoMode::Session.new(persona_name: persona.name, variant: variant)
|
59
|
-
session.save_and_generate_account!
|
60
|
-
spinner.update_title('done!')
|
61
|
-
created_sessions << session
|
62
|
-
end
|
63
|
-
end
|
42
|
+
persona_id = CLI::UI::Prompt.ask('Which persona should we use?') do |handler|
|
43
|
+
personas.each.with_index do |persona, i|
|
44
|
+
handler.option(persona_label(persona)) { i.to_s }
|
64
45
|
end
|
65
46
|
end
|
47
|
+
|
48
|
+
execute_persona(personas[persona_id.to_i])
|
66
49
|
end
|
50
|
+
|
67
51
|
display_personas
|
68
52
|
ask_next_step
|
69
53
|
end
|
70
54
|
|
71
|
-
def
|
55
|
+
def execute_persona(persona)
|
56
|
+
persona.features.each do |feature|
|
57
|
+
puts "👉 #{feature}"
|
58
|
+
end
|
59
|
+
|
60
|
+
named_tags = SemanticLogger.named_tags if defined?(SemanticLogger)
|
61
|
+
|
62
|
+
variant = variant_for(persona)
|
63
|
+
|
64
|
+
CLI::UI::Spinner.spin("generating account...") do |spinner|
|
65
|
+
SemanticLogger.push_named_tags(named_tags) if defined?(SemanticLogger)
|
66
|
+
|
67
|
+
session = DemoMode::Session.new(persona_name: persona.name, variant: variant)
|
68
|
+
session.save_and_generate_account!
|
69
|
+
spinner.update_title('done!')
|
70
|
+
created_sessions << session
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def variant_for(persona)
|
72
75
|
if persona.variants.keys == ['default']
|
73
76
|
:default
|
74
77
|
else
|
75
78
|
CLI::UI::Prompt.ask(
|
76
|
-
"Which variant should we use for #{persona_label}?",
|
77
|
-
options: persona.variants.keys,
|
78
|
-
)
|
79
|
+
"Which variant should we use for #{persona_label(persona)}?",
|
80
|
+
options: persona.variants.keys.map(&:to_s),
|
81
|
+
).to_sym
|
79
82
|
end
|
80
83
|
end
|
81
84
|
|
85
|
+
def persona_label(persona)
|
86
|
+
persona.name.to_s.titleize
|
87
|
+
end
|
88
|
+
|
82
89
|
def display_personas
|
83
90
|
created_sessions.each do |session|
|
84
91
|
CLI::UI::Frame.open("{{*}} #{session.persona_name} {{*}}") do
|
@@ -19,7 +19,7 @@ module DemoMode::Clis
|
|
19
19
|
CLI::UI::Prompt.const_get(:InteractiveOptions)
|
20
20
|
end
|
21
21
|
|
22
|
-
def presented_options(recalculate: false) # rubocop:disable Metrics/
|
22
|
+
def presented_options(recalculate: false) # rubocop:disable Metrics/PerceivedComplexity
|
23
23
|
return @presented_options unless recalculate
|
24
24
|
|
25
25
|
@presented_options = @options.zip(1..Float::INFINITY)
|
data/lib/demo_mode/config.rb
CHANGED
@@ -30,8 +30,8 @@ module DemoMode
|
|
30
30
|
|
31
31
|
def stylesheets
|
32
32
|
@stylesheets ||= [
|
33
|
-
"/assets/
|
34
|
-
"/assets/demo_mode
|
33
|
+
"/demo_mode/assets/vendor/normalize-v8.0.1.css",
|
34
|
+
"/demo_mode/assets/demo_mode.css?v=#{VERSION}",
|
35
35
|
]
|
36
36
|
end
|
37
37
|
|
@@ -47,7 +47,7 @@ module DemoMode
|
|
47
47
|
if block
|
48
48
|
@loader = block
|
49
49
|
else
|
50
|
-
@loader ||= ->(_) { image_tag("/assets/
|
50
|
+
@loader ||= ->(_) { image_tag("/demo_mode/assets/loader.png?v=#{VERSION}") }
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -64,8 +64,8 @@ module DemoMode
|
|
64
64
|
end
|
65
65
|
|
66
66
|
WORDS = %w(area book business case child company country day eye fact family government group home job life lot money month night number
|
67
|
-
|
68
|
-
|
67
|
+
office people phone place point problem program question right room school state story student study system thing time water
|
68
|
+
way week word work world year).freeze
|
69
69
|
|
70
70
|
def password(&block)
|
71
71
|
if block
|
data/lib/demo_mode/version.rb
CHANGED
data/lib/demo_mode.rb
CHANGED
@@ -9,16 +9,16 @@ require 'demo_mode/persona'
|
|
9
9
|
|
10
10
|
module DemoMode
|
11
11
|
ICONS = {
|
12
|
-
tophat: "/assets/
|
13
|
-
user: "/assets/
|
14
|
-
users: "/assets/
|
12
|
+
tophat: "/demo_mode/assets/icon--tophat.png?v=#{VERSION}",
|
13
|
+
user: "/demo_mode/assets/icon--user.png?v=#{VERSION}",
|
14
|
+
users: "/demo_mode/assets/icon--users.png?v=#{VERSION}",
|
15
15
|
}.freeze
|
16
16
|
|
17
17
|
class << self
|
18
18
|
delegate(*Config.configurations, to: :configuration)
|
19
19
|
|
20
20
|
def enabled?
|
21
|
-
ActiveModel::Type::Boolean::FALSE_VALUES.exclude?(ENV.fetch('DEMO_MODE', false)).tap do |enabled|
|
21
|
+
ActiveModel::Type::Boolean::FALSE_VALUES.exclude?(ENV.fetch('DEMO_MODE', 'false')).tap do |enabled|
|
22
22
|
webvalve_check! if enabled && defined?(WebValve)
|
23
23
|
end
|
24
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: demo_mode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Griffith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-02-
|
11
|
+
date: 2025-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -94,16 +94,16 @@ dependencies:
|
|
94
94
|
name: cli-ui
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- - "
|
97
|
+
- - "~>"
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
99
|
+
version: '2.3'
|
100
100
|
type: :runtime
|
101
101
|
prerelease: false
|
102
102
|
version_requirements: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- - "
|
104
|
+
- - "~>"
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: '
|
106
|
+
version: '2.3'
|
107
107
|
- !ruby/object:Gem::Dependency
|
108
108
|
name: railties
|
109
109
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,20 +186,6 @@ dependencies:
|
|
186
186
|
- - ">="
|
187
187
|
- !ruby/object:Gem::Version
|
188
188
|
version: '0'
|
189
|
-
- !ruby/object:Gem::Dependency
|
190
|
-
name: combustion
|
191
|
-
requirement: !ruby/object:Gem::Requirement
|
192
|
-
requirements:
|
193
|
-
- - ">="
|
194
|
-
- !ruby/object:Gem::Version
|
195
|
-
version: '0'
|
196
|
-
type: :development
|
197
|
-
prerelease: false
|
198
|
-
version_requirements: !ruby/object:Gem::Requirement
|
199
|
-
requirements:
|
200
|
-
- - ">="
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: '0'
|
203
189
|
- !ruby/object:Gem::Dependency
|
204
190
|
name: cuprite
|
205
191
|
requirement: !ruby/object:Gem::Requirement
|
@@ -257,7 +243,7 @@ dependencies:
|
|
257
243
|
- !ruby/object:Gem::Version
|
258
244
|
version: '0'
|
259
245
|
- !ruby/object:Gem::Dependency
|
260
|
-
name:
|
246
|
+
name: sorbet-runtime
|
261
247
|
requirement: !ruby/object:Gem::Requirement
|
262
248
|
requirements:
|
263
249
|
- - ">="
|
@@ -271,7 +257,7 @@ dependencies:
|
|
271
257
|
- !ruby/object:Gem::Version
|
272
258
|
version: '0'
|
273
259
|
- !ruby/object:Gem::Dependency
|
274
|
-
name:
|
260
|
+
name: sprockets-rails
|
275
261
|
requirement: !ruby/object:Gem::Requirement
|
276
262
|
requirements:
|
277
263
|
- - ">="
|
@@ -285,7 +271,7 @@ dependencies:
|
|
285
271
|
- !ruby/object:Gem::Version
|
286
272
|
version: '0'
|
287
273
|
- !ruby/object:Gem::Dependency
|
288
|
-
name:
|
274
|
+
name: sqlite3
|
289
275
|
requirement: !ruby/object:Gem::Requirement
|
290
276
|
requirements:
|
291
277
|
- - ">="
|
@@ -350,14 +336,14 @@ files:
|
|
350
336
|
- lib/generators/demo_mode/install_generator.rb
|
351
337
|
- lib/generators/templates/initializer.rb
|
352
338
|
- lib/generators/templates/sample_persona.rb
|
353
|
-
- public/assets/demo_mode
|
354
|
-
- public/assets/demo_mode
|
355
|
-
- public/assets/
|
356
|
-
- public/assets/
|
357
|
-
- public/assets/
|
358
|
-
- public/assets/
|
359
|
-
- public/assets/
|
360
|
-
- public/assets/
|
339
|
+
- public/demo_mode/assets/demo_mode.css
|
340
|
+
- public/demo_mode/assets/demo_mode.js
|
341
|
+
- public/demo_mode/assets/icon--tophat.png
|
342
|
+
- public/demo_mode/assets/icon--user.png
|
343
|
+
- public/demo_mode/assets/icon--users.png
|
344
|
+
- public/demo_mode/assets/loader.png
|
345
|
+
- public/demo_mode/assets/vendor/normalize-v8.0.1.css
|
346
|
+
- public/demo_mode/assets/vendor/typed-v2.1.0.js
|
361
347
|
homepage: http://github.com/betterment/demo_mode
|
362
348
|
licenses:
|
363
349
|
- MIT
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|