Sha256: ee0898fe0abff6d62fbe10049d87839f92cbba4e8c1efce385a52f7d116057c8

Contents?: true

Size: 1.49 KB

Versions: 7

Compression:

Stored size: 1.49 KB

Contents

require "singleton"

module Traquitana
   class Config
      include Singleton
      attr_accessor :filename, :target

      def initialize
         @configs = {}
         @filename = "config/traq.yml"
      end

      def default
         "#{File.dirname(File.expand_path(__FILE__))}/../config/default.yml"
      end

      def load(file=nil)
         @configs = YAML.load(File.read(file || self.filename))
         if @target
            if !@configs[@target]
               STDERR.puts "Target #{@target} not found." 
               exit(1)
            end
            @configs = @configs[@target] 
            STDOUT.puts "Loaded #{@target} target."
         end
         if !@target && @configs["default"]
            STDOUT.puts "Loading default target ..."
            @configs = @configs["default"]
         end
      end

      def method_missing(meth)
         @configs[meth.to_s] || ""
      end

      def setup
			STDOUT.puts "Running setup"
         if File.exists?(self.filename)
            STDERR.puts "The configuration file #{self.filename} already exists."
            return false
         end

         dir = File.dirname(self.filename)
			Dir.mkdir(dir) if !File.exist?(dir)

			STDOUT.puts "Writing #{self.filename}"
			File.open(self.filename,"w") do |file|
				file << "# Default configuration"
				file << File.read(self.default)
			end

			STDOUT.puts "Setup completed!"
			STDOUT.puts "You MUST check the configurations on #{self.filename} before deploying!"
         true
      end
   end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
traquitana-0.0.21 lib/config.rb
traquitana-0.0.20 lib/config.rb
traquitana-0.0.19 lib/config.rb
traquitana-0.0.18 lib/config.rb
traquitana-0.0.17 lib/config.rb
traquitana-0.0.16 lib/config.rb
traquitana-0.0.15 lib/config.rb