class Codestrap::Config

Loaded variables from Codestrapfile presented as getters

Attributes

env[W]

Set Environment variables.

Public Class Methods

local() click to toggle source
# File lib/codestrap/config.rb, line 189
def self.local
  @@config ||= Codestrapfile.new
  @@config.local
end
new() click to toggle source
# File lib/codestrap/config.rb, line 107
def initialize
  # Setup defaults
  Codestrapfile.config do |conf|
    conf.local.base  = %W[codestrap .codestrap].map { |d| File.join(env['HOME'], d) }
    conf.local.ignore = []
    conf.server.bind = '127.0.0.1'
    conf.server.port = '4567'
    conf.server.base = conf.local.base
    conf.server.ignore = conf.local.ignore
  end

  @@codestrapfile_mtime = Time.new(0)
  load_codestrapfile
end
server() click to toggle source
# File lib/codestrap/config.rb, line 199
def self.server
  @@config ||= Codestrapfile.new
  @@config.server
end

Public Instance Methods

codestrapfile_mtime(codestrapfile) click to toggle source
# File lib/codestrap/config.rb, line 132
def codestrapfile_mtime(codestrapfile)
  if not codestrapfile and env['CODESTRAPFILE'] and File.exist? env['CODESTRAPFILE']
    codestrapfile = env['CODESTRAPFILE']
  end
  if codestrapfile
    return File::Stat.new(codestrapfile).mtime
  else
    return Time.new(0)
  end
end
env() click to toggle source

Environment variables. Defaults to system environment variables

@return [Hash]

# File lib/codestrap/config.rb, line 128
def env
  @env ||= ENV.to_hash
end
load_codestrapfile(codestrapfile=nil) click to toggle source
# File lib/codestrap/config.rb, line 170
def load_codestrapfile(codestrapfile=nil)
  codestrapfile_mtime = nil
  unless codestrapfile
    # Load possible codestrapfiles
    [env['CODESTRAPFILE'], File.join(env['HOME'], 'codestrap', 'Codestrapfile'), File.join(env['HOME'], '.codestrap', 'Codestrapfile')].each do |sf|
      next unless sf and File.exist?(sf)
      codestrapfile       = sf
      codestrapfile_mtime = codestrapfile_mtime(sf)
      break
    end
  end

  if codestrapfile
    load codestrapfile
    @@codestrapfile       = codestrapfile
    @@codestrapfile_mtime = codestrapfile_mtime
  end
end
local() click to toggle source
# File lib/codestrap/config.rb, line 194
def local
  @@config ||= Codestrapfile.new
  @@config.local
end
reload_on_change() click to toggle source
# File lib/codestrap/config.rb, line 143
def reload_on_change
  reload   = false
  mtime    = nil
  codestrapfile = nil
  if env['CODESTRAPFILE'] and !@@codestrapfile
    reload   = true
    codestrapfile = env['CODESTRAPFILE']
    mtime    = codestrapfile_mtime(codestrapfile)
  elsif env['CODESTRAPFILE'] and !env['CODESTRAPFILE'].eql?(@@codestrapfile)
    reload   = true
    codestrapfile = env['CODESTRAPFILE']
    mtime    = codestrapfile_mtime(codestrapfile)
  elsif @@codestrapfile
    mtime = codestrapfile_mtime(@@codestrapfile)
    if mtime > @@codestrapfile_mtime
      reload = true
    end
  end
  if reload
    load codestrapfile
    @@codestrapfile       = codestrapfile
    @@codestrapfile_mtime = mtime
    true
  end
  false
end
server() click to toggle source
# File lib/codestrap/config.rb, line 204
def server
  @@config ||= Codestrapfile.new
  @@config.server
end