## [Unreleased] ## [0.7.0] 2023-04-25 - new output property for batteries: specifics. You can now add specific properties for whatever purpose like specifics.add, specifics.get. specifics.has? ## [0.6.0] 2023-04-24 - .composite_logger method for core now gives possibility to take that logger and provide it as ruby logger somewhere in the other library (usually to flow some libraries used in your kanal app logs into the kanal logs to have logs in the same place) - you can now get beautified router info in string format for debug purpose via router.routes_info_string method - better error handling in block specified for .output_ready - moved many logs from level INFO level to DEBUG to stop logs overflow of inner machinery when you just want to know some info ## [0.5.0] 2023-04-14 - new router method: `provide_output(output)` for providing output directly to consumer of `.output_ready(&block)` avoiding router and final output hook `:output_before_returned` - new router method: `provide_output_with_input(output, input)` for providing output to consumer of `.output_ready(&block)` avoiding router but applying all hooks attached to the `:output_before_returned` (usually plugins attach to this hook to convert/transform output properties) - internal: output hook :output_before_returned is executed after it was enqueued into the output_input_pair_queue. Meaning hook executed not right after processing respond blocks and creating output, but after it was enqueued to the queue which purpose is to ship output further into the `.output_ready(&block)` consumer. It was done so router public method `.provide_output_with_input(output, input)` was possible (avoiding router but not end hook) ## [0.4.3] 2023-03-30 - New condition for button pressed - Input property button_pressed ## [0.4.2] 2023-03-22 - Adding any number of loggers can be now done with core.add_logger(l) - where l is logger that have same methods as default ruby logger (debug, warn, fatal, etc) - To get logger into your class you can include Kanal::Core::Logging::Logger - this will give you method .logger to get logger - Batteries now have .keyboard output property and several conditions for input ## [0.4.1] 2023-03-16 - Added Attachment that can be used inside new input parameters in Batteries plugin - New input and output parameters in Batteries plugin: image, audio, file ## [0.4.0] 2023-03-10 - Added logging feature to Kanal, for a time being - just stdout - Error response, now Kanal Router accepts error response block, when things go haywire inside constructing output - Async response available, now developers can utilize respond_async(&block) which will be executed in separate thread ## [0.3.0] - 2023-01-10 - Kanal::Core::Core.get_plugin method added to get plugins for additional configuration by other plugins or developer code, if needed - Kanal::Core::Plugins::Plugin.rake_tasks method introduced, for plugins to have their own rake tasks that can be merged inside some kind of parent rake tasks, whether it's users Rakefile or kanal framework/interface or something Rakefile ## [0.2.5] - 2022-11-15 - Private release with more features and tests, basically working core, router, plugins, services, interfaces etc ## [0.1.0] - 2022-05-24 - Initial release of library in private repository, with basic building blocks like core, router, etc