Class: Terrafile::Dependency
- Inherits:
-
Object
- Object
- Terrafile::Dependency
- Defined in:
- lib/terrafile/dependency.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#source ⇒ Object
readonly
Returns the value of attribute source.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Class Method Summary collapse
Instance Method Summary collapse
- #checkout ⇒ Object
- #fetch ⇒ Object
-
#initialize(name:, source:, version:) ⇒ Dependency
constructor
A new instance of Dependency.
Constructor Details
#initialize(name:, source:, version:) ⇒ Dependency
Returns a new instance of Dependency.
3 4 5 6 7 |
# File 'lib/terrafile/dependency.rb', line 3 def initialize(name:, source:, version:) @name = name @source = source @version = version end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
9 10 11 |
# File 'lib/terrafile/dependency.rb', line 9 def name @name end |
#source ⇒ Object (readonly)
Returns the value of attribute source.
9 10 11 |
# File 'lib/terrafile/dependency.rb', line 9 def source @source end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
9 10 11 |
# File 'lib/terrafile/dependency.rb', line 9 def version @version end |
Class Method Details
.build_from_terrafile ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/terrafile/dependency.rb', line 11 def self.build_from_terrafile (YAML.safe_load(File.read(TERRAFILE_PATH)) || []).map do |module_name, details| new( name: module_name, version: details['version'], source: details['source'] ) end end |
Instance Method Details
#checkout ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/terrafile/dependency.rb', line 29 def checkout Dir.chdir(name) do Helper.run!("git checkout #{version} 1> /dev/null") end rescue Error => error raise unless error..match?(/reference is not a tree/) Kernel.puts "[*] WARN: #{error} ." \ "The 'version' should be the branch name or tag, rather than the SHA." end |
#fetch ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/terrafile/dependency.rb', line 21 def fetch return Helper.clone(source, name) unless Helper.dir_exists?(name) Dir.chdir(name) do Helper.pull_repo unless Helper.repo_up_to_date?(version) end end |