star_gates 0.0.0 → 0.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.dictate.toml +19 -0
  3. data/.pre-commit-config.yaml +20 -0
  4. data/CHANGELOG.md +60 -3
  5. data/LICENSE.txt +23 -16
  6. data/README.md +182 -16
  7. data/Rakefile +14 -4
  8. data/lib/star_gates/adapters/base_adapter.rb +65 -0
  9. data/lib/star_gates/adapters/memory_adapter.rb +93 -0
  10. data/lib/star_gates/adapters/redis_adapter.rb +119 -0
  11. data/lib/star_gates/application_star_gate.rb +398 -0
  12. data/lib/star_gates/circuit.rb +171 -0
  13. data/lib/star_gates/configuration.rb +172 -0
  14. data/lib/star_gates/dsl.rb +71 -2
  15. data/lib/star_gates/errors.rb +8 -0
  16. data/lib/star_gates/event_store/event_store.rb +79 -0
  17. data/lib/star_gates/event_store/memory_adapter.rb +78 -0
  18. data/lib/star_gates/events/base_event.rb +45 -0
  19. data/lib/star_gates/events/feature_events.rb +97 -0
  20. data/lib/star_gates/feature.rb +426 -0
  21. data/lib/star_gates/flags.rb +153 -0
  22. data/lib/star_gates/gate.rb +100 -0
  23. data/lib/star_gates/hexagonal/feature_aggregate.rb +250 -0
  24. data/lib/star_gates/hexagonal/feature_repository.rb +67 -0
  25. data/lib/star_gates/hexagonal/feature_service.rb +121 -0
  26. data/lib/star_gates/jsonrpc_rails_adapter.rb +251 -0
  27. data/lib/star_gates/projections/feature_projection.rb +224 -0
  28. data/lib/star_gates/registry.rb +58 -0
  29. data/lib/star_gates/telemetry/opentelemetry_adapter.rb +252 -0
  30. data/lib/star_gates/telemetry/prometheus_adapter.rb +183 -0
  31. data/lib/star_gates/telemetry/telemetry_adapter.rb +160 -0
  32. data/lib/star_gates/version.rb +1 -1
  33. data/lib/star_gates.rb +308 -8
  34. metadata +95 -14
  35. data/sig/star_gates.rbs +0 -4
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: star_gates
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih
@@ -10,33 +10,89 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: breaker_machines
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 8.1.1
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 8.1.1
26
+ - !ruby/object:Gem::Dependency
27
+ name: concurrent-ruby
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.3.5
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.3.5
40
+ - !ruby/object:Gem::Dependency
41
+ name: state_machines
14
42
  requirement: !ruby/object:Gem::Requirement
15
43
  requirements:
16
- - - "~>"
44
+ - - ">="
17
45
  - !ruby/object:Gem::Version
18
- version: 0.2.1
46
+ version: 0.202.0
19
47
  type: :runtime
20
48
  prerelease: false
21
49
  version_requirements: !ruby/object:Gem::Requirement
22
50
  requirements:
23
- - - "~>"
51
+ - - ">="
24
52
  - !ruby/object:Gem::Version
25
- version: 0.2.1
53
+ version: 0.202.0
26
54
  - !ruby/object:Gem::Dependency
27
55
  name: zeitwerk
28
56
  requirement: !ruby/object:Gem::Requirement
29
57
  requirements:
30
- - - "~>"
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 2.7.3
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 2.7.3
68
+ - !ruby/object:Gem::Dependency
69
+ name: breaker_machines
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 0.10.1
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 0.10.1
82
+ - !ruby/object:Gem::Dependency
83
+ name: chrono_machines
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
31
87
  - !ruby/object:Gem::Version
32
- version: '2.6'
88
+ version: 0.3.0
33
89
  type: :runtime
34
90
  prerelease: false
35
91
  version_requirements: !ruby/object:Gem::Requirement
36
92
  requirements:
37
- - - "~>"
93
+ - - ">="
38
94
  - !ruby/object:Gem::Version
39
- version: '2.6'
95
+ version: 0.3.0
40
96
  description: StarGates provides a domain-specific language for defining and managing
41
97
  star gate configurations with circuit breaker patterns.
42
98
  email:
@@ -45,22 +101,47 @@ executables: []
45
101
  extensions: []
46
102
  extra_rdoc_files: []
47
103
  files:
104
+ - ".dictate.toml"
105
+ - ".pre-commit-config.yaml"
48
106
  - CHANGELOG.md
49
107
  - LICENSE.txt
50
108
  - README.md
51
109
  - Rakefile
52
110
  - lib/star_gates.rb
111
+ - lib/star_gates/adapters/base_adapter.rb
112
+ - lib/star_gates/adapters/memory_adapter.rb
113
+ - lib/star_gates/adapters/redis_adapter.rb
114
+ - lib/star_gates/application_star_gate.rb
115
+ - lib/star_gates/circuit.rb
116
+ - lib/star_gates/configuration.rb
53
117
  - lib/star_gates/dsl.rb
118
+ - lib/star_gates/errors.rb
119
+ - lib/star_gates/event_store/event_store.rb
120
+ - lib/star_gates/event_store/memory_adapter.rb
121
+ - lib/star_gates/events/base_event.rb
122
+ - lib/star_gates/events/feature_events.rb
123
+ - lib/star_gates/feature.rb
124
+ - lib/star_gates/flags.rb
125
+ - lib/star_gates/gate.rb
126
+ - lib/star_gates/hexagonal/feature_aggregate.rb
127
+ - lib/star_gates/hexagonal/feature_repository.rb
128
+ - lib/star_gates/hexagonal/feature_service.rb
129
+ - lib/star_gates/jsonrpc_rails_adapter.rb
130
+ - lib/star_gates/projections/feature_projection.rb
131
+ - lib/star_gates/registry.rb
132
+ - lib/star_gates/telemetry/opentelemetry_adapter.rb
133
+ - lib/star_gates/telemetry/prometheus_adapter.rb
134
+ - lib/star_gates/telemetry/telemetry_adapter.rb
54
135
  - lib/star_gates/version.rb
55
- - sig/star_gates.rbs
56
136
  homepage: https://github.com/seuros/star_gates
57
137
  licenses:
58
- - MIT
138
+ - BSD-3-Clause
59
139
  metadata:
60
140
  allowed_push_host: https://rubygems.org
61
141
  homepage_uri: https://github.com/seuros/star_gates
62
142
  source_code_uri: https://github.com/seuros/star_gates
63
143
  changelog_uri: https://github.com/seuros/star_gates/blob/main/CHANGELOG.md
144
+ rubygems_mfa_required: 'true'
64
145
  rdoc_options: []
65
146
  require_paths:
66
147
  - lib
@@ -68,14 +149,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
149
  requirements:
69
150
  - - ">="
70
151
  - !ruby/object:Gem::Version
71
- version: 3.1.0
152
+ version: 4.0.0
72
153
  required_rubygems_version: !ruby/object:Gem::Requirement
73
154
  requirements:
74
155
  - - ">="
75
156
  - !ruby/object:Gem::Version
76
157
  version: '0'
77
158
  requirements: []
78
- rubygems_version: 3.6.9
159
+ rubygems_version: 4.0.20
79
160
  specification_version: 4
80
161
  summary: A Ruby gem for building DSL-based star gate configurations
81
162
  test_files: []
data/sig/star_gates.rbs DELETED
@@ -1,4 +0,0 @@
1
- module StarGates
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
- end