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