Module: LazyMethods::ClassMethods

Defined in:
lib/lazy_methods.rb

Instance Method Summary collapse

Instance Method Details

#define_async_class_methods(*method_names) ⇒ Object



68
69
70
71
72
73
74
75
76
# File 'lib/lazy_methods.rb', line 68

def define_async_class_methods(*method_names)
  method_names.flatten.each do |method_name|
    class_eval <<-EOS
      def self.async_#{method_name}(*args, &block)
        AsyncProxy.new{ #{method_name}(*args, &block) }
      end
    EOS
  end
end

#define_async_methods(*method_names) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/lazy_methods.rb', line 48

def define_async_methods(*method_names)
  method_names.flatten.each do |method_name|
    class_eval <<-EOS
      def async_#{method_name}(*args, &block)
        AsyncProxy.new{ #{method_name}(*args, &block) }
      end
    EOS
  end
end

#define_lazy_class_methods(*method_names) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/lazy_methods.rb', line 58

def define_lazy_class_methods(*method_names)
  method_names.flatten.each do |method_name|
    class_eval <<-EOS
      def self.lazy_#{method_name}(*args, &block)
        LazyProxy.new{ #{method_name}(*args, &block) }
      end
    EOS
  end
end

#define_lazy_methods(*method_names) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/lazy_methods.rb', line 38

def define_lazy_methods(*method_names)
  method_names.flatten.each do |method_name|
    class_eval <<-EOS
      def lazy_#{method_name}(*args, &block)
        LazyProxy.new{ #{method_name}(*args, &block) }
      end
    EOS
  end
end