blob: 330241b72644023e0584e044218ce3e00cc6d6e4 (
plain)
| 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
 | RSpec.describe Configurable do
  subject do
    Class.new do
      include Configurable
    end
  end
  let( :something ){ double('something') }
  it 'can be configured' do
    expect{ subject.config.anything }.to raise_error(NoMethodError)
    subject.config.something = something
    expect( subject.config.something ).to eq(something)
    # Instances delegate to the class
    expect( subject.new.send(:config).something ).to eq(something)
    # **All** instances delegate to the class
    expect( subject.new.send(:config).something ).to eq(something)
  end
  it 'can be configured with a block' do
    subject.config do | c |
      c.something = something 
    end
    expect( subject.config.something ).to eq(something)
    # Instances delegate to the class
    expect( subject.new.send(:config).something ).to eq(something)
    # **All** instances delegate to the class
    expect( subject.new.send(:config).something ).to eq(something)
  end
end
 |