mirror of
https://github.com/discourse/discourse.git
synced 2024-12-19 23:16:00 +08:00
34 lines
662 B
Ruby
34 lines
662 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class EmailTemplatesFinder
|
||
|
def self.list
|
||
|
path = File.join(Rails.root, "config", "locales", "server.en.yml")
|
||
|
yaml = YAML.load_file(path, aliases: true)
|
||
|
new(yaml).list
|
||
|
end
|
||
|
|
||
|
attr_reader :list
|
||
|
|
||
|
def initialize(obj)
|
||
|
@obj = obj
|
||
|
@list = []
|
||
|
check(@obj, "")
|
||
|
@list.sort!
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def check(obj, path)
|
||
|
obj.each do |key, val|
|
||
|
if Hash === val
|
||
|
next_path = "#{path}#{key}"
|
||
|
if val.key?("text_body_template") && val.key?("subject_template")
|
||
|
@list << next_path.sub("en.", "")
|
||
|
else
|
||
|
check(val, "#{next_path}.")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|