onboardable 1.3.2 → 1.4.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: 8937c95a5e3ca637b90d8ef871d57e1bf7f23e44c52549f66e38cfbd13120602
4
- data.tar.gz: '08c904a659fbc0dcead1c41babfcd733b3b5f0c46fd7b1a1279c1479ee9730c1'
3
+ metadata.gz: 9b6bddf9e6bd140af8b288a658222c3742ce07f6b9f2585716ba28e9c24a1097
4
+ data.tar.gz: '09a2c6fe377f80a33e1fbff274c9e05cfa6c907ae3661def938b961bf1afe181'
5
5
  SHA512:
6
- metadata.gz: e30650b2b899483742c4d98b09250a38428ae3e5d476c435178575bc44d767c0d397cbadb55a78300ca43b258bd72ca8c917e0175283ce49210c2d85d6aefc6c
7
- data.tar.gz: 7625b9d924d5c477028721e87324437c337e91cfc3ef77da97545b55980f948fd7d380d48cffbd7b4577f2fac4e71f05621fc53cbb5409b5389786e402741657
6
+ metadata.gz: '0379a520c2bb0699772c500866924497fb6ab89ffacbb93d3e7b34b0fac3f614ae899d8ab5bff49a9189d6c46f3d37fe1c7e557c95c9929d2205c03530edc63c'
7
+ data.tar.gz: ce3d1feaca082deedc5dbf4d20fb56663ec403d3614e35e35c1ebb21b237864bde9599da46e8ff0e16a7d03164253fea878c9f736afc0631bba982a706b25200
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.4.0] - 2025-04-01
6
+
7
+ - Add support for Ruby 3.4.
8
+ - Drop support for Ruby 3.0.
9
+
10
+ ## [1.3.3] - 2024-08-16
11
+
12
+ - Updated rbs files to improve type-checking.
13
+ - Added github-actions package ecosystem to the development workflow.
14
+
5
15
  ## [1.3.2] - 2024-07-10
6
16
 
7
17
  - Added adjustments to rbs files to improve type-checking.
