class RakeTerraform::TaskSets::Provider
rubocop:disable Metrics/ClassLength
Attributes
delegate[R]
Public Class Methods
define(*args, &configuration_block)
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 10 def self.define(*args, &configuration_block) new(*args, &configuration_block).define_on(Rake.application) end
new(*args, &configuration_block)
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 16 def initialize(*args, &configuration_block) @opts = args[0] @delegate = RakeDependencies::TaskSets::All.new( task_set_opts, &configuration_block ) end
Public Instance Methods
define_on(application)
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 23 def define_on(application) Rake.application.in_namespace parent_namespace do Rake.application.in_namespace :providers do @delegate.define_on(application) end end self end
Private Instance Methods
binary()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 103 def binary @binary ||= File.join(path, binary_directory, binary_name) end
binary_directory()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 95 def binary_directory @binary_directory ||= 'bin' end
binary_name()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 99 def binary_name @binary_name ||= "#{dependency}_v#{version}" end
dependency()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 83 def dependency @dependency ||= "terraform-provider-#{name}" end
exist?(binary)
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 144 def exist?(binary) log_binary_location(binary) result = File.exist?(binary) log_check_outcome(result) result end
file_name_template()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 123 def file_name_template @file_name_template ||= "#{dependency}_v<%= @version %>_<%= @os_id %>_amd64<%= @ext %>" end
installation_directory()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 136 def installation_directory @installation_directory ||= "#{ENV['HOME']}/.terraform.d/plugins" end
log_binary_location(binary)
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 154 def log_binary_location(binary) logger.info( "Terraform provider binary for: #{name} " \ "should be at: #{binary}" ) end
log_check_outcome(result)
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 161 def log_check_outcome(result) logger.debug("Provider file exists?: #{result}") end
logger()
click to toggle source
rubocop:enable Metrics/MethodLength
# File lib/rake_terraform/task_sets/provider.rb, line 60 def logger @logger ||= @opts[:logger] || Logger.new($stderr, level: Logger.const_get(ENV['TF_LOG'] || 'WARN')) end
name()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 67 def name @name ||= @opts[:name] end
namespace()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 79 def namespace @namespace ||= @opts[:namespace] || name end
needs_fetch()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 140 def needs_fetch @needs_fetch ||= ->(_) { return !exist?(binary) } end
os_ids()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 111 def os_ids @os_ids ||= { mac: 'darwin', linux: 'linux' } end
parent_namespace()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 75 def parent_namespace @parent_namespace ||= @opts[:parent_namespace] || :terraform end
path()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 91 def path @path ||= @opts[:path] || File.join('vendor', dependency) end
repository()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 71 def repository @repository ||= @opts[:repository] end
source_binary_name_template()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 128 def source_binary_name_template @source_binary_name_template ||= dependency end
target_binary_name_template()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 132 def target_binary_name_template @target_binary_name_template ||= "#{dependency}_v<%= @version %>" end
task_set_opts()
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/rake_terraform/task_sets/provider.rb, line 36 def task_set_opts { namespace: namespace, dependency: dependency, version: version, path: path, type: type, os_ids: os_ids, uri_template: uri_template, file_name_template: file_name_template, source_binary_name_template: source_binary_name_template, target_binary_name_template: target_binary_name_template, installation_directory: installation_directory, needs_fetch: needs_fetch } end
type()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 107 def type @type ||= :tar_gz end
uri_template()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 115 def uri_template @uri_template ||= "https://github.com/#{repository}/releases/" \ 'download/<%= @version %>/' \ "#{dependency}_v<%= @version %>_<%= @os_id %>" \ '_amd64<%= @ext %>' end
version()
click to toggle source
# File lib/rake_terraform/task_sets/provider.rb, line 87 def version @version ||= @opts[:version] end