Skip to content

Commit 186fdd3

Browse files
committed
Add datamapper transformer. Closes #10.
1 parent 3f32dfe commit 186fdd3

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

CHANGELOG.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Bcdatabase history
66

77
- Introduce "transforms" -- a way to attach behavior to modify entries
88
on load. See {Bcdatabase.load} for details.
9+
- Add `:datamapper` built-in transform to support sharing one set of
10+
entries between ActiveRecord and DataMapper. (#10)
911

1012
1.0.6
1113
-----

lib/bcdatabase.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ class DatabaseConfigurations
100100
},
101101
:decrypt => lambda { |entry, name, group|
102102
entry.merge({ 'password' => Bcdatabase.decrypt(entry['epassword']) }) if entry['epassword']
103+
},
104+
:datamapper => lambda { |entry, name, group|
105+
entry.merge('adapter' => entry['datamapper_adapter']) if entry['datamapper_adapter']
103106
}
104107
}
105108

spec/bcdatabase_spec.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,29 @@
214214
bcdb['scran', 'jim']['foo'].should == ['baz', 'jim', 'scran']
215215
end
216216
end
217+
218+
describe 'for datamapper' do
219+
it 'uses the datamapper adapter, if provided' do
220+
temporary_yaml 'foo', {
221+
'aleph' => {
222+
'datamapper_adapter' => 'postgres',
223+
'adapter' => 'postgresql'
224+
}
225+
}
226+
bcdb = Bcdatabase.load(:transforms => [:datamapper])
227+
bcdb['foo', 'aleph']['adapter'].should == 'postgres'
228+
end
229+
230+
it 'uses the named adapter if no datamapper adapter is provided' do
231+
temporary_yaml 'foo', {
232+
'aleph' => {
233+
'adapter' => 'postgresql'
234+
}
235+
}
236+
bcdb = Bcdatabase.load(:transforms => [:datamapper])
237+
bcdb['foo', 'aleph']['adapter'].should == 'postgresql'
238+
end
239+
end
217240
end
218241

219242
describe "for database.yml" do

0 commit comments

Comments
 (0)