Skip to content

Commit 709f6a5

Browse files
committed
address compatibility with Rails 3.x
see rspec/rspec-core#1361
1 parent 54dbaca commit 709f6a5

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

lib/rspec/rails/example/helper_example_group.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,14 @@ module HelperExampleGroup
1111

1212
# @private
1313
module ClassMethods
14-
def determine_constant_from_test_name(_ignore)
15-
described_class if yield(described_class)
14+
if ::Rails::VERSION::MAJOR > 3
15+
def determine_constant_from_test_name(_ignore)
16+
described_class if yield(described_class)
17+
end
18+
else
19+
def determine_default_helper_class(_ignore)
20+
described_class
21+
end
1622
end
1723
end
1824

spec/rspec/rails/example/helper_example_group_spec.rb

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,37 @@ def _view
5858
end
5959
end
6060

61-
context "the described is a module" do
62-
it "returns the module" do
63-
allow(group).to receive(:described_class) { FoosHelper }
64-
expect(group.determine_default_helper_class("ignore this")).
65-
to eq(FoosHelper)
61+
if ::Rails::VERSION::MAJOR > 3
62+
context "the described is a module" do
63+
it "returns the module" do
64+
allow(group).to receive(:described_class) { FoosHelper }
65+
expect(group.determine_default_helper_class("ignore this")).
66+
to eq(FoosHelper)
67+
end
68+
end
69+
70+
context "the described is a class" do
71+
it "returns nil" do
72+
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
73+
expect(group.determine_default_helper_class("ignore this")).
74+
to be_nil
75+
end
76+
end
77+
else
78+
context "the described is a module" do
79+
it "returns the module" do
80+
allow(group).to receive(:described_class) { FoosHelper }
81+
expect(group.determine_default_helper_class("ignore this")).
82+
to eq(FoosHelper)
83+
end
6684
end
67-
end
6885

69-
context "the described is a class" do
70-
it "returns nil" do
71-
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
72-
expect(group.determine_default_helper_class("ignore this")).
73-
to be_nil
86+
context "the described is a class" do
87+
it "returns the class" do
88+
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
89+
expect(group.determine_default_helper_class("ignore this")).
90+
to eq(FoosHelper::InternalClass)
91+
end
7492
end
7593
end
7694
end

0 commit comments

Comments
 (0)