demo_mode 1.4.0 → 1.4.1

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: f46c5ac419af565102df4efa36cc8383f847cbe680a48c12b362bbbde6c83417
4
- data.tar.gz: b202d52d608dfbcf1c09fc880d34597b99c457bba786db624d414c671ffe1291
3
+ metadata.gz: e75a91ac2a0b995cd5fbcfa34904c1307aa0c6c92fcab77f1a688736d7c0b5c9
4
+ data.tar.gz: 9bf6279af73413607cbc11be096f1859310bf215dcd1f09282aab198f9519866
5
5
  SHA512:
6
- metadata.gz: 1da08b4e2d624471ac68b6417b16bd2217594d037d988906a80f6b6c760ddce5c576040c14fc97448efd766bf83da5a5d147fe35b0a216574cc642146bfa4852
7
- data.tar.gz: a6c9edbbc801d7976df372fbd2ecf6544bc9c64f89083a483bd8ea20f828b3c0f43177c899b618079ebc46de91b35e3e169616ff95cb72d270e6c7ce7669cf98
6
+ metadata.gz: 03554b83a0d69bcac5b4ace0a246468b6235f112aa5df2491e33622ee1538877edecab2d185a16611b9305741d3cccc7d1d8ea579089a0c87cf50b505ba2094b
7
+ data.tar.gz: 286eef0bd8b57736f4388d85bd0aaf7847f63d9cde752c90513f45ca03f5f67d080a49fe2ce02f1cbc522ba6b1c6520bdd82256c3e5e6cd350944d785122e588
@@ -25,7 +25,7 @@ module DemoMode
25
25
 
26
26
  def create
27
27
  @session = Session.new(create_params)
28
- @session.save_and_generate_account_later!
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
31
  f.html { redirect_to @session }
@@ -77,5 +77,9 @@ module DemoMode
77
77
  def create_params
78
78
  params.require(:session).permit(:persona_name, :variant)
79
79
  end
80
+
81
+ def options_params
82
+ params.fetch(:options, {}).permit!
83
+ end
80
84
  end
81
85
  end
@@ -2,12 +2,12 @@
2
2
 
3
3
  module DemoMode
4
4
  class AccountGenerationJob < DemoMode.base_job_name.constantize
5
- def perform(session)
5
+ def perform(session, **options)
6
6
  session.with_lock do
7
7
  persona = session.persona
8
8
  raise "Unknown persona: #{session.persona_name}" if persona.blank?
9
9
 
10
- signinable = persona.generate!(variant: session.variant, password: session.signinable_password)
10
+ signinable = persona.generate!(variant: session.variant, password: session.signinable_password, options: options)
11
11
  session.update!(signinable: signinable)
12
12
  end
13
13
  raise "Failed to create signinable persona!" if session.signinable.blank?
@@ -25,17 +25,17 @@ module DemoMode
25
25
  DemoMode.personas.find { |p| p.name.to_s == persona_name.to_s }
26
26
  end
27
27
 
28
- def save_and_generate_account!
28
+ def save_and_generate_account!(**options)
29
29
  transaction do
30
30
  save!
31
- AccountGenerationJob.perform_now(self)
31
+ AccountGenerationJob.perform_now(self, **options)
32
32
  end
33
33
  end
34
34
 
35
- def save_and_generate_account_later!
35
+ def save_and_generate_account_later!(**options)
36
36
  transaction do
37
37
  save!
38
- AccountGenerationJob.perform_later(self)
38
+ AccountGenerationJob.perform_later(self, **options)
39
39
  end
40
40
  end
41
41
 
@@ -54,11 +54,11 @@ module DemoMode
54
54
  @variants ||= {}.with_indifferent_access
55
55
  end
56
56
 
57
- def generate!(variant: :default, password: nil)
57
+ def generate!(variant: :default, password: nil, options: {})
58
58
  variant = variants[variant]
59
59
  CleverSequence.reset! if defined?(CleverSequence)
60
60
  DemoMode.current_password = password if password
61
- DemoMode.around_persona_generation.call(variant.signinable_generator)
61
+ DemoMode.around_persona_generation.call(variant.signinable_generator, **options)
62
62
  ensure
63
63
  DemoMode.current_password = nil
64
64
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DemoMode
4
- VERSION = '1.4.0'
4
+ VERSION = '1.4.1'
5
5
  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: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Griffith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-23 00:00:00.000000000 Z
11
+ date: 2025-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cli-ui