solid-process 0.3.0 → 0.5.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/CLAUDE.md +112 -0
  3. data/CHANGELOG.md +92 -1
  4. data/README.md +208 -23
  5. data/Rakefile +28 -8
  6. data/docs/010_KEY_CONCEPTS.md +31 -0
  7. data/docs/020_BASIC_USAGE.md +46 -0
  8. data/docs/030_INTERMEDIATE_USAGE.md +74 -0
  9. data/docs/040_ADVANCED_USAGE.md +96 -0
  10. data/docs/050_ERROR_HANDLING.md +3 -0
  11. data/docs/060_TESTING.md +3 -0
  12. data/docs/070_INSTRUMENTATION.md +3 -0
  13. data/docs/080_RAILS_INTEGRATION.md +3 -0
  14. data/docs/090_INTERNAL_LIBRARIES.md +3 -0
  15. data/docs/100_PORTS_AND_ADAPTERS.md +3 -0
  16. data/lib/solid/input.rb +0 -2
  17. data/lib/solid/model.rb +19 -7
  18. data/lib/solid/output.rb +13 -0
  19. data/lib/solid/process/backtrace_cleaner.rb +17 -0
  20. data/lib/solid/process/caller.rb +1 -1
  21. data/lib/solid/process/event_logs/basic_logger_listener.rb +77 -0
  22. data/lib/solid/process/event_logs.rb +7 -0
  23. data/lib/solid/process/version.rb +1 -1
  24. data/lib/solid/process.rb +13 -15
  25. data/lib/solid/validators/email_validator.rb +4 -2
  26. data/lib/solid/validators/id_validator.rb +17 -0
  27. data/lib/solid/validators/instance_of_validator.rb +5 -3
  28. data/lib/solid/validators/is_validator.rb +19 -0
  29. data/lib/solid/validators/kind_of_validator.rb +5 -3
  30. data/lib/solid/validators/respond_to_validator.rb +5 -3
  31. data/lib/solid/validators/singleton_validator.rb +8 -8
  32. data/lib/solid/validators/uuid_validator.rb +4 -4
  33. data/lib/solid/validators.rb +13 -0
  34. data/lib/solid/value.rb +41 -0
  35. metadata +26 -16
  36. data/lib/solid/validators/all.rb +0 -12
  37. data/lib/solid/validators/bool_validator.rb +0 -9
  38. data/lib/solid/validators/is_a_validator.rb +0 -6
  39. data/lib/solid/validators/persisted_validator.rb +0 -9
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid-process
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Serradura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-14 00:00:00.000000000 Z
11
+ date: 2026-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solid-result
@@ -31,9 +31,6 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '6.0'
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '8.0'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -41,9 +38,6 @@ dependencies:
41
38
  - - ">="
42
39
  - !ruby/object:Gem::Version
43
40
  version: '6.0'
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '8.0'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: appraisal
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,18 +52,29 @@ dependencies:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
54
  version: '2.5'
61
- description: Write self-documenting and self-observable business processes in Ruby/Rails.
55
+ description: Write business logic for Ruby/Rails that scales.
62
56
  email:
63
57
  - rodrigo.serradura@gmail.com
64
58
  executables: []
65
59
  extensions: []
66
60
  extra_rdoc_files: []
67
61
  files:
62
+ - ".claude/CLAUDE.md"
68
63
  - CHANGELOG.md
69
64
  - CODE_OF_CONDUCT.md
70
65
  - LICENSE.txt
71
66
  - README.md
72
67
  - Rakefile
68
+ - docs/010_KEY_CONCEPTS.md
69
+ - docs/020_BASIC_USAGE.md
70
+ - docs/030_INTERMEDIATE_USAGE.md
71
+ - docs/040_ADVANCED_USAGE.md
72
+ - docs/050_ERROR_HANDLING.md
73
+ - docs/060_TESTING.md
74
+ - docs/070_INSTRUMENTATION.md
75
+ - docs/080_RAILS_INTEGRATION.md
76
+ - docs/090_INTERNAL_LIBRARIES.md
77
+ - docs/100_PORTS_AND_ADAPTERS.md
73
78
  - examples/business_processes/.rubocop.yml
