bunny_farm 0.1.2

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 (106) hide show
  1. checksums.yaml +7 -0
  2. data/.envrc +1 -0
  3. data/.github/workflows/docs.yml +38 -0
  4. data/.gitignore +11 -0
  5. data/.travis.yml +3 -0
  6. data/CHANGELOG.md +61 -0
  7. data/COMMITS.md +196 -0
  8. data/Gemfile +4 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +330 -0
  11. data/Rakefile +9 -0
  12. data/bunny_farm.gemspec +30 -0
  13. data/config/bunny.yml.erb +29 -0
  14. data/config/bunny_test.yml.erb +29 -0
  15. data/config/hipchat.yml.erb +12 -0
  16. data/docs/api/configuration.md +9 -0
  17. data/docs/api/consumer.md +8 -0
  18. data/docs/api/message-class.md +419 -0
  19. data/docs/api/publisher.md +9 -0
  20. data/docs/architecture/integration.md +8 -0
  21. data/docs/architecture/message-flow.md +11 -0
  22. data/docs/architecture/overview.md +448 -0
  23. data/docs/architecture/scaling.md +8 -0
  24. data/docs/assets/actions_dsl_flow.svg +109 -0
  25. data/docs/assets/architecture_overview.svg +152 -0
  26. data/docs/assets/best_practices_patterns.svg +203 -0
  27. data/docs/assets/bunny_farm_logo.png +0 -0
  28. data/docs/assets/configuration_api_methods.svg +104 -0
  29. data/docs/assets/configuration_flow.svg +130 -0
  30. data/docs/assets/configuration_hierarchy.svg +70 -0
  31. data/docs/assets/data_processing_pipeline.svg +131 -0
  32. data/docs/assets/debugging_monitoring.svg +165 -0
  33. data/docs/assets/ecommerce_example_flow.svg +145 -0
  34. data/docs/assets/email_campaign_example.svg +127 -0
  35. data/docs/assets/environment_variables_map.svg +78 -0
  36. data/docs/assets/error_handling_flow.svg +114 -0
  37. data/docs/assets/favicon.ico +1 -0
  38. data/docs/assets/fields_dsl_structure.svg +89 -0
  39. data/docs/assets/instance_methods_lifecycle.svg +137 -0
  40. data/docs/assets/integration_patterns.svg +207 -0
  41. data/docs/assets/json_serialization_flow.svg +153 -0
  42. data/docs/assets/logo.svg +4 -0
  43. data/docs/assets/message_api_overview.svg +126 -0
  44. data/docs/assets/message_encapsulation.svg +113 -0
  45. data/docs/assets/message_lifecycle.svg +110 -0
  46. data/docs/assets/message_structure.svg +138 -0
  47. data/docs/assets/publisher_consumer_api.svg +120 -0
  48. data/docs/assets/scaling_deployment_patterns.svg +195 -0
  49. data/docs/assets/smart_routing_diagram.svg +131 -0
  50. data/docs/assets/system_architecture_overview.svg +155 -0
  51. data/docs/assets/task_scheduling_flow.svg +139 -0
  52. data/docs/assets/testing_strategies.svg +146 -0
  53. data/docs/assets/workflow_patterns.svg +183 -0
  54. data/docs/assets/yaml_config_structure.svg +72 -0
  55. data/docs/configuration/environment-variables.md +14 -0
  56. data/docs/configuration/overview.md +373 -0
  57. data/docs/configuration/programmatic-setup.md +10 -0
  58. data/docs/configuration/yaml-configuration.md +12 -0
  59. data/docs/core-features/configuration.md +528 -0
  60. data/docs/core-features/error-handling.md +82 -0
  61. data/docs/core-features/json-serialization.md +545 -0
  62. data/docs/core-features/message-design.md +406 -0
  63. data/docs/core-features/smart-routing.md +467 -0
  64. data/docs/core-features/task-scheduling.md +67 -0
  65. data/docs/core-features/workflow-support.md +112 -0
  66. data/docs/development/contributing.md +345 -0
  67. data/docs/development/roadmap.md +9 -0
  68. data/docs/development/testing.md +14 -0
  69. data/docs/examples/order-processing.md +10 -0
  70. data/docs/examples/overview.md +269 -0
  71. data/docs/examples/real-world.md +8 -0
  72. data/docs/examples/simple-producer-consumer.md +15 -0
  73. data/docs/examples/task-scheduler.md +9 -0
  74. data/docs/getting-started/basic-concepts.md +274 -0
  75. data/docs/getting-started/installation.md +122 -0
  76. data/docs/getting-started/quick-start.md +158 -0
  77. data/docs/index.md +106 -0
  78. data/docs/message-structure/actions-dsl.md +163 -0
  79. data/docs/message-structure/fields-dsl.md +146 -0
  80. data/docs/message-structure/instance-methods.md +115 -0
  81. data/docs/message-structure/overview.md +211 -0
  82. data/examples/README.md +212 -0
  83. data/examples/consumer.rb +41 -0
  84. data/examples/images/message_flow.svg +87 -0
  85. data/examples/images/order_workflow.svg +122 -0
  86. data/examples/images/producer_consumer.svg +96 -0
  87. data/examples/images/task_scheduler.svg +140 -0
  88. data/examples/order_processor.rb +238 -0
  89. data/examples/producer.rb +60 -0
  90. data/examples/simple_message.rb +43 -0
  91. data/examples/task_scheduler.rb +263 -0
  92. data/images/architecture_overview.svg +152 -0
  93. data/images/bunny_farm_logo.png +0 -0
  94. data/images/configuration_flow.svg +130 -0
  95. data/images/message_structure.svg +138 -0
  96. data/lib/bunny_farm/.irbrc +7 -0
  97. data/lib/bunny_farm/generic_consumer.rb +12 -0
  98. data/lib/bunny_farm/hash_ext.rb +37 -0
  99. data/lib/bunny_farm/init_bunny.rb +137 -0
  100. data/lib/bunny_farm/init_hipchat.rb +49 -0
  101. data/lib/bunny_farm/message.rb +218 -0
  102. data/lib/bunny_farm/message_elements.rb +25 -0
  103. data/lib/bunny_farm/version.rb +3 -0
  104. data/lib/bunny_farm.rb +9 -0
  105. data/mkdocs.yml +148 -0
  106. metadata +244 -0
