mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 03:10:46 -06:00
REFACTOR: Instance methods added to 'PluginStore' model for easy access (#5315)
This commit is contained in:
parent
c025fcffa5
commit
cbc0afb399
@ -1,5 +1,23 @@
|
||||
# API to wrap up plugin store rows
|
||||
class PluginStore
|
||||
attr_reader :plugin_name
|
||||
|
||||
def initialize(plugin_name)
|
||||
@plugin_name = plugin_name
|
||||
end
|
||||
|
||||
def get(key)
|
||||
self.class.get(plugin_name, key)
|
||||
end
|
||||
|
||||
def set(key, value)
|
||||
self.class.set(plugin_name, key, value)
|
||||
end
|
||||
|
||||
def remove(key)
|
||||
self.class.remove(plugin_name, key)
|
||||
end
|
||||
|
||||
def self.get(plugin_name, key)
|
||||
if row = PluginStoreRow.find_by(plugin_name: plugin_name, key: key)
|
||||
cast_value(row.type_name, row.value)
|
||||
|
@ -2,16 +2,21 @@ require "rails_helper"
|
||||
require_dependency "plugin_store"
|
||||
|
||||
describe PluginStore do
|
||||
let(:store) { PluginStore.new("my_plugin_2") }
|
||||
|
||||
def set(k, v)
|
||||
PluginStore.set("my_plugin", k, v)
|
||||
store.set(k, v)
|
||||
end
|
||||
|
||||
def get(k)
|
||||
PluginStore.get("my_plugin", k)
|
||||
value = PluginStore.get("my_plugin", k)
|
||||
value == store.get(k) ? value : "values mismatch"
|
||||
end
|
||||
|
||||
def remove_row(k)
|
||||
PluginStore.remove("my_plugin", k)
|
||||
store.remove(k)
|
||||
end
|
||||
|
||||
it "sets strings correctly" do
|
||||
|
Loading…
Reference in New Issue
Block a user