Sha256: ce6bd91bb8a972a736bc934e4badcd9c69dca84e22840fdb0aadf74c2fdfc607

Contents?: true

Size: 1.47 KB

Versions: 11

Compression:

Stored size: 1.47 KB

Contents

module Terraspace
  module Core
    extend Memoist

    def env
      ENV['TS_ENV'] || "dev"
    end
    memoize :env

    @@root = nil
    def root
      @@root ||= ENV['TS_ROOT'] || Dir.pwd
    end

    # allow testing frameworks to switch roots
    def root=(v)
      @@root = v
    end

    def cache_root
      ENV['TS_CACHE_ROOT'] || config.build.cache_root || "#{root}/.terraspace-cache"
    end
    memoize :cache_root

    def tmp_root
      ENV['TS_TMP_ROOT'] || "/tmp/terraspace"
    end
    memoize :tmp_root

    def log_root
      "#{root}/log"
    end

    def configure(&block)
      App.instance.configure(&block)
    end

    # Generally, use the Terraspace.config instead of App.instance.config since it guarantees the load_project_config call
    def config
      App.instance.load_project_config
      App.instance.config
    end
    memoize :config

    @@logger = nil
    def logger
      @@logger ||= config.logger
    end

    # allow different logger when running up all
    def logger=(v)
      @@logger = v
    end

    def pass_file?(path)
      pass_files = config.build.pass_files + config.build.default_pass_files
      pass_files.uniq.detect do |i|
        i.is_a?(Regexp) ? path =~ i : path.include?(i)
      end
    end

    # Terraspace.argv provides consistency when terraspace is being called by rspec-terrspace test harness
    # So use Terraspace.argv instead of ARGV constant
    def argv=(argv)
      @@argv = argv
    end

    def argv
      @@argv
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
terraspace-0.6.23 lib/terraspace/core.rb
terraspace-0.6.22 lib/terraspace/core.rb
terraspace-0.6.21 lib/terraspace/core.rb
terraspace-0.6.20 lib/terraspace/core.rb
terraspace-0.6.19 lib/terraspace/core.rb
terraspace-0.6.18 lib/terraspace/core.rb
terraspace-0.6.17 lib/terraspace/core.rb
terraspace-0.6.16 lib/terraspace/core.rb
terraspace-0.6.15 lib/terraspace/core.rb
terraspace-0.6.13 lib/terraspace/core.rb
terraspace-0.6.12 lib/terraspace/core.rb