class Pigtail::Config

Public Class Methods

new(options = {}) click to toggle source
# File lib/pigtail/config.rb, line 6
def initialize(options = {})
  @options = options
  @template                         = options.delete(:template)
  @config_template                  = options.delete(:config_template) || ":config"
  # @options[:environment_variable] ||= "RAILS_ENV"
  # @options[:environment]          ||= :production
  # @options[:path]                   = Shellwords.shellescape(@options[:path] || Pigtail.path)
end

Public Instance Methods

output() click to toggle source
# File lib/pigtail/config.rb, line 15
def output
  config = process_template(@template, @options)
  out = process_template(@config_template, @options.merge(:config => config))
  out.gsub(/%/, '\%')
end

Protected Instance Methods

escape_double_quotes(str) click to toggle source
# File lib/pigtail/config.rb, line 43
def escape_double_quotes(str)
  str.gsub(/"/) { '\"' }
end
escape_single_quotes(str) click to toggle source
# File lib/pigtail/config.rb, line 39
def escape_single_quotes(str)
  str.gsub(/'/) { "'\\''" }
end
process_template(template, options) click to toggle source
# File lib/pigtail/config.rb, line 23
def process_template(template, options)
  template.to_s.gsub(/:\w+/) do |key|
    before_and_after = [$`[-1..-1], $'[0..0]]
    option = options[key.sub(':', '').to_sym] || key

    if before_and_after.all? { |c| c == "'" }
      escape_single_quotes(option)
    elsif before_and_after.all? { |c| c == '"' }
      escape_double_quotes(option)
    else
      option
    end
  end
  # end.gsub(/\s+/m, " ").strip
end