demo_mode 3.0.0 → 3.1.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: 68c310d6d0797c6f17fb85f41ec11f72305619323bf7bf2174d6b6a44c2954f4
4
- data.tar.gz: fd5fe9b737d929072e50576ffedfe93d5e516414adb384a4e6d2b4cdc856868a
3
+ metadata.gz: 10de8b9508baa5777b2781794f82c8babd7f8c24bd70dcdfe3b8a7a875e583d8
4
+ data.tar.gz: 76b7e2216e689a68c81fed89e90b553642936a7eff850a0b65b0f75e9b809f1b
5
5
  SHA512:
6
- metadata.gz: a235b3dd997af98b44b1947fc3a8832f33793ef0600a027a935cf8cfc0d6c40f9232b2fe969dc146845e319ae9c150001d33308568e6876b9667a4968f8279d1
7
- data.tar.gz: f848277ff5fa0a11e27e2c6f0d701069a17b818eceba5e0d86a7e9ce12c5592dfa0b7fe86da1248f07f07122824ccb84a2e3090cb6d0909fbb702f65824a0acf
6
+ metadata.gz: '087250bc248228cd873012cf28653b98919864f46146ed278f0138a0e4000e75d5f151695e36735e795115cdcf2f042fff1dd1d3f14e4ae15bca37a318b05fee'
7
+ data.tar.gz: 9300fc6fa3fd1a2f84dc904ea8c7822e3b8b07e05d225ca403d423cbf9ae484b9250c5de2463dafe8a73453a0c3c25585aff35ca1a01884acb98568529672206
@@ -26,6 +26,7 @@ module DemoMode
26
26
  def create
27
27
  @session = Session.new(create_params)
28
28
  @session.save_and_generate_account_later!(**options_params.to_unsafe_h.deep_symbolize_keys)
29
+ @session.reload
29
30
  session[:demo_session] = { 'id' => @session.id, 'last_request_at' => Time.zone.now }
30
31
  respond_to do |f|
31
32
  f.html { redirect_to @session, status: :see_other }
@@ -58,6 +59,7 @@ module DemoMode
58
59
  status: @session.status,
59
60
  username: @session.signinable_username,
60
61
  password: @session.signinable_password,
62
+ metadata: @session.signinable_metadata,
61
63
  }
62
64
  end
63
65
  end
@@ -22,6 +22,7 @@ module DemoMode
22
22
  delegate :begin_demo,
23
23
  :custom_sign_in?,
24
24
  :display_credentials?,
25
+ :metadata,
25
26
  to: :persona,
26
27
  allow_nil: true
27
28
 
@@ -29,6 +30,10 @@ module DemoMode
29
30
  signinable.public_send(DemoMode.signinable_username_method)
30
31
  end
31
32
 
33
+ def signinable_metadata
34
+ successful? ? metadata.call(self) : {}
35
+ end
36
+
32
37
  # Heads up: finding a persona is not guaranteed (e.g. past sessions)
33
38
  def persona
34
39
  DemoMode.personas.find { |p| p.name.to_s == persona_name.to_s }
@@ -38,6 +38,14 @@ module DemoMode
38
38
  end
39
39
  end
40
40
 
41
+ def metadata(&block)
42
+ if block
43
+ @metadata = block
44
+ else
45
+ @metadata ||= ->(_) { {} }
46
+ end
47
+ end
48
+
41
49
  def sign_in_as(&signinable_generator)
42
50
  variant(:default) do
43
51
  sign_in_as(&signinable_generator)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DemoMode
4
- VERSION = '3.0.0'
4
+ VERSION = '3.1.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: demo_mode
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Griffith
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-02-19 00:00:00.000000000 Z
10
+ date: 2025-03-19 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: actionpack
@@ -351,7 +350,6 @@ licenses:
351
350
  metadata:
352
351
  rubygems_mfa_required: 'true'
353
352
  changelog_uri: https://github.com/Betterment/demo_mode/blob/main/CHANGELOG.md
354
- post_install_message:
355
353
  rdoc_options: []
356
354
  require_paths:
357
355
  - lib
@@ -366,8 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
366
364
  - !ruby/object:Gem::Version
367
365
  version: '0'
368
366
  requirements: []
369
- rubygems_version: 3.5.23
370
- signing_key:
367
+ rubygems_version: 3.6.5
371
368
  specification_version: 4
372
369
  summary: A configurable demo mode for your Rails app.
373
370
  test_files: []