smart_message 0.0.12 → 0.0.16

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 (117) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +155 -1
  4. data/Gemfile.lock +6 -6
  5. data/README.md +71 -25
  6. data/docs/core-concepts/architecture.md +5 -10
  7. data/docs/getting-started/examples.md +0 -12
  8. data/docs/getting-started/quick-start.md +4 -9
  9. data/docs/index.md +6 -4
  10. data/docs/reference/serializers.md +160 -488
  11. data/docs/reference/transports.md +47 -146
  12. data/docs/transports/memory-transport.md +2 -1
  13. data/docs/transports/multi-transport.md +484 -0
  14. data/docs/transports/redis-transport-comparison.md +215 -350
  15. data/docs/transports/redis-transport.md +3 -22
  16. data/examples/README.md +6 -9
  17. data/examples/city_scenario/README.md +1 -1
  18. data/examples/city_scenario/messages/emergency_911_message.rb +0 -1
  19. data/examples/city_scenario/messages/emergency_resolved_message.rb +0 -1
  20. data/examples/city_scenario/messages/fire_dispatch_message.rb +0 -1
  21. data/examples/city_scenario/messages/fire_emergency_message.rb +0 -1
  22. data/examples/city_scenario/messages/health_check_message.rb +0 -1
  23. data/examples/city_scenario/messages/health_status_message.rb +0 -1
  24. data/examples/city_scenario/messages/police_dispatch_message.rb +0 -1
  25. data/examples/city_scenario/messages/silent_alarm_message.rb +0 -1
  26. data/examples/file/00_run_all_file_demos.rb +260 -0
  27. data/examples/file/01_basic_file_transport_demo.rb +237 -0
  28. data/examples/file/02_fifo_transport_demo.rb +289 -0
  29. data/examples/file/03_file_watching_demo.rb +332 -0
  30. data/examples/file/04_multi_transport_file_demo.rb +432 -0
  31. data/examples/file/README.md +257 -0
  32. data/examples/memory/00_run_all_demos.rb +317 -0
  33. data/examples/memory/01_message_deduplication_demo.rb +18 -32
  34. data/examples/memory/02_dead_letter_queue_demo.rb +9 -12
  35. data/examples/memory/03_point_to_point_orders.rb +3 -5
  36. data/examples/memory/04_publish_subscribe_events.rb +15 -16
  37. data/examples/memory/05_many_to_many_chat.rb +19 -22
  38. data/examples/memory/06_stdout_publish_only.rb +145 -0
  39. data/examples/memory/07_proc_handlers_demo.rb +13 -14
  40. data/examples/memory/08_custom_logger_demo.rb +136 -140
  41. data/examples/memory/09_error_handling_demo.rb +7 -10
  42. data/examples/memory/10_entity_addressing_basic.rb +25 -31
  43. data/examples/memory/11_entity_addressing_with_filtering.rb +32 -36
  44. data/examples/memory/12_regex_filtering_microservices.rb +10 -11
  45. data/examples/memory/13_header_block_configuration.rb +0 -5
  46. data/examples/memory/14_global_configuration_demo.rb +12 -14
  47. data/examples/memory/15_logger_demo.rb +0 -1
  48. data/examples/memory/README.md +37 -20
  49. data/examples/memory/log/demo_app.log.1 +100 -0
  50. data/examples/memory/log/demo_app.log.2 +100 -0
  51. data/examples/multi_transport_example.rb +114 -0
  52. data/examples/redis/01_smart_home_iot_demo.rb +20 -24
  53. data/examples/redis/README.md +0 -2
  54. data/examples/utilities/box_it.rb +12 -0
  55. data/examples/utilities/doing.rb +19 -0
  56. data/examples/utilities/temp.md +28 -0
  57. data/lib/smart_message/base.rb +24 -17
  58. data/lib/smart_message/configuration.rb +2 -23
  59. data/lib/smart_message/dead_letter_queue.rb +1 -1
  60. data/lib/smart_message/errors.rb +3 -0
  61. data/lib/smart_message/header.rb +1 -1
  62. data/lib/smart_message/logger/default.rb +1 -1
  63. data/lib/smart_message/messaging.rb +37 -66
  64. data/lib/smart_message/plugins.rb +42 -41
  65. data/lib/smart_message/serializer/base.rb +1 -1
  66. data/lib/smart_message/serializer.rb +3 -2
  67. data/lib/smart_message/subscription.rb +18 -20
  68. data/lib/smart_message/transport/async_publish_queue.rb +284 -0
  69. data/lib/smart_message/transport/base.rb +42 -8
  70. data/lib/smart_message/transport/fifo_operations.rb +264 -0
  71. data/lib/smart_message/transport/file_operations.rb +200 -0
  72. data/lib/smart_message/transport/file_transport.rb +149 -0
  73. data/lib/smart_message/transport/file_watching.rb +72 -0
  74. data/lib/smart_message/transport/memory_transport.rb +23 -4
  75. data/lib/smart_message/transport/partitioned_files.rb +46 -0
  76. data/lib/smart_message/transport/redis_transport.rb +11 -0
  77. data/lib/smart_message/transport/registry.rb +0 -1
  78. data/lib/smart_message/transport/stdout_transport.rb +73 -41
  79. data/lib/smart_message/transport/stdout_transport.rb.backup +88 -0
  80. data/lib/smart_message/transport.rb +0 -1
  81. data/lib/smart_message/version.rb +1 -1
  82. metadata +25 -37
  83. data/docs/guides/redis-queue-getting-started.md +0 -697
  84. data/docs/guides/redis-queue-patterns.md +0 -889
  85. data/docs/guides/redis-queue-production.md +0 -1091
  86. data/docs/transports/redis-enhanced-transport.md +0 -524
  87. data/docs/transports/redis-queue-transport.md +0 -1304
  88. data/examples/redis_enhanced/README.md +0 -319
  89. data/examples/redis_enhanced/enhanced_01_basic_patterns.rb +0 -233
  90. data/examples/redis_enhanced/enhanced_02_fluent_api.rb +0 -331
  91. data/examples/redis_enhanced/enhanced_03_dual_publishing.rb +0 -281
  92. data/examples/redis_enhanced/enhanced_04_advanced_routing.rb +0 -419
  93. data/examples/redis_queue/01_basic_messaging.rb +0 -221
  94. data/examples/redis_queue/01_comprehensive_examples.rb +0 -508
  95. data/examples/redis_queue/02_pattern_routing.rb +0 -405
  96. data/examples/redis_queue/03_fluent_api.rb +0 -422
  97. data/examples/redis_queue/04_load_balancing.rb +0 -486
  98. data/examples/redis_queue/05_microservices.rb +0 -735
  99. data/examples/redis_queue/06_emergency_alerts.rb +0 -777
  100. data/examples/redis_queue/07_queue_management.rb +0 -587
  101. data/examples/redis_queue/README.md +0 -366
  102. data/examples/redis_queue/enhanced_01_basic_patterns.rb +0 -233
  103. data/examples/redis_queue/enhanced_02_fluent_api.rb +0 -331
  104. data/examples/redis_queue/enhanced_03_dual_publishing.rb +0 -281
  105. data/examples/redis_queue/enhanced_04_advanced_routing.rb +0 -419
  106. data/examples/redis_queue/redis_queue_architecture.svg +0 -148
  107. data/ideas/README.md +0 -41
  108. data/ideas/agents.md +0 -1001
  109. data/ideas/database_transport.md +0 -980
  110. data/ideas/improvement.md +0 -359
  111. data/ideas/meshage.md +0 -1788
  112. data/ideas/message_discovery.md +0 -178
  113. data/ideas/message_schema.md +0 -1381
  114. data/lib/smart_message/transport/redis_enhanced_transport.rb +0 -399
  115. data/lib/smart_message/transport/redis_queue_transport.rb +0 -555
  116. data/lib/smart_message/wrapper.rb.bak +0 -132
  117. /data/examples/memory/{06_pretty_print_demo.rb → 16_pretty_print_demo.rb} +0 -0
