{"repo":"eiskrenkov/fino","free":true,"listed":false,"github":"https://github.com/eiskrenkov/fino","clone":"git clone https://github.com/eiskrenkov/fino.git","description":"Plug & play distributed settings engine for Ruby and Rails","language":"Ruby","stars":37,"topics":["engine","rails","redis","ruby"],"license":"MIT","category":"databases-storage","readme_excerpt":"Fino Fino is plug & play distributed settings engine for Ruby and Rails - Blazing fast reads with multiple adapers (Redis, Active Record) - Out of the box UI - A/B test and override settings on the go Usage Define settings via DSL Work with settings Feature toggles Select setting The simplest way to define select setting in fino is the following Options must be an array of Fino::Settings::Select::Option instances Then you can interact with the setting like that Dynamic option Options can also be defined dynamically using any callable object. Let's take a look at dynamic options in an example of LLM model setting using RubyLLM by @crmne To define dynamic select options, use :select as setting type and provide a callable to options . Your object's call method might be called with refresh option which is true only when user initiates options refresh manually. This is useful for updating models list in RubyLLM for example Use with RubyLLM Overrides A/B testing Experiment analysis Fino adapters might support A/B testing analysis, both built-in solid and redis adapters do When you run an A/B test for a setting, fino automatically calculates variant based on a stable identifier you pass as a for option Later in your code, when user performs a \"desired\" action, simply call to record a \"convertion\" for user 2 . As Fino knows the right variant for user 2 , conversion will be counted todards it. Thanks to that later you'll be able to call to receive a detailed report over variants perfo","default_branch":null,"files":null,"tree":[],"storefront":"/r/eiskrenkov","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/eiskrenkov/fino/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}