rollout-active_record-adapter 0.1.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ecefa7e74cc8b39f614ae2e2cb1a33e7072aa13ded266d394052356c41139492
4
- data.tar.gz: 1e2cccffc216f98f7a10507fc90d9b9f27612135e878919d1296ace3f35e859b
3
+ metadata.gz: 3c4b7457dd843ab952cada43936a013eb40cfa6bf97781f79fee6bfc236de0a3
4
+ data.tar.gz: c37ed9dafe465ab3b83e805e5072a2593c0cf624ae243e97031e02137803fc52
5
5
  SHA512:
6
- metadata.gz: abf00af86c57f1340d03ef90d33c4225b6f82a183aee526c35c5f6f6e4ed479597579fe7e5c74ab06e793ab65d2ca00d234c30125b26c5eedef1707ff28682f5
7
- data.tar.gz: 5c597704919dfdd503bfdcbd9a28175cc94ab49454d49045ead229e18315c6f48493a4f66e8d27511fbcd320c801a418b8caf9b0aec3f9369310b49af272785c
6
+ metadata.gz: 2f49389ac2f9e165ec8a5124e27ec96b6e848998baf7abd75318c312a380955d087ea9b0c6164131d4f36ae1a6ba843d6c7eabbab7a8793157f1b2badf667c6b
7
+ data.tar.gz: 2dad9380bdcac3c0a8cbd4660b72d24c9c0e3f3cd7224b4b3a48fab62586eb8c739e2670323f575793dcf22732e73513f6f9e968ec2e8fef6d5c0afd4c316a52
@@ -72,6 +72,23 @@ class Rollout
72
72
  invalidate_features_after_commit(name)
73
73
  end
74
74
 
75
+ def delete_feature_with_history(name, event:, history_length:)
76
+ validate_history_length!(history_length)
77
+
78
+ @feature_record.transaction(requires_new: true) do
79
+ existed = @feature_record.where(name: name.to_s).delete_all > 0
80
+ invalidate_features_after_commit(name)
81
+
82
+ @event_record.where(feature_name: name.to_s, feature_visible: true)
83
+ .update_all(feature_visible: false)
84
+ if existed && event
85
+ insert_event(event, global: true, feature_visible: false)
86
+ hide_excess(@event_record.where(global_visible: true), :global_visible, history_length)
87
+ end
88
+ delete_hidden_events
89
+ end
90
+ end
91
+
75
92
  def clear_features
76
93
  @feature_record.delete_all
77
94
  invalidate_all_features_after_commit
@@ -285,13 +302,13 @@ class Rollout
285
302
  end
286
303
  end
287
304
 
288
- def insert_event(event, global:)
305
+ def insert_event(event, global:, feature_visible: true)
289
306
  @event_record.create!(
290
307
  feature_name: event.feature.to_s,
291
308
  event_name: event.name.to_s,
292
309
  data: ::Rollout::ActiveRecord::Codec.dump(event.data),
293
310
  context: ::Rollout::ActiveRecord::Codec.dump(event.context),
294
- feature_visible: true,
311
+ feature_visible: feature_visible,
295
312
  global_visible: global ? true : false,
296
313
  occurred_at: event.created_at,
297
314
  )
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rollout-active_record-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - FetLife
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-10-01 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: activerecord
@@ -69,6 +70,7 @@ homepage: https://github.com/FetLife/rollout
69
70
  licenses:
70
71
  - MIT
71
72
  metadata: {}
73
+ post_install_message:
72
74
  rdoc_options: []
73
75
  require_paths:
74
76
  - lib
@@ -83,7 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
85
  - !ruby/object:Gem::Version
84
86
  version: '0'
85
87
  requirements: []
86
- rubygems_version: 3.6.9
88
+ rubygems_version: 3.5.22
89
+ signing_key:
87
90
  specification_version: 4
88
91
  summary: Active Record adapter for the rollout gem.
89
92
  test_files: []