data/mkdocs.yml ADDED
@@ -0,0 +1,148 @@
1
+ site_name: BunnyFarm Documentation
2
+ site_description: Comprehensive documentation for the BunnyFarm Ruby gem - Lightweight AMQP/JSON background job manager for RabbitMQ
3
+ site_author: MadBomber
4
+ site_url: https://madbomber.github.io/bunny_farm
5
+ repo_url: https://github.com/MadBomber/bunny_farm
6
+ repo_name: MadBomber/bunny_farm
7
+ edit_uri: edit/master/docs/
8
+
9
+ theme:
10
+ name: material
11
+ logo: assets/logo.svg
12
+ favicon: assets/favicon.ico
13
+ palette:
14
+ - media: "(prefers-color-scheme: light)"
15
+ scheme: default
16
+ primary: orange
17
+ accent: deep-orange
18
+ toggle:
19
+ icon: material/brightness-7
20
+ name: Switch to dark mode
21
+ - media: "(prefers-color-scheme: dark)"
22
+ scheme: slate
23
+ primary: orange
24
+ accent: deep-orange
25
+ toggle:
26
+ icon: material/brightness-4
27
+ name: Switch to light mode
28
+ features:
29
+ - navigation.instant
30
+ - navigation.tracking
31
+ - navigation.tabs
32
+ - navigation.tabs.sticky
33
+ - navigation.sections
34
+ - navigation.expand
35
+ - navigation.path
36
+ - navigation.prune
37
+ - navigation.indexes
38
+ - navigation.top
39
+ - toc.follow
40
+ - toc.integrate
41
+ - search.suggest
42
+ - search.highlight
43
+ - search.share
44
+ - header.autohide
45
+ - content.code.copy
46
+ - content.code.annotate
47
+ - content.tabs.link
48
+
49
+ plugins:
50
+ - search:
51
+ separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;'
52
+
53
+ markdown_extensions:
54
+ - abbr
55
+ - admonition
56
+ - attr_list
57
+ - def_list
58
+ - footnotes
59
+ - md_in_html
60
+ - toc:
61
+ permalink: true
62
+ toc_depth: 3
63
+ - pymdownx.arithmatex:
64
+ generic: true
65
+ - pymdownx.betterem:
66
+ smart_enable: all
67
+ - pymdownx.caret
68
+ - pymdownx.details
69
+ - pymdownx.emoji:
70
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
71
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
72
+ - pymdownx.highlight:
73
+ anchor_linenums: true
74
+ line_spans: __span
75
+ pygments_lang_class: true
76
+ - pymdownx.inlinehilite
77
+ - pymdownx.keys
78
+ - pymdownx.mark
79
+ - pymdownx.smartsymbols
80
+ - pymdownx.superfences:
81
+ custom_fences:
82
+ - name: mermaid
83
+ class: mermaid
84
+ format: !!python/name:pymdownx.superfences.fence_code_format
85
+ - pymdownx.tabbed:
86
+ alternate_style: true
87
+ - pymdownx.tasklist:
88
+ custom_checkbox: true
89
+ - pymdownx.tilde
90
+
91
+ extra:
92
+ social:
93
+ - icon: fontawesome/brands/github
94
+ link: https://github.com/MadBomber/bunny_farm
95
+ name: GitHub Repository
96
+ - icon: fontawesome/solid/gem
97
+ link: https://rubygems.org/gems/bunny_farm
98
+ name: RubyGems Package
99
+ version:
100
+ provider: mike
101
+ default: latest
102
+
103
+ nav:
104
+ - Home: index.md
105
+ - Getting Started:
106
+ - Installation: getting-started/installation.md
107
+ - Quick Start: getting-started/quick-start.md
108
+ - Basic Concepts: getting-started/basic-concepts.md
109
+ - Core Features:
110
+ - Message-Centric Design: core-features/message-design.md
111
+ - Smart Routing: core-features/smart-routing.md
112
+ - JSON Serialization: core-features/json-serialization.md
113
+ - Configuration: core-features/configuration.md
114
+ - Workflow Support: core-features/workflow-support.md
115
+ - Task Scheduling: core-features/task-scheduling.md
116
+ - Error Handling: core-features/error-handling.md
117
+ - Message Structure:
118
+ - Overview: message-structure/overview.md
119
+ - Fields DSL: message-structure/fields-dsl.md
120
+ - Actions DSL: message-structure/actions-dsl.md
121
+ - Instance Methods: message-structure/instance-methods.md
122
+ - Configuration:
123
+ - Overview: configuration/overview.md
124
+ - Environment Variables: configuration/environment-variables.md
125
+ - YAML Configuration: configuration/yaml-configuration.md
126
+ - Programmatic Setup: configuration/programmatic-setup.md
127
+ - API Reference:
128
+ - Message Class: api/message-class.md
129
+ - Publisher: api/publisher.md
130
+ - Consumer: api/consumer.md
131
+ - Configuration: api/configuration.md
132
+ - Examples:
133
+ - Overview: examples/overview.md
134
+ - Simple Producer/Consumer: examples/simple-producer-consumer.md
135
+ - Order Processing Workflow: examples/order-processing.md
136
+ - Task Scheduler: examples/task-scheduler.md
137
+ - Real World Examples: examples/real-world.md
138
+ - Architecture:
139
+ - Overview: architecture/overview.md
140
+ - Message Flow: architecture/message-flow.md
141
+ - Scaling Patterns: architecture/scaling.md
142
+ - Integration Patterns: architecture/integration.md
143
+ - Development:
144
+ - Contributing: development/contributing.md
145
+ - Testing: development/testing.md
146
+ - Roadmap: development/roadmap.md
147
+
148
+ copyright: Copyright © 2024 MadBomber - MIT License
metadata ADDED
@@ -0,0 +1,244 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bunny_farm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Dewayne VanHoozer
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: activesupport
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
+ - !ruby/object:Gem::Dependency
27
+ name: concurrent-ruby
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: hashie
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: bunny
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: bundler
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rake
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: minitest
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description: " A lightweight Ruby gem for managing background jobs using RabbitMQ.
111
+ Messages are encapsulated as classes with JSON serialization and routing keys in
112
+ the format MessageClassName.action for simple, organized job processing. "
113
+ email:
114
+ - dvanhoozer@gmail.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".envrc"
120
+ - ".github/workflows/docs.yml"
121
+ - ".gitignore"
122
+ - ".travis.yml"
123
+ - CHANGELOG.md
124
+ - COMMITS.md
125
+ - Gemfile
126
+ - LICENSE.txt
127
+ - README.md
128
+ - Rakefile
129
+ - bunny_farm.gemspec
130
+ - config/bunny.yml.erb
131
+ - config/bunny_test.yml.erb
132
+ - config/hipchat.yml.erb
133
+ - docs/api/configuration.md
134
+ - docs/api/consumer.md
135
+ - docs/api/message-class.md
136
+ - docs/api/publisher.md
137
+ - docs/architecture/integration.md
138
+ - docs/architecture/message-flow.md
139
+ - docs/architecture/overview.md
140
+ - docs/architecture/scaling.md
141
+ - docs/assets/actions_dsl_flow.svg
142
+ - docs/assets/architecture_overview.svg
143
+ - docs/assets/best_practices_patterns.svg
144
+ - docs/assets/bunny_farm_logo.png
145
+ - docs/assets/configuration_api_methods.svg
146
+ - docs/assets/configuration_flow.svg
147
+ - docs/assets/configuration_hierarchy.svg
148
+ - docs/assets/data_processing_pipeline.svg
149
+ - docs/assets/debugging_monitoring.svg
150
+ - docs/assets/ecommerce_example_flow.svg
151
+ - docs/assets/email_campaign_example.svg
152
+ - docs/assets/environment_variables_map.svg
153
+ - docs/assets/error_handling_flow.svg
154
+ - docs/assets/favicon.ico
155
+ - docs/assets/fields_dsl_structure.svg
156
+ - docs/assets/instance_methods_lifecycle.svg
157
+ - docs/assets/integration_patterns.svg
158
+ - docs/assets/json_serialization_flow.svg
159
+ - docs/assets/logo.svg
160
+ - docs/assets/message_api_overview.svg
161
+ - docs/assets/message_encapsulation.svg
162
+ - docs/assets/message_lifecycle.svg
163
+ - docs/assets/message_structure.svg
164
+ - docs/assets/publisher_consumer_api.svg
165
+ - docs/assets/scaling_deployment_patterns.svg
166
+ - docs/assets/smart_routing_diagram.svg
167
+ - docs/assets/system_architecture_overview.svg
168
+ - docs/assets/task_scheduling_flow.svg
169
+ - docs/assets/testing_strategies.svg
170
+ - docs/assets/workflow_patterns.svg
171
+ - docs/assets/yaml_config_structure.svg
172
+ - docs/configuration/environment-variables.md
173
+ - docs/configuration/overview.md
174
+ - docs/configuration/programmatic-setup.md
175
+ - docs/configuration/yaml-configuration.md
176
+ - docs/core-features/configuration.md
177
+ - docs/core-features/error-handling.md
178
+ - docs/core-features/json-serialization.md
179
+ - docs/core-features/message-design.md
180
+ - docs/core-features/smart-routing.md
181
+ - docs/core-features/task-scheduling.md
182
+ - docs/core-features/workflow-support.md
183
+ - docs/development/contributing.md
184
+ - docs/development/roadmap.md
185
+ - docs/development/testing.md
186
+ - docs/examples/order-processing.md
187
+ - docs/examples/overview.md
188
+ - docs/examples/real-world.md
189
+ - docs/examples/simple-producer-consumer.md
190
+ - docs/examples/task-scheduler.md
191
+ - docs/getting-started/basic-concepts.md
192
+ - docs/getting-started/installation.md
193
+ - docs/getting-started/quick-start.md
194
+ - docs/index.md
195
+ - docs/message-structure/actions-dsl.md
196
+ - docs/message-structure/fields-dsl.md
197
+ - docs/message-structure/instance-methods.md
198
+ - docs/message-structure/overview.md
199
+ - examples/README.md
200
+ - examples/consumer.rb
201
+ - examples/images/message_flow.svg
202
+ - examples/images/order_workflow.svg
203
+ - examples/images/producer_consumer.svg
204
+ - examples/images/task_scheduler.svg
205
+ - examples/order_processor.rb
206
+ - examples/producer.rb
207
+ - examples/simple_message.rb
208
+ - examples/task_scheduler.rb
209
+ - images/architecture_overview.svg
210
+ - images/bunny_farm_logo.png
211
+ - images/configuration_flow.svg
212
+ - images/message_structure.svg
213
+ - lib/bunny_farm.rb
214
+ - lib/bunny_farm/.irbrc
215
+ - lib/bunny_farm/generic_consumer.rb
216
+ - lib/bunny_farm/hash_ext.rb
217
+ - lib/bunny_farm/init_bunny.rb
218
+ - lib/bunny_farm/init_hipchat.rb
219
+ - lib/bunny_farm/message.rb
220
+ - lib/bunny_farm/message_elements.rb
221
+ - lib/bunny_farm/version.rb
222
+ - mkdocs.yml
223
+ homepage: https://github.com/MadBomber/bunny_farm
224
+ licenses:
225
+ - MIT
226
+ metadata: {}
227
+ rdoc_options: []
228
+ require_paths:
229
+ - lib
230
+ required_ruby_version: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ required_rubygems_version: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ requirements: []
241
+ rubygems_version: 3.7.1
242
+ specification_version: 4
243
+ summary: Simple AMQP/JSON background job manager for RabbitMQ
244
+ test_files: []