Class: Asteroid::ConfigFile

Inherits:
Object
  • Object
show all
Defined in:
lib/asteroid/config_file.rb

Instance Method Summary collapse

Constructor Details

#initialize(fname) ⇒ ConfigFile

Returns a new instance of ConfigFile.



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/asteroid/config_file.rb', line 6

def initialize(fname)
  @filename = if Pathname.new(fname).absolute?
    fname
  elsif File.exists?(f = File.join(Asteroid::Config.file_dir, '/', fname))
    f
  elsif File.exists?(f = File.join(Asteroid::Config.secret_file_dir, '/', fname))
    f
  else
    nil
  end
end

Instance Method Details

#dataObject



41
42
43
# File 'lib/asteroid/config_file.rb', line 41

def data
  @data ||= {}
end

#filenameObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/asteroid/config_file.rb', line 22

def filename
  if template?
    @rendered_filename ||= begin
      file_data = File.read @filename
      file = Tempfile.new('config')
      rendered_template = Template.new(:erb).render(file_data, data)
      file.write rendered_template
      file.rewind
      file.path
    end
  else
    @filename
  end
end

#set_data(d) ⇒ Object



37
38
39
# File 'lib/asteroid/config_file.rb', line 37

def set_data(d)
  @data = d
end

#template?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/asteroid/config_file.rb', line 18

def template?
  @filename.split('.').last == "erb"
end