summaryrefslogtreecommitdiff
path: root/data/rbot/plugins
diff options
context:
space:
mode:
authorMatthias Hecker <mail@apoc.cc>2020-04-20 19:25:52 +0200
committerMatthias Hecker <mail@apoc.cc>2020-04-20 19:25:52 +0200
commit3d85327c1dd8c2dd1b7068f04c9076d7fe991988 (patch)
tree573e816a998de0fa2a8a19862c23948f4c9ea3ad /data/rbot/plugins
parent0794897ba2e4b7f32b271bda7291999f313f99e7 (diff)
plugin(alias): use registry for storage see #42
Diffstat (limited to 'data/rbot/plugins')
-rw-r--r--data/rbot/plugins/alias.rb39
1 files changed, 18 insertions, 21 deletions
diff --git a/data/rbot/plugins/alias.rb b/data/rbot/plugins/alias.rb
index 89be0020..67f481dc 100644
--- a/data/rbot/plugins/alias.rb
+++ b/data/rbot/plugins/alias.rb
@@ -38,32 +38,29 @@ class AliasPlugin < Plugin
def initialize
super
- @data_path = datafile
- @data_file = File.join(@data_path, 'aliases.yaml')
- # hash of alias => command entries
- data = nil
- aliases = if File.exist?(@data_file) &&
- (data = YAML.load_file(@data_file)) &&
- data.respond_to?(:each_pair)
- data
- else
- warning _("Data file is not found or corrupt, reinitializing data")
- Hash.new
- end
- @aliases = Hash.new
- aliases.each_pair do |a, c|
- begin
- add_alias(a, c)
- rescue AliasDefinitionError
- warning _("Invalid alias entry %{alias} : %{command} in %{filename}: %{reason}") %
- {:alias => a, :command => c, :filename => @data_file, :reason => $1}
+ @aliases = @registry[:aliases]
+ unless @aliases
+ # attempt to load aliases from data file yaml
+ filename = File.join(datafile, 'aliases.yaml')
+ if File.exists? filename
+ begin
+ @aliases = {}
+ YAML.load_file(filename).each_pair do |a, c|
+ add_alias(a, c)
+ end
+ rescue
+ warning _("Data file is not found or corrupt, reinitializing data")
+ @aliases = {}
+ end
+ else
+ @aliases = {}
end
end
end
def save
- FileUtils.mkdir_p(@data_path)
- Utils.safe_save(@data_file) {|f| f.write @aliases.to_yaml}
+ @registry[:aliases] = @aliases
+ @registry.flush
end
def cmd_add(m, params)