fino-solid 1.6.1 → 1.7.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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -2
  3. data/lib/fino/version.rb +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afe9da9c3dff21612e953cd582bc153c4ed3f1a477e0d924ded2cbfa8c4aef85
4
- data.tar.gz: bfa621deb38e54f85af0d82f41e43a2abfb17b4c6959bae4528cd2e1a3c71164
3
+ metadata.gz: f4d5fb7faa3e7169ecdf57b126a562f8e29ba7e8772a73ffac566181ac2dc147
4
+ data.tar.gz: 47be1d99775f64362c50426fb11a67e6809b500a9c554df69231b950431a8af4
5
5
  SHA512:
6
- metadata.gz: 10a6caa24cff735e233c87dfa1b1d80581908a389e9d48db08701e4df6cb9b9c81524a2506996ac9a82173dcc1556857fd999c93ad84e84c40b9ed2ab91b29e2
7
- data.tar.gz: 86cbf0a30d31f4533729375a6b5bbe14f04708b24a2f5c8e1ca29b04f929c81882b4e7cceb612ad015be78a65644c558c42825db993218f3f3d085fa5cdd3004
6
+ metadata.gz: 6efa1a7b81907300d25cc5658c59344a354ac3bd75eed68baf5263edcacfc0df28046dbff8ea4fb9c0a377787113cb8e8fa4447e1054dcc88e8768ca3c46fee9
7
+ data.tar.gz: 506dfe24934cb10ae41d8c7710558b84d86f7c8b8a3d636891ae3601932a6fe9a53d7e73bb977bb53088a09046535092e5bdfbdbff21303f7c8693a4212f8ac0
data/README.md CHANGED
@@ -46,8 +46,8 @@ Fino.configure do
46
46
  end
47
47
 
48
48
  section :my_micro_service, label: "My Micro Service" do
49
- setting :http_read_timeout, :integer, default: 200 # in ms
50
- setting :http_open_timeout, :integer, default: 100 # in ms
49
+ setting :http_read_timeout, :integer, unit: :ms, default: 200
50
+ setting :http_open_timeout, :integer, unit: :ms, default: 100
51
51
  end
52
52
  end
53
53
  end
@@ -65,6 +65,17 @@ Fino.set(model: "gpt-5", at: :openai)
65
65
  Fino.value(:model, at: :openai) #=> "gpt-5"
66
66
  ```
67
67
 
68
+ ### Feature toggles
69
+
70
+ ```ruby
71
+ Fino.enabled?(:maintenance_mode) #=> false
72
+ Fino.disabled?(:maintenance_mode) #=> true
73
+
74
+ Fino.enabled?(:maintenance_mode, for: "qa") #=> false
75
+ Fino.add_override(:maintenance_mode, "qa" => true)
76
+ Fino.enabled?(:maintenance_mode, for: "qa") #=> true
77
+ ```
78
+
68
79
  ### Overrides
69
80
 
70
81
  ```ruby
@@ -76,6 +87,9 @@ Fino.value(:model, at: :openai) #=> "gpt-5"
76
87
  Fino.value(:model, at: :openai, for: "qa") #=> "our_local_model_not_to_pay_to_sam_altman"
77
88
 
78
89
  Fino.setting(:model, at: :openai).overrides #=> { "qa" => "our_local_model_not_to_pay_to_sam_altman" }
90
+
91
+ Fino.add_override(:model, at: :openai, "admin" => "gpt-2000")
92
+ Fino.setting(:model, at: :openai).overrides #=> { "qa" => "our_local_model_not_to_pay_to_sam_altman", "admin" => "gpt-2000" }
79
93
  ```
80
94
 
81
95
  ### A/B testing
@@ -95,6 +109,31 @@ Fino.value(:model, at: :openai, for: "user_1") #=> "gpt-6"
95
109
  Fino.value(:model, at: :openai, for: "user_2") #=> "gpt-5"
96
110
  ```
97
111
 
112
+ ### Unit conversion
113
+
114
+ Fino is able to convert numeric settings into various units
115
+
116
+ ```ruby
117
+ Fino.configure do
118
+ # ...
119
+
120
+ settings do
121
+ section :my_micro_service, label: "My Micro Service" do
122
+ setting :http_read_timeout,
123
+ :integer,
124
+ unit: :ms, # When you define setting, specify unit (e.g ms/sec) to later be able to convert it
125
+ default: 200
126
+ end
127
+ end
128
+ end
129
+
130
+ Fino.value(:http_read_timeout, at: :my_micro_service) #=> 200
131
+
132
+ # Convert from ms to sec on the fly
133
+ Fino.value(:http_read_timeout, at: :my_micro_service, unit: :sec) #=> 0.2
134
+ Fino.setting(:http_read_timeout, at: :my_micro_service).value(unit: :sec) #=> 0.2
135
+ ```
136
+
98
137
  ## Rails integration
99
138
 
100
139
  Fino easily integrates with Rails. Just add the gem to your Gemfile:
data/lib/fino/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fino
4
- VERSION = "1.6.1"
4
+ VERSION = "1.7.0"
5
5
  REQUIRED_RUBY_VERSION = ">= 3.0.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fino-solid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Egor Iskrenkov
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 1.6.1
18
+ version: 1.7.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 1.6.1
25
+ version: 1.7.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activerecord
28
28
  requirement: !ruby/object:Gem::Requirement