Sha256: 53f59bf4ad73636241d71525842e10eea276186cffd10b593e24b7bebe962116

Contents?: true

Size: 722 Bytes

Versions: 2

Compression:

Stored size: 722 Bytes

Contents

module Nesta
  class ConfigFile
    def self.path
      File.expand_path('config/config.yml', Nesta::App.root)
    end

    def set_value(key, value)
      pattern = /^\s*#?\s*#{key}:.*/
      replacement = "#{key}: #{value}"

      configured = false
      File.open(self.class.path, 'r+') do |file|
        output = []
        file.each_line do |line|
          if configured
            output << line
          else
            output << line.sub(pattern, replacement)
            configured = true if line =~ pattern
          end
        end
        output << "#{replacement}\n" unless configured
        file.pos = 0
        file.print(output.join("\n"))
        file.truncate(file.pos)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nesta-0.18.0 lib/nesta/config_file.rb
nesta-0.17.0 lib/nesta/config_file.rb