summoner-engine 0.1.1 → 0.1.3

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: 16b6f89523664e20b97b20b66451b2eae21ae1fd2aa169f5b9edc1123d626a1a
4
- data.tar.gz: c7c09067f35219156aec1149c70f6609c2e6ecbf8ad4eb93616a2189c10a1eec
3
+ metadata.gz: a9d801fc60a723524709a3e3a34248edf92e17eb98302805ad98c1a55bcd140a
4
+ data.tar.gz: 0fb1cb988bacaeb7ec272be657c265927066accabc39a846f1c03d87745872b6
5
5
  SHA512:
6
- metadata.gz: f66eba94a7f2dce3c8afe3e43665dec39547af90bdd2ff70aaff77b07cea352eb910a89a203ee6c6381583b42615720edfade76c8118b4eb2c830c87ac30a344
7
- data.tar.gz: bf73046d676439929ec3817b2ac1eedb414c8dd18b30498aa27a501a889b2397a13c587ccb7a5678d6ea22c8f9e5dfedf704c8612c7420dac1918a95de1d78a9
6
+ metadata.gz: 0b8578cd66f8151dd9de38882092693b12a76111689f2ec56e3b44fb9c392ef299832803c3b701c1341db8169d8d202eab55b778a79cab832b8d76f4eb6aed9c
7
+ data.tar.gz: 18bf3185651b8bc80b75bb4c49edc8b4711b94eee95e1e1c15a56018cb52b69f56f1371f27a4ed377827d090c5859c21cc33fab2a5b41242ae408316a2be8294
@@ -55,7 +55,10 @@ module Summoner
55
55
 
56
56
  base_key = "#{Summoner.configuration.cache_namespace}:#{key}"
57
57
 
58
- Rails.cache.delete_matched(/#{Regexp.escape(base_key)}/)
58
+ Rails.cache.delete(base_key)
59
+
60
+ version_key = "#{base_key}:version"
61
+ Rails.cache.write(version_key, Time.current.to_f)
59
62
  end
60
63
  end
61
64
  end
@@ -2,7 +2,7 @@
2
2
  <%= link_to "← Back to Feature", feature_path(@feature), class: "btn btn-outline btn-sm", style: "text-decoration: none;" %>
3
3
  </div>
4
4
 
5
- <div class="card" style="max-width: 600px;">
5
+ <div class="card mx-auto">
6
6
  <div class="card-header">
7
7
  <h2 class="mb-0">Edit Default Value</h2>
8
8
  </div>
@@ -24,7 +24,7 @@
24
24
  <%= form_with model: @feature, local: true do |f| %>
25
25
  <div class="form-group mb-4">
26
26
  <%= f.label :default_value, "New Default Value", class: "form-label" %>
27
- <%= f.text_field :default_value, value: @feature.default_value.is_a?(String) ? @feature.default_value : @feature.default_value.to_json, class: "form-control" %>
27
+ <%= f.text_field :default_value, value: @feature.default_value.is_a?(String) ? @feature.default_value : (JSON.generate(@feature.default_value) rescue ""), class: "form-control" %>
28
28
  </div>
29
29
 
30
30
  <div class="form-group mb-4">
@@ -31,8 +31,7 @@
31
31
  <% end %>
32
32
  </div>
33
33
  </td>
34
- <td><code><%= feature.default_value.to_json %></code></td>
35
- <td>
34
+ <td><code><%= feature.default_value.is_a?(String) ? feature.default_value : (JSON.generate(feature.default_value) rescue "null") %></code></td> <td>
36
35
  <span class="badge <%= feature.active ? 'active' : 'inactive' %>">
37
36
  <%= feature.active ? 'Active' : 'Inactive (Removed)' %>
38
37
  </span>
@@ -25,7 +25,7 @@
25
25
  <span>Matches Attribute:</span> <code><%= @feature.match_attribute %></code>
26
26
  <% end %>
27
27
 
28
- <span>Default Value:</span> <code><%= @feature.default_value.to_json %></code>
28
+ <span>Default Value:</span> <code><%= @feature.default_value.is_a?(String) ? @feature.default_value : (JSON.generate(@feature.default_value) rescue "null") %></code>
29
29
  <span>Status:</span>
30
30
  <div>
31
31
  <span class="badge <%= @feature.active ? 'active' : 'inactive' %>">
@@ -55,7 +55,7 @@
55
55
  <tr>
56
56
  <td><%= override.flaggable_type %></td>
57
57
  <td><%= override.flaggable_id %></td>
58
- <td><code><%= override.value.to_json %></code></td>
58
+ <td><code><%= override.value.is_a?(String) ? override.value : (JSON.generate(override.value) rescue "null") %></code></td>
59
59
  <td>
60
60
  <div class="d-flex gap-2 align-items-center">
61
61
  <%= button_to "Edit", edit_feature_override_path(@feature, override),
@@ -27,7 +27,7 @@
27
27
  <% if @feature.value_type == 'boolean' %>
28
28
  <%= f.select :value, [['True', 'true'], ['False', 'false']], { selected: @override.value.to_s }, class: "form-control" %>
29
29
  <% else %>
30
- <%= f.text_field :value, value: @override.value.is_a?(String) ? @override.value : @override.value.to_json, class: "form-control" %>
30
+ <%= f.text_field :value, value: @override.value.is_a?(String) ? @override.value : (JSON.generate(@override.value) rescue ""), class: "form-control" %>
31
31
  <% end %>
32
32
  </div>
33
33
 
@@ -5,10 +5,14 @@ module Summoner
5
5
 
6
6
  return fetch_from_db(feature_key, entity) unless config.cache_enabled
7
7
 
8
+ base_key = "#{config.cache_namespace}:#{feature_key}"
9
+ version_key = "#{base_key}:version"
10
+ current_version = Rails.cache.fetch(version_key) { 1 }
11
+
8
12
  cache_key = if entity
9
- "#{config.cache_namespace}:#{feature_key}:#{entity.class.name.underscore}:#{entity.id}"
13
+ "#{base_key}:v#{current_version}:#{entity.class.name.underscore}:#{entity.id}"
10
14
  else
11
- "#{config.cache_namespace}:#{feature_key}"
15
+ "#{base_key}:v#{current_version}"
12
16
  end
13
17
 
14
18
  Rails.cache.fetch(cache_key, expires_in: config.cache_expires_in) do
@@ -1,3 +1,3 @@
1
1
  module Summoner
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: summoner-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Rodrigues