fino-solid 1.8.3 → 1.9.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 +29 -2
  3. data/lib/fino/version.rb +2 -2
  4. metadata +18 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b66c89d1dddc47108ece0ddcf8b78cd3c73f61014ded3c435c768e89aa811c6
4
- data.tar.gz: ed9ecd53bcfa628c5e74fce523aec2404afe6eb53484dab294726745d702e6cb
3
+ metadata.gz: cd4440e5b282bcef8d8aeb2a56b98b75e31b2b34ff05dc57eb2d8b85a076f055
4
+ data.tar.gz: fff6817b7f553c1a9482f31343f61b84b6e3fd60b6280cd558484f1281d11877
5
5
  SHA512:
6
- metadata.gz: 32bed72a5751073c0f1110f16f02bd05bb5d9d1db76b3334c0533a3247fec232b7ff8e013f58ae7eda211326259202d5bd76ff9d497bfe009fb313c6ed3fdb2f
7
- data.tar.gz: 24f4e620b48cafe7cdf7cfa86d55414f27db114f925807deba6094b1c126ebdf6ec2afe8426e5070a39fb4dc6d2116077d1bc8f07b7600741332b23597e5f5b6
6
+ metadata.gz: 0f330e1353876cc19afafdea23beab7fedb48146a4a82e1b1feb86472164e27fd87408e3a325b6e192e6d14b318fb13bdf39d2f7205f5acd3464a765b5e138fa
7
+ data.tar.gz: 42bdf1a8d7b5c102a8d8c846c372073318b2c90a25d4938913b87209c7d149f990cdce5588908a5a384ac9e401207adc76c9888e1fa8905238a32ba403dc664e
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Fino
2
2
 
3
- ⚠️ Fino in active development phase at wasn't properly battle tested in production just yet. Give us a star and stay tuned for Production test results and new features
3
+ Fino is plug & play distributed settings engine for Ruby and Rails
4
4
 
5
- Fino is a dynamic settings engine for Ruby and Rails
5
+ - Blazing fast reads with multiple adapers (Redis, Active Record)
6
+ - Out of the box UI
7
+ - A/B test and override settings on the go
6
8
 
7
9
  ## Usage
8
10
 
@@ -139,6 +141,31 @@ Fino.value(:http_read_timeout, at: :my_micro_service, unit: :sec) #=> 0.2
139
141
  Fino.setting(:http_read_timeout, at: :my_micro_service).value(unit: :sec) #=> 0.2
140
142
  ```
141
143
 
144
+ ### Callbacks
145
+
146
+ Fino provides callbacks configuration that will be called once some particular action is triggered:
147
+
148
+ - `after_write` - yields `setting_definition`, `value`, `overrides` and `variants`, is triggered when setting is updated
149
+
150
+ ```ruby
151
+ Fino.configure do
152
+ # ...
153
+
154
+ after_write do |setting_definition, value, overrides, variants|
155
+ next unless setting_definition.tags.include?(:monitor)
156
+
157
+ Monitor.track_changes("Set #{setting_definition.key} to #{value}")
158
+ end
159
+
160
+ settings do
161
+ setting :maintenance_mode, :boolean, default: false
162
+
163
+ setting :http_read_timeout, :integer, unit: :ms, default: 200, tags: %i[monitor]
164
+ setting :http_open_timeout, :integer, unit: :ms, default: 500, tags: %i[monitor]
165
+ end
166
+ end
167
+ ```
168
+
142
169
  ## Rails integration
143
170
 
144
171
  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.8.3"
5
- REQUIRED_RUBY_VERSION = ">= 3.0.0"
4
+ VERSION = "1.9.0"
5
+ REQUIRED_RUBY_VERSION = ">= 3.2.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.8.3
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Egor Iskrenkov
@@ -10,47 +10,47 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: fino
13
+ name: activerecord
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 1.8.3
18
+ version: '6.1'
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.8.3
25
+ version: '6.1'
26
26
  - !ruby/object:Gem::Dependency
27
- name: activerecord
27
+ name: fino
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: 1.9.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '6.1'
39
+ version: 1.9.0
40
40
  - !ruby/object:Gem::Dependency
41
- name: sqlite3
41
+ name: mysql2
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '1.4'
46
+ version: '0.5'
47
47
  type: :development
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '1.4'
53
+ version: '0.5'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: pg
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -66,19 +66,19 @@ dependencies:
66
66
  - !ruby/object:Gem::Version
67
67
  version: '1.0'
68
68
  - !ruby/object:Gem::Dependency
69
- name: mysql2
69
+ name: sqlite3
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '0.5'
74
+ version: '1.4'
75
75
  type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '0.5'
81
+ version: '1.4'
82
82
  email:
83
83
  - egor@iskrenkov.me
84
84
  executables: []
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  requirements:
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 3.0.0
115
+ version: 3.2.0
116
116
  required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - ">="