74
79
  - examples/business_processes/.ruby-version
75
80
  - examples/business_processes/.standard.yml
@@ -87,24 +92,28 @@ files:
87
92
  - lib/solid/input.rb
88
93
  - lib/solid/model.rb
89
94
  - lib/solid/model/access.rb
95
+ - lib/solid/output.rb
90
96
  - lib/solid/process.rb
91
97
  - lib/solid/process/active_record.rb
98
+ - lib/solid/process/backtrace_cleaner.rb
92
99
  - lib/solid/process/callbacks.rb
93
100
  - lib/solid/process/caller.rb
94
101
  - lib/solid/process/class_methods.rb
95
102
  - lib/solid/process/config.rb
96
103
  - lib/solid/process/error.rb
104
+ - lib/solid/process/event_logs.rb
105
+ - lib/solid/process/event_logs/basic_logger_listener.rb
97
106
  - lib/solid/process/version.rb
98
- - lib/solid/validators/all.rb
99
- - lib/solid/validators/bool_validator.rb
107
+ - lib/solid/validators.rb
100
108
  - lib/solid/validators/email_validator.rb
109
+ - lib/solid/validators/id_validator.rb
101
110
  - lib/solid/validators/instance_of_validator.rb
102
- - lib/solid/validators/is_a_validator.rb
111
+ - lib/solid/validators/is_validator.rb
103
112
  - lib/solid/validators/kind_of_validator.rb
104
- - lib/solid/validators/persisted_validator.rb
105
113
  - lib/solid/validators/respond_to_validator.rb
106
114
  - lib/solid/validators/singleton_validator.rb
107
115
  - lib/solid/validators/uuid_validator.rb
116
+ - lib/solid/value.rb
108
117
  homepage: https://github.com/serradura/solid-process
109
118
  licenses:
110
119
  - MIT
@@ -112,7 +121,8 @@ metadata:
112
121
  allowed_push_host: https://rubygems.org
113
122
  homepage_uri: https://github.com/serradura/solid-process
114
123
  source_code_uri: https://github.com/serradura/solid-process
115
- changelog_uri: https://github.com/serradura/solid-process/CHANGELOG.md
124
+ changelog_uri: https://github.com/solid-process/solid-process/blob/main/CHANGELOG.md
125
+ rubygems_mfa_required: 'true'
116
126
  post_install_message:
117
127
  rdoc_options: []
118
128
  require_paths:
@@ -128,8 +138,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
138
  - !ruby/object:Gem::Version
129
139
  version: '0'
130
140
  requirements: []
131
- rubygems_version: 3.1.6
141
+ rubygems_version: 3.2.33
132
142
  signing_key:
133
143
  specification_version: 4
134
- summary: Write self-documenting and self-observable business processes in Ruby/Rails.
144
+ summary: Write business logic for Ruby/Rails that scales.
135
145
  test_files: []
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "instance_of_validator"
4
- require_relative "is_a_validator"
5
- require_relative "kind_of_validator"
6
- require_relative "respond_to_validator"
7
- require_relative "singleton_validator"
8
-
9
- require_relative "bool_validator"
10
- require_relative "email_validator"
11
- require_relative "persisted_validator"
12
- require_relative "uuid_validator"
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class BoolValidator < ActiveModel::EachValidator
4
- def validate_each(obj, attribute, value)
5
- return if value == true || value == false
6
-
7
- obj.errors.add attribute, (options[:message] || "is not a boolean")
8
- end
9
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "kind_of_validator"
4
-
5
- class IsAValidator < KindOfValidator
6
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class PersistedValidator < ActiveModel::EachValidator
4
- def validate_each(record, attribute, value)
5
- return if (options[:allow_nil] && value.nil?) || value.try(:persisted?)
6
-
7
- record.errors.add(attribute, (options[:message] || "must be persisted"))
8
- end
9
- end