Module: Kernel

Defined in:
lib/aws/s3/extensions.rb

Instance Method Summary collapse

Instance Method Details

#__method__(depth = 0) ⇒ Object



56
57
58
# File 'lib/aws/s3/extensions.rb', line 56

def __method__(depth = 0)
  caller[depth][/`([^']+)'/, 1]
end

#memoize(reload = false, storage = nil) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/aws/s3/extensions.rb', line 60

def memoize(reload = false, storage = nil)
  storage = "@#{storage || __method__(1)}"
  if reload 
    instance_variable_set(storage, nil)
  else
    if cache = instance_variable_get(storage)
      return cache
    end
  end
  instance_variable_set(storage, yield)
end

#require_library_or_gem(library) ⇒ Object



72
73
74
75
76
77
78
79
80
81
# File 'lib/aws/s3/extensions.rb', line 72

def require_library_or_gem(library)
  require library
rescue LoadError => library_not_installed
  begin
    require 'rubygems'
    require library
  rescue LoadError
    raise library_not_installed
  end
end