Module: Niconico::Deferrable::ClassMethods

Defined in:
lib/niconico/deferrable.rb

Instance Method Summary collapse

Instance Method Details

#deferrable(*keys) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/niconico/deferrable.rb', line 4

def deferrable(*keys)
  keys.each do |key|
    binding.eval(<<-EOM, __FILE__, __LINE__.succ)
      define_method(:#{key}) do
        get() if @#{key}.nil? && !fetched?
        @#{key}
      end
    EOM
  end
  self.deferred_methods.push *keys
end

#deferred_methodsObject



16
17
18
# File 'lib/niconico/deferrable.rb', line 16

def deferred_methods
  @deferred_methods ||= []
end