REFACTOR: Instance methods added to 'PluginStore' model for easy access (#5315)

This commit is contained in:
Vinoth Kannan 2017-11-15 20:40:20 +05:30 committed by Robin Ward
parent c025fcffa5
commit cbc0afb399
2 changed files with 24 additions and 1 deletions

View File

@ -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)

View File

@ -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