Skip to content

Commit 82cfd8d

Browse files
committed
Merge pull request #202 from rngtng/reset-on-setup
Fix: reset `@using_class` memoization on `.setup`
2 parents 30fd0bc + 75c1c77 commit 82cfd8d

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
============
33

44
* Your contribution here.
5+
* [#202](https://github.com/ruby-grape/grape-entity/pull/202): Fix: Reset `@using_class` memoization on `.setup` - [@rngtng](https://github.com/rngtng).
56

67
0.5.0 (2015-12-07)
78
==================

lib/grape_entity/exposure/represent_exposure.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ class RepresentExposure < Base
55
attr_reader :using_class_name, :subexposure
66

77
def setup(using_class_name, subexposure)
8+
@using_class = nil
89
@using_class_name = using_class_name
910
@subexposure = subexposure
1011
end
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
require 'spec_helper'
2+
3+
describe Grape::Entity::Exposure::RepresentExposure do
4+
subject(:exposure) { described_class.new(:foo, {}, {}, double, double) }
5+
6+
describe '#setup' do
7+
subject { exposure.setup(using_class_name, subexposure) }
8+
9+
let(:using_class_name) { double(:using_class_name) }
10+
let(:subexposure) { double(:subexposure) }
11+
12+
it 'sets using_class_name' do
13+
expect { subject }.to change { exposure.using_class_name }.to(using_class_name)
14+
end
15+
16+
it 'sets subexposure' do
17+
expect { subject }.to change { exposure.subexposure }.to(subexposure)
18+
end
19+
20+
context 'when using_class is set' do
21+
before do
22+
exposure.using_class
23+
end
24+
25+
it 'resets using_class' do
26+
expect { subject }.to change { exposure.using_class }
27+
end
28+
end
29+
end
30+
end

0 commit comments

Comments
 (0)