meta_states 0.1.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 (83) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +46 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +255 -0
  5. data/lib/generators/meta_states/install/install_generator.rb +43 -0
  6. data/lib/generators/meta_states/install/templates/create_indexes_on_meta_states_states.rb.erb +11 -0
  7. data/lib/generators/meta_states/install/templates/create_meta_states_states.rb.erb +18 -0
  8. data/lib/generators/meta_states/install/templates/initializer.rb.erb +42 -0
  9. data/lib/meta_states/base.rb +70 -0
  10. data/lib/meta_states/callback.rb +58 -0
  11. data/lib/meta_states/configuration/model_configuration.rb +64 -0
  12. data/lib/meta_states/configuration/state_type_configuration.rb +17 -0
  13. data/lib/meta_states/configuration.rb +142 -0
  14. data/lib/meta_states/railtie.rb +8 -0
  15. data/lib/meta_states/state.rb +5 -0
  16. data/lib/meta_states/stateable.rb +26 -0
  17. data/lib/meta_states/version.rb +5 -0
  18. data/lib/meta_states.rb +25 -0
  19. data/spec/dummy/Gemfile +40 -0
  20. data/spec/dummy/Gemfile.lock +308 -0
  21. data/spec/dummy/README.md +24 -0
  22. data/spec/dummy/Rakefile +8 -0
  23. data/spec/dummy/app/controllers/application_controller.rb +4 -0
  24. data/spec/dummy/app/jobs/application_job.rb +9 -0
  25. data/spec/dummy/app/models/application_record.rb +5 -0
  26. data/spec/dummy/app/models/company.rb +3 -0
  27. data/spec/dummy/app/models/user.rb +3 -0
  28. data/spec/dummy/bin/brakeman +9 -0
  29. data/spec/dummy/bin/dev +4 -0
  30. data/spec/dummy/bin/docker-entrypoint +14 -0
  31. data/spec/dummy/bin/rails +6 -0
  32. data/spec/dummy/bin/rake +6 -0
  33. data/spec/dummy/bin/rubocop +10 -0
  34. data/spec/dummy/bin/setup +36 -0
  35. data/spec/dummy/bin/thrust +7 -0
  36. data/spec/dummy/config/application.rb +27 -0
  37. data/spec/dummy/config/boot.rb +5 -0
  38. data/spec/dummy/config/credentials.yml.enc +1 -0
  39. data/spec/dummy/config/database.yml +37 -0
  40. data/spec/dummy/config/environment.rb +7 -0
  41. data/spec/dummy/config/environments/development.rb +54 -0
  42. data/spec/dummy/config/environments/production.rb +69 -0
  43. data/spec/dummy/config/environments/test.rb +44 -0
  44. data/spec/dummy/config/initializers/cors.rb +18 -0
  45. data/spec/dummy/config/initializers/filter_parameter_logging.rb +10 -0
  46. data/spec/dummy/config/initializers/inflections.rb +18 -0
  47. data/spec/dummy/config/initializers/meta_states.rb +45 -0
  48. data/spec/dummy/config/locales/en.yml +31 -0
  49. data/spec/dummy/config/master.key +1 -0
  50. data/spec/dummy/config/puma.rb +43 -0
  51. data/spec/dummy/config/routes.rb +12 -0
  52. data/spec/dummy/config.ru +8 -0
  53. data/spec/dummy/db/migrate/20241221171423_create_test_models.rb +15 -0
  54. data/spec/dummy/db/migrate/20241223212128_create_has_states_states.rb +18 -0
  55. data/spec/dummy/db/migrate/20250114175939_create_indexes_on_has_states_states.rb +10 -0
  56. data/spec/dummy/db/schema.rb +44 -0
  57. data/spec/dummy/db/seeds.rb +11 -0
  58. data/spec/dummy/log/development.log +416 -0
  59. data/spec/dummy/log/test.log +55143 -0
  60. data/spec/dummy/public/robots.txt +1 -0
  61. data/spec/dummy/storage/development.sqlite3 +0 -0
  62. data/spec/dummy/storage/test.sqlite3 +0 -0
  63. data/spec/dummy/tmp/local_secret.txt +1 -0
  64. data/spec/factories/meta_states.rb +19 -0
  65. data/spec/generators/meta_states/install_generator_spec.rb +27 -0
  66. data/spec/generators/templates/config/initializers/meta_states.rb +42 -0
  67. data/spec/generators/templates/db/migrate/20250605170637_create_indexes_on_meta_states_states.rb +11 -0
  68. data/spec/generators/templates/db/migrate/20250605170637_create_meta_states_states.rb +18 -0
  69. data/spec/meta_states/callback_spec.rb +92 -0
  70. data/spec/meta_states/configuration_spec.rb +218 -0
  71. data/spec/meta_states/state_limit_spec.rb +107 -0
  72. data/spec/meta_states/state_metadata_schema_spec.rb +75 -0
  73. data/spec/meta_states/state_spec.rb +349 -0
  74. data/spec/meta_states/stateable_spec.rb +183 -0
  75. data/spec/meta_states_spec.rb +52 -0
  76. data/spec/rails_helper.rb +19 -0
  77. data/spec/spec_helper.rb +16 -0
  78. data/spec/support/database_cleaner.rb +17 -0
  79. data/spec/support/factory_bot.rb +8 -0
  80. data/spec/support/shoulda_matchers.rb +10 -0
  81. data/spec/tmp/config/initializers/has_states.rb +12 -0
  82. data/spec/tmp/db/migrate/20241223004024_create_has_states_states.rb +20 -0
  83. metadata +141 -0
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: meta_states
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sebastian Scholl
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: json-schema
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ description: "\n MetaStates provides state management and event system capabilities
27
+ for Ruby objects.\n It allows tracking states, state transitions, and triggering
28
+ callbacks on state changes.\n "
29
+ email:
30
+ - sebscholl@gmail.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - CHANGELOG.md
36
+ - LICENSE.txt
37
+ - README.md
38
+ - lib/generators/meta_states/install/install_generator.rb
39
+ - lib/generators/meta_states/install/templates/create_indexes_on_meta_states_states.rb.erb
40
+ - lib/generators/meta_states/install/templates/create_meta_states_states.rb.erb
41
+ - lib/generators/meta_states/install/templates/initializer.rb.erb
42
+ - lib/meta_states.rb
43
+ - lib/meta_states/base.rb
44
+ - lib/meta_states/callback.rb
45
+ - lib/meta_states/configuration.rb
46
+ - lib/meta_states/configuration/model_configuration.rb
47
+ - lib/meta_states/configuration/state_type_configuration.rb
48
+ - lib/meta_states/railtie.rb
49
+ - lib/meta_states/state.rb
50
+ - lib/meta_states/stateable.rb
51
+ - lib/meta_states/version.rb
52
+ - spec/dummy/Gemfile
53
+ - spec/dummy/Gemfile.lock
54
+ - spec/dummy/README.md
55
+ - spec/dummy/Rakefile
56
+ - spec/dummy/app/controllers/application_controller.rb
57
+ - spec/dummy/app/jobs/application_job.rb
58
+ - spec/dummy/app/models/application_record.rb
59
+ - spec/dummy/app/models/company.rb
60
+ - spec/dummy/app/models/user.rb
61
+ - spec/dummy/bin/brakeman
62
+ - spec/dummy/bin/dev
63
+ - spec/dummy/bin/docker-entrypoint
64
+ - spec/dummy/bin/rails
65
+ - spec/dummy/bin/rake
66
+ - spec/dummy/bin/rubocop
67
+ - spec/dummy/bin/setup
68
+ - spec/dummy/bin/thrust
69
+ - spec/dummy/config.ru
70
+ - spec/dummy/config/application.rb
71
+ - spec/dummy/config/boot.rb
72
+ - spec/dummy/config/credentials.yml.enc
73
+ - spec/dummy/config/database.yml
74
+ - spec/dummy/config/environment.rb
75
+ - spec/dummy/config/environments/development.rb
76
+ - spec/dummy/config/environments/production.rb
77
+ - spec/dummy/config/environments/test.rb
78
+ - spec/dummy/config/initializers/cors.rb
79
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
80
+ - spec/dummy/config/initializers/inflections.rb
81
+ - spec/dummy/config/initializers/meta_states.rb
82
+ - spec/dummy/config/locales/en.yml
83
+ - spec/dummy/config/master.key
84
+ - spec/dummy/config/puma.rb
85
+ - spec/dummy/config/routes.rb
86
+ - spec/dummy/db/migrate/20241221171423_create_test_models.rb
87
+ - spec/dummy/db/migrate/20241223212128_create_has_states_states.rb
88
+ - spec/dummy/db/migrate/20250114175939_create_indexes_on_has_states_states.rb
89
+ - spec/dummy/db/schema.rb
90
+ - spec/dummy/db/seeds.rb
91
+ - spec/dummy/log/development.log
92
+ - spec/dummy/log/test.log
93
+ - spec/dummy/public/robots.txt
94
+ - spec/dummy/storage/development.sqlite3
95
+ - spec/dummy/storage/test.sqlite3
96
+ - spec/dummy/tmp/local_secret.txt
97
+ - spec/factories/meta_states.rb
98
+ - spec/generators/meta_states/install_generator_spec.rb
99
+ - spec/generators/templates/config/initializers/meta_states.rb
100
+ - spec/generators/templates/db/migrate/20250605170637_create_indexes_on_meta_states_states.rb
101
+ - spec/generators/templates/db/migrate/20250605170637_create_meta_states_states.rb
102
+ - spec/meta_states/callback_spec.rb
103
+ - spec/meta_states/configuration_spec.rb
104
+ - spec/meta_states/state_limit_spec.rb
105
+ - spec/meta_states/state_metadata_schema_spec.rb
106
+ - spec/meta_states/state_spec.rb
107
+ - spec/meta_states/stateable_spec.rb
108
+ - spec/meta_states_spec.rb
109
+ - spec/rails_helper.rb
110
+ - spec/spec_helper.rb
111
+ - spec/support/database_cleaner.rb
112
+ - spec/support/factory_bot.rb
113
+ - spec/support/shoulda_matchers.rb
114
+ - spec/tmp/config/initializers/has_states.rb
115
+ - spec/tmp/db/migrate/20241223004024_create_has_states_states.rb
116
+ homepage: https://github.com/sebscholl/meta_states
117
+ licenses:
118
+ - MIT
119
+ metadata:
120
+ homepage_uri: https://github.com/sebscholl/meta_states
121
+ source_code_uri: https://github.com/sebscholl/meta_states
122
+ changelog_uri: https://github.com/sebscholl/meta_states/blob/main/CHANGELOG.md
123
+ rubygems_mfa_required: 'true'
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 2.7.0
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubygems_version: 3.6.7
139
+ specification_version: 4
140
+ summary: Simple and flexible state management for Ruby objects
141
+ test_files: []