module Terraspace::Compiler::DirsConcern
Public Instance Methods
cache_dirs()
click to toggle source
# File lib/terraspace/compiler/dirs_concern.rb, line 6 def cache_dirs cache_dirs = [] with_each_mod("stacks") do |mod| cache_dirs << mod.cache_dir end cache_dirs end
dirs(path)
click to toggle source
# File lib/terraspace/compiler/dirs_concern.rb, line 48 def dirs(path) Dir.glob("#{Terraspace.root}/#{path}") end
local_paths(type_dir)
click to toggle source
# File lib/terraspace/compiler/dirs_concern.rb, line 44 def local_paths(type_dir) dirs("app/#{type_dir}/*") + dirs("vendor/#{type_dir}/*") end
mod_names(type_dir)
click to toggle source
# File lib/terraspace/compiler/dirs_concern.rb, line 22 def mod_names(type_dir) names, built = [], [] local_paths(type_dir).each do |path| next unless File.directory?(path) next unless select_stack?(type_dir, path) mod_name = File.basename(path) next if built.include?(mod_name) # ensures modules in app folder take higher precedence than vendor folder names << mod_name end names end
select_stack?(type_dir, path)
click to toggle source
Examples:
type_dir stacks path /home/ec2-user/environment/downloads/infra/app/stacks/demo
# File lib/terraspace/compiler/dirs_concern.rb, line 38 def select_stack?(type_dir, path) return true unless type_dir == "stacks" select = Terraspace::Compiler::Select.new(path) select.selected? end
stack_names()
click to toggle source
# File lib/terraspace/compiler/dirs_concern.rb, line 52 def stack_names mod_names("stacks") end
with_each_mod(type_dir) { |mod| ... }
click to toggle source
# File lib/terraspace/compiler/dirs_concern.rb, line 14 def with_each_mod(type_dir) mod_names(type_dir).each do |mod_name| consider_stacks = type_dir == "stacks" mod = Terraspace::Mod.new(mod_name, @options.merge(consider_stacks: consider_stacks)) yield(mod) end end