class Terraform::Resource
Defines a terraform resource
Attributes
resource_name[R]
Public Class Methods
new(parent_module, resource_name, resource_type, &block)
click to toggle source
Calls superclass method
# File lib/terraform_dsl/resource.rb, line 8 def initialize(parent_module, resource_name, resource_type, &block) @resource_name = resource_name @resource_type = resource_type super(parent_module, &block) # Allow provider specific post processing sym = "post_processing_#{resource_type.split('_').first}" send(sym) if self.respond_to?(sym, include_private: true) end
Public Instance Methods
provisioner(provisioner_type, &block)
click to toggle source
Allow provisioner blocks to be nested within resources
# File lib/terraform_dsl/resource.rb, line 19 def provisioner(provisioner_type, &block) provisioner_type = provisioner_type.to_sym @fields[:provisioner] = @fields[:provisioner] || [] provisioner_set = Provisioner.new(@module, &block) @fields[:provisioner] << { cleanup_provisioner_type(provisioner_type) => provisioner_set.fields } end
Private Instance Methods
cleanup_provisioner_type(provisioner_type)
click to toggle source
# File lib/terraform_dsl/resource.rb, line 30 def cleanup_provisioner_type(provisioner_type) case provisioner_type.to_sym when :remote_exec 'remote-exec' when :local_exec 'local-exec' else provisioner_type end end