module Terraspace::Plugin::Helper::Interface

Public Instance Methods

cache_helper(meth) click to toggle source

This method is useful to avoid double call of heavy processing logic for tfvars, since the tfvars files get evaluated twice. Note: Not setting any cache or doing any logic unless resolved.

# File lib/terraspace/plugin/helper/interface.rb, line 15
def cache_helper(meth)
  uncached_meth = "uncached_#{meth}"
  alias_method(uncached_meth, meth)
  define_method(meth) do |*args|
    return unless resolved? # return nil in first unresolved pass
    id = Marshal.dump([meth] + args)
    exist = @@helper_cache.key?(id)
    if exist
      @@helper_cache[id]
    else
      @@helper_cache[id] = send(uncached_meth, *args)
    end
  end
end
resolved?() click to toggle source

Useful for plugin helpers. Can check this only run logic after dependency resolution.

# File lib/terraspace/plugin/helper/interface.rb, line 6
def resolved?
  !!@mod.resolved
end