Skip to content

Commit 88cd444

Browse files
sarahmeiSam Phippen
authored andcommitted
Actually...1.9 does care.
1 parent 9b50fd4 commit 88cd444

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

lib/rspec/rails/view_spec_methods.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module ViewSpecMethods
99
# When class is `::ActionView::TestCase::TestController`, these methods
1010
# are exposed in view specs on the `controller` object.
1111
def add_to(klass)
12+
return if klass.instance_methods.include?(:extra_params) && klass.instance_methods.include?(:extra_params=)
1213
return if klass.instance_methods.include?("extra_params") && klass.instance_methods.include?("extra_params=")
1314

1415
klass.module_exec do
@@ -45,9 +46,10 @@ def extra_params
4546

4647
# Removes methods `extra_params=` and `extra_params` from the indicated class.
4748
def remove_from(klass)
49+
methods = klass.instance_methods
4850
klass.module_exec do
49-
undef extra_params= if klass.instance_methods.include?(:extra_params=)
50-
undef extra_params if klass.instance_methods.include?(:extra_params)
51+
undef extra_params= if methods.include?(:extra_params=) || methods.include?("extra_params=")
52+
undef extra_params if methods.include?(:extra_params) || methods.include?("extra_params")
5153
end
5254
end
5355
end

spec/rspec/rails/view_spec_methods_spec.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ class ::VCSampleClass; end
1313
it "adds them as instance methods" do
1414
ViewSpecMethods.add_to(VCSampleClass)
1515

16-
expect(VCSampleClass.instance_methods).to include(:extra_params=)
17-
expect(VCSampleClass.instance_methods).to include(:extra_params)
16+
expect(VCSampleClass.instance_methods).to(include("extra_params=").or(include(:extra_params=)))
17+
expect(VCSampleClass.instance_methods).to(include("extra_params").or(include(:extra_params)))
1818
end
1919
end
2020

@@ -43,7 +43,9 @@ def extra_params=; end
4343
it "removes them" do
4444
ViewSpecMethods.remove_from(VCSampleClass)
4545

46+
expect(VCSampleClass.instance_methods).to_not include("extra_params=")
4647
expect(VCSampleClass.instance_methods).to_not include(:extra_params=)
48+
expect(VCSampleClass.instance_methods).to_not include("extra_params")
4749
expect(VCSampleClass.instance_methods).to_not include(:extra_params)
4850
end
4951
end

0 commit comments

Comments
 (0)