data/Gemfile.lock CHANGED
@@ -1,68 +1,73 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- onboardable (1.3.2)
4
+ onboardable (1.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- ast (2.4.2)
10
- diff-lcs (1.5.1)
11
- docile (1.4.0)
12
- json (2.7.2)
13
- language_server-protocol (3.17.0.3)
14
- parallel (1.25.1)
15
- parser (3.3.3.0)
9
+ ast (2.4.3)
10
+ diff-lcs (1.6.1)
11
+ docile (1.4.1)
12
+ json (2.10.2)
13
+ language_server-protocol (3.17.0.4)
14
+ lint_roller (1.1.0)
15
+ parallel (1.26.3)
16
+ parser (3.3.7.4)
16
17
  ast (~> 2.4.1)
17
18
  racc
18
- racc (1.8.0)
19
+ prism (1.4.0)
20
+ racc (1.8.1)
19
21
  rainbow (3.1.1)
20
22
  rake (13.2.1)
21
- regexp_parser (2.9.2)
22
- rexml (3.3.1)
23
- strscan
23
+ regexp_parser (2.10.0)
24
24
  rspec (3.13.0)
25
25
  rspec-core (~> 3.13.0)
26
26
  rspec-expectations (~> 3.13.0)
27
27
  rspec-mocks (~> 3.13.0)
28
- rspec-core (3.13.0)
28
+ rspec-core (3.13.3)
29
29
  rspec-support (~> 3.13.0)
30
- rspec-expectations (3.13.1)
30
+ rspec-expectations (3.13.3)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
32
32
  rspec-support (~> 3.13.0)
33
- rspec-mocks (3.13.1)
33
+ rspec-mocks (3.13.2)
34
34
  diff-lcs (>= 1.2.0, < 2.0)
35
35
  rspec-support (~> 3.13.0)
36
- rspec-support (3.13.1)
37
- rubocop (1.64.1)
36
+ rspec-support (3.13.2)
37
+ rubocop (1.75.1)
38
38
  json (~> 2.3)
39
- language_server-protocol (>= 3.17.0)
39
+ language_server-protocol (~> 3.17.0.2)
40
+ lint_roller (~> 1.1.0)
40
41
  parallel (~> 1.10)
41
42
  parser (>= 3.3.0.2)
42
43
  rainbow (>= 2.2.2, < 4.0)
43
- regexp_parser (>= 1.8, < 3.0)
44
- rexml (>= 3.2.5, < 4.0)
45
- rubocop-ast (>= 1.31.1, < 2.0)
44
+ regexp_parser (>= 2.9.3, < 3.0)
45
+ rubocop-ast (>= 1.43.0, < 2.0)
46
46
  ruby-progressbar (~> 1.7)
47
- unicode-display_width (>= 2.4.0, < 3.0)
48
- rubocop-ast (1.31.3)
49
- parser (>= 3.3.1.0)
50
- rubocop-performance (1.21.1)
51
- rubocop (>= 1.48.1, < 2.0)
52
- rubocop-ast (>= 1.31.1, < 2.0)
53
- rubocop-rake (0.6.0)
54
- rubocop (~> 1.0)
55
- rubocop-rspec (3.0.2)
56
- rubocop (~> 1.61)
47
+ unicode-display_width (>= 2.4.0, < 4.0)
48
+ rubocop-ast (1.43.0)
49
+ parser (>= 3.3.7.2)
50
+ prism (~> 1.4)
51
+ rubocop-performance (1.25.0)
52
+ lint_roller (~> 1.1)
53
+ rubocop (>= 1.75.0, < 2.0)
54
+ rubocop-ast (>= 1.38.0, < 2.0)
55
+ rubocop-rake (0.7.1)
56
+ lint_roller (~> 1.1)
57
+ rubocop (>= 1.72.1)
58
+ rubocop-rspec (3.5.0)
59
+ lint_roller (~> 1.1)
60
+ rubocop (~> 1.72, >= 1.72.1)
57
61
  ruby-progressbar (1.13.0)
58
62
  simplecov (0.22.0)
59
63
  docile (~> 1.1)
60
64
  simplecov-html (~> 0.11)
61
65
  simplecov_json_formatter (~> 0.1)
62
- simplecov-html (0.12.3)
66
+ simplecov-html (0.13.1)
63
67
  simplecov_json_formatter (0.1.4)
64
- strscan (3.1.0)
65
- unicode-display_width (2.5.0)
68
+ unicode-display_width (3.1.4)
69
+ unicode-emoji (~> 4.0, >= 4.0.4)
70
+ unicode-emoji (4.0.4)
66
71
 
67
72
  PLATFORMS
68
73
  x86_64-darwin-23
@@ -72,11 +77,11 @@ DEPENDENCIES
72
77
  onboardable!
73
78
  rake (~> 13.2, >= 13.2.1)
74
79
  rspec (~> 3.13)
75
- rubocop (~> 1.64, >= 1.64.1)
80
+ rubocop (~> 1.65, >= 1.65.1)
76
81
  rubocop-performance (~> 1.21, >= 1.21.1)
77
- rubocop-rake (~> 0.6.0)
78
- rubocop-rspec (~> 3.0, >= 3.0.2)
82
+ rubocop-rake (~> 0.7.1)
83
+ rubocop-rspec (~> 3.0, >= 3.0.4)
79
84
  simplecov (~> 0.22.0)
80
85
 
81
86
  BUNDLED WITH
82
- 2.5.15
87
+ 2.6.6
data/README.md CHANGED
@@ -73,23 +73,23 @@ that allow step navigation and state verification:
73
73
  - Instantiate the onboarding process when a `User` object is created.
74
74
  This sets up the initial step based on the defined onboarding flow.
75
75
 
76
- ```ruby
77
- onboarding = User.new.onboarding
78
- ```
76
+ ```ruby
77
+ onboarding = User.new.onboarding
78
+ ```
79
79
 
80
80
  - For a more detailed setup, use the `Onboardable::List::Builder` to
81
81
  create a custom onboarding flow with specific steps and details.
82
82
 
83
- ```ruby
84
- builder = Onboardable::List::Builder.new
83
+ ```ruby
84
+ builder = Onboardable::List::Builder.new
85
85
 
86
- builder.create_step 'welcome', message: 'Welcome to your new account!'
87
- builder.create_step 'account_setup', task: 'Create credentials'
88
- builder.create_step 'confirmation'
89
- builder.create_step_from ExternalStepProvider
86
+ builder.create_step 'welcome', message: 'Welcome to your new account!'
87
+ builder.create_step 'account_setup', task: 'Create credentials'
88
+ builder.create_step 'confirmation'
89
+ builder.create_step_from ExternalStepProvider
90
90
 
91
- onboarding = builder.build
92
- ```
91
+ onboarding = builder.build
92
+ ```
93
93
 
94
94
  1. **Check the order of steps**
95
95
 
@@ -145,32 +145,32 @@ that allow step navigation and state verification:
145
145
  - Calculate the progress or completion percentage of the onboarding process
146
146
  to provide users with an indication of how far they have progressed.
147
147
 
148
- ```ruby
149
- onboarding.progress # Returns the completion percentage
150
- ```
148
+ ```ruby
149
+ onboarding.progress # Returns the completion percentage
150
+ ```
151
151
 
152
152
  - To customize the progress calculation formula, define a lambda function
153
153
  that takes the current step index and the total number of steps as arguments.
154
154
 
155
- ```ruby
156
- CALCULATION = ->(step_index, steps_size) { step_index + steps_size }
157
- onboarding.progress(CALCULATION)
158
- ```
155
+ ```ruby
156
+ CALCULATION = ->(step_index, steps_size) { step_index + steps_size }
157
+ onboarding.progress(CALCULATION)
158
+ ```
159
159
 
160
160
  - Alternatively, set the custom progress calculation formula during the
161
161
  onboarding definition to automatically calculate the progress.
162
162
 
163
- ```ruby
164
- class User
165
- include Onboardable
163
+ ```ruby
164
+ class User
165
+ include Onboardable
166
166
 
167
- CALCULATION = ->(step_index, steps_size) { step_index + steps_size }
167
+ CALCULATION = ->(step_index, steps_size) { step_index + steps_size }
168
168
 
169
- has_onboarding progress_calculation: CALCULATION do
170
- # ...
171
- end
172
- end
173
- ```
169
+ has_onboarding progress_calculation: CALCULATION do
170
+ # ...
171
+ end
172
+ end
173
+ ```
174
174
 
175
175
  1. **Access Current Step Details**
176
176
 
@@ -22,7 +22,7 @@ module Onboardable
22
22
  # @param klass [Class] The class that failed to convert.
23
23
  # @param step [unknown] The object that was attempted to be converted to a Step.
24
24
  def initialize(klass, step)
25
- super("can't convert #{klass} to Step (#{klass}#to_onboarding_step gives #{step.class}).")
25
+ super("Can't convert #{klass} to Step (#{klass}#to_onboarding_step gives #{step.class}).")
26
26
  end
27
27
  end
28
28
 
@@ -94,14 +94,14 @@ module Onboardable
94
94
  #
95
95
  # @raise [FirstStepError] The error indicating the current step is the first step.
96
96
  def first_step_error!
97
- raise FirstStepError.new(current_step, steps.map(&:to_str))
97
+ raise FirstStepError.new(current_step.name, steps.map(&:to_str))
98
98
  end
99
99
 
100
100
  # Raises a LastStepError indicating the current step is the last step in the onboarding process.
101
101
  #
102
102
  # @raise [LastStepError] The error indicating the current step is the last step.
103
103
  def last_step_error!
104
- raise LastStepError.new(current_step, steps.map(&:to_str))
104
+ raise LastStepError.new(current_step.name, steps.map(&:to_str))
105
105
  end
106
106
  end
107
107
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Onboardable
4
- VERSION = '1.3.2'
4
+ VERSION = '1.4.0'
5
5
  end
data/lib/onboardable.rb CHANGED
@@ -29,9 +29,9 @@ module Onboardable
29
29
  # @param options [Hash] Optional configuration options for the ListBuilder.
30
30
  # @yield [List::Builder] Executes block in the context of List::Builder.
31
31
  # @return [Step] The current step in the building process.
32
- def onboarding=(options = {}, &block)
32
+ def onboarding=(options = {}, &)
33
33
  self.list_builder = List::Builder.new(options)
34
- list_builder.instance_eval(&block)
34
+ list_builder.instance_eval(&)
35
35
  end
36
36
  alias has_onboarding onboarding=
37
37
 
data/onboardable.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'Provides tools for easy setup of custom onboarding to boost engagement.'
13
13
  spec.homepage = 'https://github.com/dmrAnderson/onboardable'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = '>= 3.0.0'
15
+ spec.required_ruby_version = '>= 3.1.0'
16
16
 
17
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
18
18
 
@@ -41,10 +41,10 @@ Gem::Specification.new do |spec|
41
41
  # guide at: https://bundler.io/guides/creating_gem.html
42
42
  spec.add_development_dependency 'rake', '~> 13.2', '>= 13.2.1'
43
43
  spec.add_development_dependency 'rspec', '~> 3.13'
44
- spec.add_development_dependency 'rubocop', '~> 1.64', '>= 1.64.1'
44
+ spec.add_development_dependency 'rubocop', '~> 1.65', '~> 1.65', '>= 1.65.1'
45
45
  spec.add_development_dependency 'rubocop-performance', '~> 1.21', '>= 1.21.1'
46
- spec.add_development_dependency 'rubocop-rake', '~> 0.6.0'
47
- spec.add_development_dependency 'rubocop-rspec', '~> 3.0', '>= 3.0.2'
46
+ spec.add_development_dependency 'rubocop-rake', '~> 0.7.1'
47
+ spec.add_development_dependency 'rubocop-rspec', '~> 3.0', '>= 3.0.4'
48
48
  spec.add_development_dependency 'simplecov', '~> 0.22.0'
49
49
 
50
50
  spec.metadata['rubygems_mfa_required'] = 'true'
@@ -23,11 +23,11 @@ module Onboardable
23
23
  end
24
24
 
25
25
  class LastStepError < Error
26
- def initialize: (Symbol step, Array[Symbol] expected_steps) -> untyped
26
+ def initialize: (String step, Array[String] expected_steps) -> untyped
27
27
  end
28
28
 
29
29
  class FirstStepError < Error
30
- def initialize: (Symbol step, Array[Symbol] expected_steps) -> untyped
30
+ def initialize: (String step, Array[String] expected_steps) -> untyped
31
31
  end
32
32
 
33
33
  class StepStatusError < Error
@@ -30,4 +30,4 @@ module Onboardable
30
30
  def last_step_error!: () -> untyped
31
31
  end
32
32
  end
33
- end
33
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onboardable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Skrynnyk
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-07-09 00:00:00.000000000 Z
10
+ date: 2025-04-01 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rake
@@ -50,20 +49,20 @@ dependencies:
50
49
  requirements:
51
50
  - - "~>"
52
51
  - !ruby/object:Gem::Version
53
- version: '1.64'
52
+ version: '1.65'
54
53
  - - ">="
55
54
  - !ruby/object:Gem::Version
56
- version: 1.64.1
55
+ version: 1.65.1
57
56
  type: :development
58
57
  prerelease: false
59
58
  version_requirements: !ruby/object:Gem::Requirement
60
59
  requirements:
61
60
  - - "~>"
62
61
  - !ruby/object:Gem::Version
63
- version: '1.64'
62
+ version: '1.65'
64
63
  - - ">="
65
64
  - !ruby/object:Gem::Version
66
- version: 1.64.1
65
+ version: 1.65.1
67
66
  - !ruby/object:Gem::Dependency
68
67
  name: rubocop-performance
69
68
  requirement: !ruby/object:Gem::Requirement
@@ -90,14 +89,14 @@ dependencies:
90
89
  requirements:
91
90
  - - "~>"
92
91
  - !ruby/object:Gem::Version
93
- version: 0.6.0
92
+ version: 0.7.1
94
93
  type: :development
95
94
  prerelease: false
96
95
  version_requirements: !ruby/object:Gem::Requirement
97
96
  requirements:
98
97
  - - "~>"
99
98
  - !ruby/object:Gem::Version
100
- version: 0.6.0
99
+ version: 0.7.1
101
100
  - !ruby/object:Gem::Dependency
102
101
  name: rubocop-rspec
103
102
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +106,7 @@ dependencies:
107
106
  version: '3.0'
108
107
  - - ">="
109
108
  - !ruby/object:Gem::Version
110
- version: 3.0.2
109
+ version: 3.0.4
111
110
  type: :development
112
111
  prerelease: false
113
112
  version_requirements: !ruby/object:Gem::Requirement
@@ -117,7 +116,7 @@ dependencies:
117
116
  version: '3.0'
118
117
  - - ">="
119
118
  - !ruby/object:Gem::Version
120
- version: 3.0.2
119
+ version: 3.0.4
121
120
  - !ruby/object:Gem::Dependency
122
121
  name: simplecov
123
122
  requirement: !ruby/object:Gem::Requirement
@@ -171,7 +170,6 @@ metadata:
171
170
  bug_tracker_uri: https://github.com/dmrAnderson/onboardable/issues
172
171
  documentation_uri: https://rubydoc.info/gems/onboardable
173
172
  rubygems_mfa_required: 'true'
174
- post_install_message:
175
173
  rdoc_options: []
176
174
  require_paths:
177
175
  - lib
@@ -179,15 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
177
  requirements:
180
178
  - - ">="
181
179
  - !ruby/object:Gem::Version
182
- version: 3.0.0
180
+ version: 3.1.0
183
181
  required_rubygems_version: !ruby/object:Gem::Requirement
184
182
  requirements:
185
183
  - - ">="
186
184
  - !ruby/object:Gem::Version
187
185
  version: '0'
188
186
  requirements: []
189
- rubygems_version: 3.5.11
190
- signing_key:
187
+ rubygems_version: 3.6.2
191
188
  specification_version: 4
192
189
  summary: Streamlines onboarding process integration
193
190
  test_files: []