@@ -0,0 +1,100 @@
1
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 1 - generating content to trigger file rolling when size limit is reached [message:Log entry 1 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
2
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 1 [entry_number:1] [batch:demo] [message:Debug entry 1] [source:15_logger_demo.rb:93]
3
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 2 - generating content to trigger file rolling when size limit is reached [message:Log entry 2 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
4
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 2 [entry_number:2] [batch:demo] [message:Debug entry 2] [source:15_logger_demo.rb:93]
5
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 3 - generating content to trigger file rolling when size limit is reached [message:Log entry 3 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
6
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 3 [entry_number:3] [batch:demo] [message:Debug entry 3] [source:15_logger_demo.rb:93]
7
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 4 - generating content to trigger file rolling when size limit is reached [message:Log entry 4 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
8
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 4 [entry_number:4] [batch:demo] [message:Debug entry 4] [source:15_logger_demo.rb:93]
9
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 5 - generating content to trigger file rolling when size limit is reached [message:Log entry 5 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
10
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 5 [entry_number:5] [batch:demo] [message:Debug entry 5] [source:15_logger_demo.rb:93]
11
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 6 - generating content to trigger file rolling when size limit is reached [message:Log entry 6 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
12
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 6 [entry_number:6] [batch:demo] [message:Debug entry 6] [source:15_logger_demo.rb:93]
13
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 7 - generating content to trigger file rolling when size limit is reached [message:Log entry 7 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
14
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 7 [entry_number:7] [batch:demo] [message:Debug entry 7] [source:15_logger_demo.rb:93]
15
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 8 - generating content to trigger file rolling when size limit is reached [message:Log entry 8 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
16
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 8 [entry_number:8] [batch:demo] [message:Debug entry 8] [source:15_logger_demo.rb:93]
17
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 9 - generating content to trigger file rolling when size limit is reached [message:Log entry 9 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
18
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 9 [entry_number:9] [batch:demo] [message:Debug entry 9] [source:15_logger_demo.rb:93]
19
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 10 - generating content to trigger file rolling when size limit is reached [message:Log entry 10 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
20
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 10 [entry_number:10] [batch:demo] [message:Debug entry 10] [source:15_logger_demo.rb:93]
21
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 11 - generating content to trigger file rolling when size limit is reached [message:Log entry 11 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
22
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 11 [entry_number:11] [batch:demo] [message:Debug entry 11] [source:15_logger_demo.rb:93]
23
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 12 - generating content to trigger file rolling when size limit is reached [message:Log entry 12 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
24
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 12 [entry_number:12] [batch:demo] [message:Debug entry 12] [source:15_logger_demo.rb:93]
25
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 13 - generating content to trigger file rolling when size limit is reached [message:Log entry 13 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
26
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 13 [entry_number:13] [batch:demo] [message:Debug entry 13] [source:15_logger_demo.rb:93]
27
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 14 - generating content to trigger file rolling when size limit is reached [message:Log entry 14 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
28
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 14 [entry_number:14] [batch:demo] [message:Debug entry 14] [source:15_logger_demo.rb:93]
29
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 15 - generating content to trigger file rolling when size limit is reached [message:Log entry 15 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
30
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 15 [entry_number:15] [batch:demo] [message:Debug entry 15] [source:15_logger_demo.rb:93]
31
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 16 - generating content to trigger file rolling when size limit is reached [message:Log entry 16 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
32
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 16 [entry_number:16] [batch:demo] [message:Debug entry 16] [source:15_logger_demo.rb:93]
33
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 17 - generating content to trigger file rolling when size limit is reached [message:Log entry 17 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
34
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 17 [entry_number:17] [batch:demo] [message:Debug entry 17] [source:15_logger_demo.rb:93]
35
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 18 - generating content to trigger file rolling when size limit is reached [message:Log entry 18 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
36
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 18 [entry_number:18] [batch:demo] [message:Debug entry 18] [source:15_logger_demo.rb:93]
37
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 19 - generating content to trigger file rolling when size limit is reached [message:Log entry 19 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
38
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 19 [entry_number:19] [batch:demo] [message:Debug entry 19] [source:15_logger_demo.rb:93]
39
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 20 - generating content to trigger file rolling when size limit is reached [message:Log entry 20 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
40
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 20 [entry_number:20] [batch:demo] [message:Debug entry 20] [source:15_logger_demo.rb:93]
41
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 21 - generating content to trigger file rolling when size limit is reached [message:Log entry 21 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
42
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 21 [entry_number:21] [batch:demo] [message:Debug entry 21] [source:15_logger_demo.rb:93]
43
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 22 - generating content to trigger file rolling when size limit is reached [message:Log entry 22 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
44
+ [2025-09-10T09:53:01.164 DEBUG (19258) #] Debug entry 22 [entry_number:22] [batch:demo] [message:Debug entry 22] [source:15_logger_demo.rb:93]
45
+ [2025-09-10T09:53:01.164 INFO (19258) #] Log entry 23 - generating content to trigger file rolling when size limit is reached [message:Log entry 23 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
46
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 23 [entry_number:23] [batch:demo] [message:Debug entry 23] [source:15_logger_demo.rb:93]
47
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 24 - generating content to trigger file rolling when size limit is reached [message:Log entry 24 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
48
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 24 [entry_number:24] [batch:demo] [message:Debug entry 24] [source:15_logger_demo.rb:93]
49
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 25 - generating content to trigger file rolling when size limit is reached [message:Log entry 25 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
50
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 25 [entry_number:25] [batch:demo] [message:Debug entry 25] [source:15_logger_demo.rb:93]
51
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 26 - generating content to trigger file rolling when size limit is reached [message:Log entry 26 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
52
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 26 [entry_number:26] [batch:demo] [message:Debug entry 26] [source:15_logger_demo.rb:93]
53
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 27 - generating content to trigger file rolling when size limit is reached [message:Log entry 27 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
54
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 27 [entry_number:27] [batch:demo] [message:Debug entry 27] [source:15_logger_demo.rb:93]
55
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 28 - generating content to trigger file rolling when size limit is reached [message:Log entry 28 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
56
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 28 [entry_number:28] [batch:demo] [message:Debug entry 28] [source:15_logger_demo.rb:93]
57
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 29 - generating content to trigger file rolling when size limit is reached [message:Log entry 29 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
58
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 29 [entry_number:29] [batch:demo] [message:Debug entry 29] [source:15_logger_demo.rb:93]
59
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 30 - generating content to trigger file rolling when size limit is reached [message:Log entry 30 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
60
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 30 [entry_number:30] [batch:demo] [message:Debug entry 30] [source:15_logger_demo.rb:93]
61
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 31 - generating content to trigger file rolling when size limit is reached [message:Log entry 31 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
62
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 31 [entry_number:31] [batch:demo] [message:Debug entry 31] [source:15_logger_demo.rb:93]
63
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 32 - generating content to trigger file rolling when size limit is reached [message:Log entry 32 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
64
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 32 [entry_number:32] [batch:demo] [message:Debug entry 32] [source:15_logger_demo.rb:93]
65
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 33 - generating content to trigger file rolling when size limit is reached [message:Log entry 33 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
66
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 33 [entry_number:33] [batch:demo] [message:Debug entry 33] [source:15_logger_demo.rb:93]
67
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 34 - generating content to trigger file rolling when size limit is reached [message:Log entry 34 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
68
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 34 [entry_number:34] [batch:demo] [message:Debug entry 34] [source:15_logger_demo.rb:93]
69
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 35 - generating content to trigger file rolling when size limit is reached [message:Log entry 35 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
70
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 35 [entry_number:35] [batch:demo] [message:Debug entry 35] [source:15_logger_demo.rb:93]
71
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 36 - generating content to trigger file rolling when size limit is reached [message:Log entry 36 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
72
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 36 [entry_number:36] [batch:demo] [message:Debug entry 36] [source:15_logger_demo.rb:93]
73
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 37 - generating content to trigger file rolling when size limit is reached [message:Log entry 37 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
74
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 37 [entry_number:37] [batch:demo] [message:Debug entry 37] [source:15_logger_demo.rb:93]
75
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 38 - generating content to trigger file rolling when size limit is reached [message:Log entry 38 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
76
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 38 [entry_number:38] [batch:demo] [message:Debug entry 38] [source:15_logger_demo.rb:93]
77
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 39 - generating content to trigger file rolling when size limit is reached [message:Log entry 39 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
78
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 39 [entry_number:39] [batch:demo] [message:Debug entry 39] [source:15_logger_demo.rb:93]
79
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 40 - generating content to trigger file rolling when size limit is reached [message:Log entry 40 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
80
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 40 [entry_number:40] [batch:demo] [message:Debug entry 40] [source:15_logger_demo.rb:93]
81
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 41 - generating content to trigger file rolling when size limit is reached [message:Log entry 41 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
82
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 41 [entry_number:41] [batch:demo] [message:Debug entry 41] [source:15_logger_demo.rb:93]
83
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 42 - generating content to trigger file rolling when size limit is reached [message:Log entry 42 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
84
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 42 [entry_number:42] [batch:demo] [message:Debug entry 42] [source:15_logger_demo.rb:93]
85
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 43 - generating content to trigger file rolling when size limit is reached [message:Log entry 43 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
86
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 43 [entry_number:43] [batch:demo] [message:Debug entry 43] [source:15_logger_demo.rb:93]
87
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 44 - generating content to trigger file rolling when size limit is reached [message:Log entry 44 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
88
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 44 [entry_number:44] [batch:demo] [message:Debug entry 44] [source:15_logger_demo.rb:93]
89
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 45 - generating content to trigger file rolling when size limit is reached [message:Log entry 45 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
90
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 45 [entry_number:45] [batch:demo] [message:Debug entry 45] [source:15_logger_demo.rb:93]
91
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 46 - generating content to trigger file rolling when size limit is reached [message:Log entry 46 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
92
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 46 [entry_number:46] [batch:demo] [message:Debug entry 46] [source:15_logger_demo.rb:93]
93
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 47 - generating content to trigger file rolling when size limit is reached [message:Log entry 47 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
94
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 47 [entry_number:47] [batch:demo] [message:Debug entry 47] [source:15_logger_demo.rb:93]
95
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 48 - generating content to trigger file rolling when size limit is reached [message:Log entry 48 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
96
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 48 [entry_number:48] [batch:demo] [message:Debug entry 48] [source:15_logger_demo.rb:93]
97
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 49 - generating content to trigger file rolling when size limit is reached [message:Log entry 49 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
98
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 49 [entry_number:49] [batch:demo] [message:Debug entry 49] [source:15_logger_demo.rb:93]
99
+ [2025-09-10T09:53:01.165 INFO (19258) #] Log entry 50 - generating content to trigger file rolling when size limit is reached [message:Log entry 50 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
100
+ [2025-09-10T09:53:01.165 DEBUG (19258) #] Debug entry 50 [entry_number:50] [batch:demo] [message:Debug entry 50] [source:15_logger_demo.rb:93]
@@ -0,0 +1,100 @@
1
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 1 - generating content to trigger file rolling when size limit is reached [message:Log entry 1 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
2
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 1 [entry_number:1] [batch:demo] [message:Debug entry 1] [source:15_logger_demo.rb:93]
3
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 2 - generating content to trigger file rolling when size limit is reached [message:Log entry 2 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
4
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 2 [entry_number:2] [batch:demo] [message:Debug entry 2] [source:15_logger_demo.rb:93]
5
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 3 - generating content to trigger file rolling when size limit is reached [message:Log entry 3 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
6
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 3 [entry_number:3] [batch:demo] [message:Debug entry 3] [source:15_logger_demo.rb:93]
7
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 4 - generating content to trigger file rolling when size limit is reached [message:Log entry 4 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
8
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 4 [entry_number:4] [batch:demo] [message:Debug entry 4] [source:15_logger_demo.rb:93]
9
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 5 - generating content to trigger file rolling when size limit is reached [message:Log entry 5 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
10
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 5 [entry_number:5] [batch:demo] [message:Debug entry 5] [source:15_logger_demo.rb:93]
11
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 6 - generating content to trigger file rolling when size limit is reached [message:Log entry 6 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
12
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 6 [entry_number:6] [batch:demo] [message:Debug entry 6] [source:15_logger_demo.rb:93]
13
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 7 - generating content to trigger file rolling when size limit is reached [message:Log entry 7 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
14
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 7 [entry_number:7] [batch:demo] [message:Debug entry 7] [source:15_logger_demo.rb:93]
15
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 8 - generating content to trigger file rolling when size limit is reached [message:Log entry 8 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
16
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 8 [entry_number:8] [batch:demo] [message:Debug entry 8] [source:15_logger_demo.rb:93]
17
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 9 - generating content to trigger file rolling when size limit is reached [message:Log entry 9 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
18
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 9 [entry_number:9] [batch:demo] [message:Debug entry 9] [source:15_logger_demo.rb:93]
19
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 10 - generating content to trigger file rolling when size limit is reached [message:Log entry 10 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
20
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 10 [entry_number:10] [batch:demo] [message:Debug entry 10] [source:15_logger_demo.rb:93]
21
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 11 - generating content to trigger file rolling when size limit is reached [message:Log entry 11 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
22
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 11 [entry_number:11] [batch:demo] [message:Debug entry 11] [source:15_logger_demo.rb:93]
23
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 12 - generating content to trigger file rolling when size limit is reached [message:Log entry 12 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
24
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 12 [entry_number:12] [batch:demo] [message:Debug entry 12] [source:15_logger_demo.rb:93]
25
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 13 - generating content to trigger file rolling when size limit is reached [message:Log entry 13 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
26
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 13 [entry_number:13] [batch:demo] [message:Debug entry 13] [source:15_logger_demo.rb:93]
27
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 14 - generating content to trigger file rolling when size limit is reached [message:Log entry 14 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
28
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 14 [entry_number:14] [batch:demo] [message:Debug entry 14] [source:15_logger_demo.rb:93]
29
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 15 - generating content to trigger file rolling when size limit is reached [message:Log entry 15 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
30
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 15 [entry_number:15] [batch:demo] [message:Debug entry 15] [source:15_logger_demo.rb:93]
31
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 16 - generating content to trigger file rolling when size limit is reached [message:Log entry 16 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
32
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 16 [entry_number:16] [batch:demo] [message:Debug entry 16] [source:15_logger_demo.rb:93]
33
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 17 - generating content to trigger file rolling when size limit is reached [message:Log entry 17 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
34
+ [2025-09-10T10:00:46.601 DEBUG (22295) #] Debug entry 17 [entry_number:17] [batch:demo] [message:Debug entry 17] [source:15_logger_demo.rb:93]
35
+ [2025-09-10T10:00:46.601 INFO (22295) #] Log entry 18 - generating content to trigger file rolling when size limit is reached [message:Log entry 18 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
36
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 18 [entry_number:18] [batch:demo] [message:Debug entry 18] [source:15_logger_demo.rb:93]
37
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 19 - generating content to trigger file rolling when size limit is reached [message:Log entry 19 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
38
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 19 [entry_number:19] [batch:demo] [message:Debug entry 19] [source:15_logger_demo.rb:93]
39
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 20 - generating content to trigger file rolling when size limit is reached [message:Log entry 20 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
40
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 20 [entry_number:20] [batch:demo] [message:Debug entry 20] [source:15_logger_demo.rb:93]
41
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 21 - generating content to trigger file rolling when size limit is reached [message:Log entry 21 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
42
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 21 [entry_number:21] [batch:demo] [message:Debug entry 21] [source:15_logger_demo.rb:93]
43
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 22 - generating content to trigger file rolling when size limit is reached [message:Log entry 22 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
44
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 22 [entry_number:22] [batch:demo] [message:Debug entry 22] [source:15_logger_demo.rb:93]
45
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 23 - generating content to trigger file rolling when size limit is reached [message:Log entry 23 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
46
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 23 [entry_number:23] [batch:demo] [message:Debug entry 23] [source:15_logger_demo.rb:93]
47
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 24 - generating content to trigger file rolling when size limit is reached [message:Log entry 24 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
48
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 24 [entry_number:24] [batch:demo] [message:Debug entry 24] [source:15_logger_demo.rb:93]
49
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 25 - generating content to trigger file rolling when size limit is reached [message:Log entry 25 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
50
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 25 [entry_number:25] [batch:demo] [message:Debug entry 25] [source:15_logger_demo.rb:93]
51
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 26 - generating content to trigger file rolling when size limit is reached [message:Log entry 26 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
52
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 26 [entry_number:26] [batch:demo] [message:Debug entry 26] [source:15_logger_demo.rb:93]
53
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 27 - generating content to trigger file rolling when size limit is reached [message:Log entry 27 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
54
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 27 [entry_number:27] [batch:demo] [message:Debug entry 27] [source:15_logger_demo.rb:93]
55
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 28 - generating content to trigger file rolling when size limit is reached [message:Log entry 28 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
56
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 28 [entry_number:28] [batch:demo] [message:Debug entry 28] [source:15_logger_demo.rb:93]
57
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 29 - generating content to trigger file rolling when size limit is reached [message:Log entry 29 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
58
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 29 [entry_number:29] [batch:demo] [message:Debug entry 29] [source:15_logger_demo.rb:93]
59
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 30 - generating content to trigger file rolling when size limit is reached [message:Log entry 30 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
60
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 30 [entry_number:30] [batch:demo] [message:Debug entry 30] [source:15_logger_demo.rb:93]
61
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 31 - generating content to trigger file rolling when size limit is reached [message:Log entry 31 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
62
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 31 [entry_number:31] [batch:demo] [message:Debug entry 31] [source:15_logger_demo.rb:93]
63
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 32 - generating content to trigger file rolling when size limit is reached [message:Log entry 32 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
64
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 32 [entry_number:32] [batch:demo] [message:Debug entry 32] [source:15_logger_demo.rb:93]
65
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 33 - generating content to trigger file rolling when size limit is reached [message:Log entry 33 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
66
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 33 [entry_number:33] [batch:demo] [message:Debug entry 33] [source:15_logger_demo.rb:93]
67
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 34 - generating content to trigger file rolling when size limit is reached [message:Log entry 34 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
68
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 34 [entry_number:34] [batch:demo] [message:Debug entry 34] [source:15_logger_demo.rb:93]
69
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 35 - generating content to trigger file rolling when size limit is reached [message:Log entry 35 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
70
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 35 [entry_number:35] [batch:demo] [message:Debug entry 35] [source:15_logger_demo.rb:93]
71
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 36 - generating content to trigger file rolling when size limit is reached [message:Log entry 36 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
72
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 36 [entry_number:36] [batch:demo] [message:Debug entry 36] [source:15_logger_demo.rb:93]
73
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 37 - generating content to trigger file rolling when size limit is reached [message:Log entry 37 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
74
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 37 [entry_number:37] [batch:demo] [message:Debug entry 37] [source:15_logger_demo.rb:93]
75
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 38 - generating content to trigger file rolling when size limit is reached [message:Log entry 38 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
76
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 38 [entry_number:38] [batch:demo] [message:Debug entry 38] [source:15_logger_demo.rb:93]
77
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 39 - generating content to trigger file rolling when size limit is reached [message:Log entry 39 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
78
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 39 [entry_number:39] [batch:demo] [message:Debug entry 39] [source:15_logger_demo.rb:93]
79
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 40 - generating content to trigger file rolling when size limit is reached [message:Log entry 40 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
80
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 40 [entry_number:40] [batch:demo] [message:Debug entry 40] [source:15_logger_demo.rb:93]
81
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 41 - generating content to trigger file rolling when size limit is reached [message:Log entry 41 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
82
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 41 [entry_number:41] [batch:demo] [message:Debug entry 41] [source:15_logger_demo.rb:93]
83
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 42 - generating content to trigger file rolling when size limit is reached [message:Log entry 42 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
84
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 42 [entry_number:42] [batch:demo] [message:Debug entry 42] [source:15_logger_demo.rb:93]
85
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 43 - generating content to trigger file rolling when size limit is reached [message:Log entry 43 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
86
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 43 [entry_number:43] [batch:demo] [message:Debug entry 43] [source:15_logger_demo.rb:93]
87
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 44 - generating content to trigger file rolling when size limit is reached [message:Log entry 44 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
88
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 44 [entry_number:44] [batch:demo] [message:Debug entry 44] [source:15_logger_demo.rb:93]
89
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 45 - generating content to trigger file rolling when size limit is reached [message:Log entry 45 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
90
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 45 [entry_number:45] [batch:demo] [message:Debug entry 45] [source:15_logger_demo.rb:93]
91
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 46 - generating content to trigger file rolling when size limit is reached [message:Log entry 46 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
92
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 46 [entry_number:46] [batch:demo] [message:Debug entry 46] [source:15_logger_demo.rb:93]
93
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 47 - generating content to trigger file rolling when size limit is reached [message:Log entry 47 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
94
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 47 [entry_number:47] [batch:demo] [message:Debug entry 47] [source:15_logger_demo.rb:93]
95
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 48 - generating content to trigger file rolling when size limit is reached [message:Log entry 48 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
96
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 48 [entry_number:48] [batch:demo] [message:Debug entry 48] [source:15_logger_demo.rb:93]
97
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 49 - generating content to trigger file rolling when size limit is reached [message:Log entry 49 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
98
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 49 [entry_number:49] [batch:demo] [message:Debug entry 49] [source:15_logger_demo.rb:93]
99
+ [2025-09-10T10:00:46.602 INFO (22295) #] Log entry 50 - generating content to trigger file rolling when size limit is reached [message:Log entry 50 - generating content to trigger file rolling when size limit is reached] [source:15_logger_demo.rb:92]
100
+ [2025-09-10T10:00:46.602 DEBUG (22295) #] Debug entry 50 [entry_number:50] [batch:demo] [message:Debug entry 50] [source:15_logger_demo.rb:93]
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+ # frozen_string_literal: true
4
+
5
+ # Example demonstrating multi-transport functionality in SmartMessage
6
+ # This example shows how to configure and use multiple transports for a single message
7
+
8
+ require_relative '../lib/smart_message'
9
+
10
+ # Define a simple message class for demonstration
11
+ class MultiTransportMessage < SmartMessage::Base
12
+ property :content, required: true
13
+ property :priority, default: 'normal'
14
+
15
+ # Configure multiple transports for this message
16
+ transport [
17
+ SmartMessage::Transport::StdoutTransport.new(format: :pretty),
18
+ SmartMessage::Transport::MemoryTransport.new(auto_process: false)
19
+ ]
20
+ end
21
+
22
+ # Example 1: Single transport (backward compatibility)
23
+ class SingleTransportMessage < SmartMessage::Base
24
+ property :data, required: true
25
+
26
+ # Single transport works exactly as before
27
+ transport SmartMessage::Transport::StdoutTransport.new
28
+ end
29
+
30
+ puts "=== SmartMessage Multi-Transport Demo ==="
31
+ puts
32
+
33
+ # Test single transport (backward compatibility)
34
+ puts "1. Single Transport Example:"
35
+ single_msg = SingleTransportMessage.new(data: "Hello from single transport", from: "demo_app")
36
+ puts " Transport count: #{single_msg.transports.length}"
37
+ puts " Is single transport? #{single_msg.single_transport?}"
38
+ single_msg.publish
39
+ puts
40
+
41
+ # Test multiple transports
42
+ puts "2. Multiple Transport Example:"
43
+ multi_msg = MultiTransportMessage.new(
44
+ content: "Hello from multiple transports!",
45
+ priority: "high",
46
+ from: "demo_app"
47
+ )
48
+ puts " Transport count: #{multi_msg.transports.length}"
49
+ puts " Is multiple transports? #{multi_msg.multiple_transports?}"
50
+ puts " Transport classes: #{multi_msg.transports.map { |t| t.class.name.split('::').last }.join(', ')}"
51
+ puts " Primary transport (backward compat): #{multi_msg.transport.class.name.split('::').last}"
52
+ multi_msg.publish
53
+ puts
54
+
55
+ # Test instance-level transport override
56
+ puts "3. Instance-level Transport Override:"
57
+ override_msg = MultiTransportMessage.new(content: "Override example", from: "demo_app")
58
+ override_msg.transport(SmartMessage::Transport::StdoutTransport.new(format: :json))
59
+ puts " Override transport count: #{override_msg.transports.length}"
60
+ puts " Override is single? #{override_msg.single_transport?}"
61
+ override_msg.publish
62
+ puts
63
+
64
+ # Test transport failure resilience
65
+ puts "4. Transport Failure Resilience:"
66
+ class FailingTransport < SmartMessage::Transport::Base
67
+ def publish(message)
68
+ raise StandardError, "Simulated transport failure"
69
+ end
70
+ end
71
+
72
+ class ResilientMessage < SmartMessage::Base
73
+ property :message, required: true
74
+
75
+ transport [
76
+ FailingTransport.new,
77
+ SmartMessage::Transport::StdoutTransport.new(format: :compact)
78
+ ]
79
+ end
80
+
81
+ resilient_msg = ResilientMessage.new(message: "Testing failure resilience", from: "demo_app")
82
+ puts " Publishing with one failing transport..."
83
+ begin
84
+ resilient_msg.publish
85
+ puts " ✓ Message published successfully despite transport failure"
86
+ rescue => e
87
+ puts " ✗ Unexpected error: #{e.message}"
88
+ end
89
+ puts
90
+
91
+ # Test all transports failing
92
+ puts "5. All Transports Failing:"
93
+ class AllFailingMessage < SmartMessage::Base
94
+ property :data
95
+
96
+ transport [
97
+ FailingTransport.new,
98
+ FailingTransport.new
99
+ ]
100
+ end
101
+
102
+ failing_msg = AllFailingMessage.new(data: "This will fail", from: "demo_app")
103
+ puts " Publishing with all transports failing..."
104
+ begin
105
+ failing_msg.publish
106
+ puts " ✗ Expected failure did not occur"
107
+ rescue SmartMessage::Errors::PublishError => e
108
+ puts " ✓ Correctly caught PublishError: #{e.message.split(':').first}"
109
+ rescue => e
110
+ puts " ✗ Unexpected error type: #{e.class} - #{e.message}"
111
+ end
112
+ puts
113
+
114
+ puts "=== Demo Complete ==="
@@ -79,11 +79,10 @@ class SensorDataMessage < SmartMessage::Base
79
79
 
80
80
  config do
81
81
  transport SHARED_TRANSPORT
82
- serializer SmartMessage::Serializer::Json.new
83
82
  end
84
83
 
85
- def self.process(wrapper)
86
- message_header, message_payload = wrapper.split
84
+ def process(message)
85
+ message_header, message_payload = message
87
86
  sensor_data = JSON.parse(message_payload)
88
87
  icon = case sensor_data['device_type']
89
88
  when 'thermostat' then '🌡️'
@@ -114,11 +113,10 @@ class DeviceCommandMessage < SmartMessage::Base
114
113
 
115
114
  config do
116
115
  transport SHARED_TRANSPORT
117
- serializer SmartMessage::Serializer::Json.new
118
116
  end
119
117
 
120
- def self.process(wrapper)
121
- message_header, message_payload = wrapper.split
118
+ def process(message)
119
+ message_header, message_payload = message
122
120
  command_data = JSON.parse(message_payload)
123
121
  puts "🎛️ Command sent: #{command_data['command']} to #{command_data['device_id']} (requested by #{command_data['requested_by']})"
124
122
  end
@@ -147,11 +145,10 @@ class AlertMessage < SmartMessage::Base
147
145
 
148
146
  config do
149
147
  transport SHARED_TRANSPORT
150
- serializer SmartMessage::Serializer::Json.new
151
148
  end
152
149
 
153
- def self.process(wrapper)
154
- message_header, message_payload = wrapper.split
150
+ def process(message)
151
+ message_header, message_payload = message
155
152
  alert_data = JSON.parse(message_payload)
156
153
  severity_icon = case alert_data['severity']
157
154
  when 'low' then '💙'
@@ -176,11 +173,10 @@ class DashboardStatusMessage < SmartMessage::Base
176
173
 
177
174
  config do
178
175
  transport SHARED_TRANSPORT
179
- serializer SmartMessage::Serializer::Json.new
180
176
  end
181
177
 
182
- def self.process(wrapper)
183
- message_header, message_payload = wrapper.split
178
+ def process(message)
179
+ message_header, message_payload = message
184
180
  status_data = JSON.parse(message_payload)
185
181
  status_icon = case status_data['system_status']
186
182
  when 'normal' then '✅'
@@ -209,8 +205,8 @@ class SmartThermostat
209
205
  DeviceCommandMessage.subscribe("SmartThermostat.handle_command")
210
206
  end
211
207
 
212
- def self.handle_command(wrapper)
213
- message_header, message_payload = wrapper.split
208
+ def handle_command(message)
209
+ message_header, message_payload = message
214
210
  command_data = JSON.parse(message_payload)
215
211
 
216
212
  # Only process commands intended for thermostats with our device ID
@@ -293,8 +289,8 @@ class SecurityCamera
293
289
  DeviceCommandMessage.subscribe("SecurityCamera.handle_command")
294
290
  end
295
291
 
296
- def self.handle_command(wrapper)
297
- message_header, message_payload = wrapper.split
292
+ def handle_command(message)
293
+ message_header, message_payload = message
298
294
  command_data = JSON.parse(message_payload)
299
295
 
300
296
  # Only process commands intended for cameras with our device ID
@@ -404,8 +400,8 @@ class SmartDoorLock
404
400
  DeviceCommandMessage.subscribe("SmartDoorLock.handle_command")
405
401
  end
406
402
 
407
- def self.handle_command(wrapper)
408
- message_header, message_payload = wrapper.split
403
+ def handle_command(message)
404
+ message_header, message_payload = message
409
405
  command_data = JSON.parse(message_payload)
410
406
 
411
407
  # Only process commands intended for door locks with our device ID
@@ -486,20 +482,20 @@ class IoTDashboard
486
482
  DeviceCommandMessage.subscribe("IoTDashboard.log_command")
487
483
  end
488
484
 
489
- def self.handle_sensor_data(wrapper)
490
- message_header, message_payload = wrapper.split
485
+ def handle_sensor_data(message)
486
+ message_header, message_payload = message
491
487
  @@instance ||= new
492
488
  @@instance.process_sensor_data(message_header, message_payload)
493
489
  end
494
490
 
495
- def self.handle_alert(wrapper)
496
- message_header, message_payload = wrapper.split
491
+ def handle_alert(message)
492
+ message_header, message_payload = message
497
493
  @@instance ||= new
498
494
  @@instance.process_alert(message_header, message_payload)
499
495
  end
500
496
 
501
- def self.log_command(wrapper)
502
- message_header, message_payload = wrapper.split
497
+ def log_command(message)
498
+ message_header, message_payload = message
503
499
  @@instance ||= new
504
500
  @@instance.log_device_command(message_header, message_payload)
505
501
  end
@@ -135,7 +135,6 @@ SmartMessage.configure do |config|
135
135
  url: 'redis://localhost:6379',
136
136
  db: 1 # Optional: use specific Redis database
137
137
  )
138
- config.serializer = SmartMessage::Serializer::Json.new
139
138
  end
140
139
  ```
141
140
 
@@ -147,7 +146,6 @@ class MyMessage < SmartMessage::Base
147
146
  url: 'redis://localhost:6379',
148
147
  db: 2
149
148
  )
150
- serializer SmartMessage::Serializer::Json.new
151
149
  end
152
150
  end
153
151
  ```
@@ -0,0 +1,12 @@
1
+ def box_it(strings, bchar: "#")
2
+ # Ensure we have an array of strings
3
+ rows = Array(strings).map{|s| s.to_s.strip}
4
+ max_width = rows.map(&:length).max || 0
5
+
6
+ border = bchar * (max_width + 4)
7
+ puts border
8
+ rows.each do |s|
9
+ puts "#{bchar} #{s.center(max_width)} #{bchar}"
10
+ end
11
+ puts border
12
+ end
@@ -0,0 +1,19 @@
1
+ # ~/lib/ruby/doing.rb
2
+ # puts feedback stdout content around an action.
3
+
4
+ def doing(action_text = nil, ok: 'done', fail: 'failed')
5
+ action_text ||= 'Working'
6
+ print("#{action_text} ... ")
7
+ STDOUT.flush
8
+ start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
9
+ begin
10
+ result = yield if block_given?
11
+ elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
12
+ elapsed_str = elapsed < 0.01 ? "<0.01s" : "#{elapsed.round(2)}s"
13
+ puts "#{ok} #{elapsed_str}"
14
+ result
15
+ rescue => e
16
+ puts "#{fail} #{e.message}"
17
+ raise
18
+ end
19
+ end
@@ -0,0 +1,28 @@
1
+
2
+ You: write some ruby code for me: I want a method that takes an Array of left justified Strings an
3
+ d centers each entry based upon the longest entry then outputs these strings to stdout enclosed within a box made
4
+ out of the ascii character for pound sign.
5
+
6
+ AI:
7
+ def boxed_center(strings)
8
+ # Ensure we have an array of strings
9
+ rows = Array(strings).map(&:to_s)
10
+ max_width = rows.map(&:length).max || 0
11
+
12
+ border = "#" * (max_width + 4)
13
+ puts border
14
+ rows.each do |s|
15
+ puts "# #{s.center(max_width)} #"
16
+ end
17
+ puts border
18
+ end
19
+
20
+ # Example:
21
+ # boxed_center(["alpha", "beta", "gamma rays", "delta"])
22
+ # Output:
23
+ # ##############
24
+ # # alpha #
25
+ # # beta #
26
+ # # gamma rays #
27
+ # # delta #
28
+ # ##############