Class: Module

Inherits:
Object show all
Defined in:
lib/aliyun/oss/extensions.rb

Instance Method Summary collapse

Instance Method Details

#const_missing_from_oss_library(sym) ⇒ Object Also known as: const_missing

Transforms MarcelBucket into

class MarcelBucket < Aliyun::OSS::Bucket
  set_current_bucket_to 'marcel'
end


207
208
209
210
211
212
213
214
215
# File 'lib/aliyun/oss/extensions.rb', line 207

def const_missing_from_oss_library(sym)
  if sym.to_s =~ /^(\w+)(Bucket|OSSObject)$/
    const = const_set(sym, Class.new(Aliyun::OSS.const_get($2)))
    const.current_bucket = $1.underscore
    const
  else
    const_missing_not_from_oss_library(sym)
  end
end

#constant(name, value) ⇒ Object



191
192
193
194
195
196
197
198
199
200
# File 'lib/aliyun/oss/extensions.rb', line 191

def constant(name, value)
  unless const_defined?(name)
    const_set(name, value) 
    module_eval("      def self.\#{name.to_s.downcase}\n        \#{name.to_s}\n      end\n    EVAL\n  end\nend\n", __FILE__, __LINE__)

#memoized(method_name) ⇒ Object



179
180
181
182
183
184
185
186
187
188
189
# File 'lib/aliyun/oss/extensions.rb', line 179

def memoized(method_name)
  original_method = "unmemoized_#{method_name}_#{Time.now.to_i}"
  alias_method original_method, method_name
  module_eval("    def \#{method_name}(reload = false, *args, &block)\n      expirable_memoize(reload) do\n        send(:\#{original_method}, *args, &block)\n      end\n    end\n  EVAL\nend\n", __FILE__, __LINE__)