+ def set_language(language)
+ @language = language
+ end
+
+ def load_static_files(path)
+ debug "loading salutation rules from #{path}"
+ Dir.glob("#{path}/*").map { |filename|
+ language = filename[filename.rindex('-')+1..-1]
+ begin
+ salutations = {}
+ content = YAML::load_file(filename)
+ content.each { |key, val|
+ salutations[key.to_sym] = val
+ }
+ rescue
+ error "failed to read salutations in #{filename}: #{$!}"
+ end
+ [language, salutations]
+ }.to_h
+ end
+
+ def reload
+ @salutations = @registry[:salutations]
+
+ # migrate existing data files
+ if not @salutations and Dir.exists? datafile
+ log "migrate existing salutations from #{datafile}"
+
+ @salutations = load_static_files(datafile)
+ end
+
+ # load initial salutations from plugin directory
+ unless @salutations
+ log "load initial salutations from #{plugin_path}"
+
+ initial_path = File.join(plugin_path, 'salut')
+ @salutations = load_static_files(initial_path)
+ end
+
+ debug @salutations.inspect
+
+ create_match
+ end
+
+ def save
+ return unless @salutations
+
+ @registry[:salutations] = @salutations
+
+ @registry.flush