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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
require 'spec_helper'
module Bogus
describe ClassMethods do
class SampleClass
def foo(bar)
end
def self.bar(bam)
end
def self.hello
end
def self.__shadow__; end
def self.__reset__; end
def self.__overwrite__; end
def self.__overwritten_methods__; end
def self.__record__; end
end
let(:class_methods) { ClassMethods.new(SampleClass) }
it "lists the class methods excluding the ones added by Bogus" do
expect(class_methods.all).to match_array([:bar, :hello])
end
it "returns the instance methods by name" do
expect(class_methods.get(:bar)).to eq SampleClass.method(:bar)
end
it "removes methods by name" do
class_methods.remove(:hello)
expect(SampleClass).to_not respond_to(:hello)
end
it "defines instance methods" do
class_methods.define <<-EOF
def greet(name)
return "Hello, " + name + "!"
end
EOF
expect(SampleClass.greet("Joe")).to eq "Hello, Joe!"
end
end
end
|