Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/lib/data_mapper/resource.rb b/lib/data_mapper/resource.rb
- index 49a2a64..7def4ee 100644
- --- a/lib/data_mapper/resource.rb
- +++ b/lib/data_mapper/resource.rb
- @@ -221,8 +221,29 @@ module DataMapper
- base.instance_variable_set(:@properties, Hash.new { |h,k| h[k] = k == :default ? PropertySet.new : h[:default].dup })
- end
- - def repository(*args, &block)
- - DataMapper.repository(*args, &block)
- + #
- + # Get the repository with a given name, or the default one for the current context, or the default one for this class.
- + #
- + # ==== Parameters
- + # name<Symbol>:: The name of the repository wanted.
- + # block<Block>:: Block to execute with the fetched repository as parameter.
- + #
- + # ==== Returns
- + # if given a block
- + # Object:: Whatever the block returns.
- + # else
- + # DataMapper::Repository:: The asked for Repository.
- + #
- + #-
- + # @public
- + def repository(name = nil, &block)
- + if name
- + DataMapper.repository(name, &block)
- + elsif Repository.context.last
- + DataMapper.repository(nil, &block)
- + else
- + DataMapper.repository(default_repository_name, &block)
- + end
- end
- def storage_name(repository_name = default_repository_name)
- diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb
- index 98b0e02..0219427 100644
- --- a/spec/unit/resource_spec.rb
- +++ b/spec/unit/resource_spec.rb
- @@ -35,6 +35,13 @@ describe "DataMapper::Resource" do
- class Moon
- end
- +
- + class LegacyStar
- + include DataMapper::Resource
- + def self.default_repository_name
- + :legacy
- + end
- + end
- end
- it "should hold repository-specific properties" do
- @@ -171,6 +178,7 @@ describe "DataMapper::Resource" do
- it '.repository should use default repository when not passed any arguments' do
- Planet.repository.name.should == Planet.repository(:default).name
- + LegacyStar.repository.name.should == LegacyStar.repository(:legacy).name
- end
- it 'should provide storage_name' do
Add Comment
Please, Sign In to add comment