Sha256: 6632ef1e09d419f81ae4f7fcdf74b64107213da5e135e9951c8152eef79dbde8

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

require 'settingslogic'
require 'AWS'
require 'aws/s3'
require 'net/ssh'
require 'highline'

require 'standup/core_ext'
require 'standup/railtie'
require 'standup/settings'
require 'standup/ec2'
require 'standup/remoting'
require 'standup/scripts/base'
require 'standup/node'

module Standup
  module Scripts; end
  
  def self.nodes
    Settings.nodes.keys.map{|name| Node.new name}
  end
  
  def self.gem_scripts_path
    File.expand_path('../../scripts',  __FILE__)
  end
  
  def self.local_scripts_path
    File.expand_path('config/standup',  Rails.root) rescue nil
  end
  
  def self.scripts
    unless class_variable_defined? :@@scripts
      @@scripts = {}
      loaded = Set.new
      [local_scripts_path, gem_scripts_path].each do |dir|
        Dir.foreach dir do |name|
          next unless File.file? "#{dir}/#{name}"
          next unless name =~ /\.rb$/
          next if loaded.include? name
          load "#{dir}/#{name}", true
          loaded << name
        end if dir && File.exists?(dir)
      end
    end
    @@scripts
  end
  
  def self.script &block
    name = block.__file__.match(/([^\/]*)\.rb$/)[1]
    script_class = Class.new(Standup::Scripts::Base, &block)
    script_class.name = name
    Standup::Scripts.const_set name.camelize, script_class
    scripts[name] = script_class
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
standup-0.2.0 lib/standup.rb