Use ERB when importing conf files into app

This commit is contained in:
Britt Ballard 2014-02-14 13:35:30 -08:00
parent 9c4dc9a966
commit 60e1a5aa69
3 changed files with 14 additions and 1 deletions

View File

@ -63,7 +63,7 @@ class GlobalSetting
end
def read
File.read(@file).split("\n").each do |line|
ERB.new(File.read(@file)).result().split("\n").each do |line|
if line =~ /([a-z_]+)\s*=\s*(\"([^\"]*)\"|\'([^\']*)\'|[^#]*)/
@data[$1.strip.to_sym] = ($4 || $3 || $2).strip
end

View File

@ -1,6 +1,7 @@
#
# DO NOT EDIT THIS FILE
# If you need to make changes create a file called discourse.conf in this directory with your changes
# On inport this file will be imported using ERB
#
# Discourse supports multiple mechanisms for production config.

View File

@ -31,4 +31,16 @@ describe GlobalSetting::FileProvider do
f.unlink
end
it "uses ERB" do
f = Tempfile.new('foo')
f.write("a = <%= 500 %> # this is a comment\n")
f.close
provider = GlobalSetting::FileProvider.from(f.path)
provider.lookup(:a,"").should == 500
f.unlink
end
end