File: proxy_class.rb

package info (click to toggle)
ruby-bogus 0.1.5-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 828 kB
  • ctags: 628
  • sloc: ruby: 4,124; makefile: 6; sh: 2
file content (31 lines) | stat: -rw-r--r-- 776 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module Bogus
  class ProxyClass < Module
    def initialize(fake_name, klass, create_recording_proxy)
      @fake_name = fake_name
      @klass = klass
      @create_recording_proxy = create_recording_proxy

      @recording_proxy = @create_recording_proxy.call(@klass, @fake_name)
    end

    def self.create(fake_name, klass, create_recording_proxy)
    end

    def new(*args, &block)
      instance = @klass.new(*args, &block)
      @create_recording_proxy.call(instance, @fake_name)
    end

    def method_missing(name, *args, &block)
      @recording_proxy.__send__(name, *args, &block)
    end

    def const_missing(name)
      @recording_proxy.__send__(:const_get, name)
    end

    def respond_to?(name)
      @recording_proxy.respond_to?(name)
    end
  end
end