steady_state 1.2.0 → 2.2.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/lib/steady_state/attribute.rb +1 -1
- data/lib/steady_state/version.rb +1 -1
- data/rbi/steady_state.rbi +49 -0
- metadata +23 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4824f112c40684778015b921d582801f2b95c134ed2881ed8c87e346a2bfcad2
|
|
4
|
+
data.tar.gz: 64837c8febda4b8b4adce2261e7a5a8b43014bdc5e09b3dec8c2543d86b0f6e1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f3b3ba6cc7e0317163d8b65c3a0f4033f34f6b5066c09c2ae8af7c6daf380943f03a2a49710142675931d23ff6b8037d033cb489562fac514142558d727ad09d
|
|
7
|
+
data.tar.gz: c8c835c627ee902f045dd72188ed26f4112cf9722ff8827c1bae3589029141ff8e1c8d7bed8d0a18bf3aabb8b39cd3224c6b211ca3bde95d3deedb51a69ebba4
|
data/lib/steady_state/version.rb
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# Sorbet annotations for SteadyState's DSL, shipped with the gem so that
|
|
4
|
+
# Tapioca merges them into consumers' generated gem RBIs.
|
|
5
|
+
#
|
|
6
|
+
# The key annotation is the `T.proc.bind` on `steady_state`'s block: the
|
|
7
|
+
# block is `instance_eval`'d against a `StateMachine`, so without the bind,
|
|
8
|
+
# Sorbet resolves `state` calls against the including class and errors.
|
|
9
|
+
|
|
10
|
+
module SteadyState
|
|
11
|
+
mixes_in_class_methods SteadyState::Attribute::ClassMethods
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module SteadyState::Attribute
|
|
15
|
+
mixes_in_class_methods SteadyState::Attribute::ClassMethods
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module SteadyState::Attribute::ClassMethods
|
|
19
|
+
sig do
|
|
20
|
+
params(
|
|
21
|
+
attr_name: T.any(Symbol, String),
|
|
22
|
+
predicates: T::Boolean,
|
|
23
|
+
states_getter: T::Boolean,
|
|
24
|
+
scopes: T.any(T::Boolean, T::Hash[Symbol, T.untyped]),
|
|
25
|
+
block: T.proc.bind(SteadyState::Attribute::StateMachine).void,
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
28
|
+
def steady_state(attr_name, predicates: true, states_getter: true, scopes: false, &block); end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class SteadyState::Attribute::StateMachine
|
|
32
|
+
sig do
|
|
33
|
+
params(
|
|
34
|
+
state: String,
|
|
35
|
+
default: T::Boolean,
|
|
36
|
+
from: T.any(String, T::Array[String]),
|
|
37
|
+
).void
|
|
38
|
+
end
|
|
39
|
+
def state(state, default: false, from: []); end
|
|
40
|
+
|
|
41
|
+
sig { returns(T.nilable(String)) }
|
|
42
|
+
def start; end
|
|
43
|
+
|
|
44
|
+
sig { returns(T::Array[String]) }
|
|
45
|
+
def states; end
|
|
46
|
+
|
|
47
|
+
sig { returns(T::Array[Symbol]) }
|
|
48
|
+
def predicates; end
|
|
49
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: steady_state
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.2.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:
|
|
11
|
+
date: 2026-08-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemodel
|
|
@@ -16,28 +16,28 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '8.0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '8.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: activesupport
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '8.0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '8.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: appraisal
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,6 +94,20 @@ dependencies:
|
|
|
94
94
|
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: sorbet
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
97
111
|
description: |
|
|
98
112
|
A minimalist approach to managing object state,
|
|
99
113
|
perhaps best described as "an enum with guard rails."
|
|
@@ -113,6 +127,7 @@ files:
|
|
|
113
127
|
- lib/steady_state/attribute/state_machine.rb
|
|
114
128
|
- lib/steady_state/attribute/transition_validator.rb
|
|
115
129
|
- lib/steady_state/version.rb
|
|
130
|
+
- rbi/steady_state.rbi
|
|
116
131
|
homepage:
|
|
117
132
|
licenses: []
|
|
118
133
|
metadata:
|
|
@@ -125,14 +140,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
125
140
|
requirements:
|
|
126
141
|
- - ">="
|
|
127
142
|
- !ruby/object:Gem::Version
|
|
128
|
-
version: '3.
|
|
143
|
+
version: '3.3'
|
|
129
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
145
|
requirements:
|
|
131
146
|
- - ">="
|
|
132
147
|
- !ruby/object:Gem::Version
|
|
133
148
|
version: '0'
|
|
134
149
|
requirements: []
|
|
135
|
-
rubygems_version: 3.5.
|
|
150
|
+
rubygems_version: 3.5.22
|
|
136
151
|
signing_key:
|
|
137
152
|
specification_version: 4
|
|
138
153
|
summary: Minimalist state management via "an enum with guard rails"
|