Skip to content

Commit 5d0d10e

Browse files
committed
Merge pull request #705 from estolfo/RUBY-1051-result-class
Change the way we look up a result class in Operation modules
2 parents 0a65823 + 7809f41 commit 5d0d10e

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

lib/mongo/operation/write/gle.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ module GLE
2626

2727
def execute_message(context)
2828
context.with_connection do |connection|
29-
result_class = defined?(self.class::LegacyResult) ? self.class::LegacyResult :
30-
defined?(self.class::Result) ? self.class::Result : Result
29+
result_class = self.class.const_defined?(:LegacyResult, false) ? self.class::LegacyResult :
30+
self.class.const_defined?(:Result, false) ? self.class::Result : Result
3131
result_class.new(connection.dispatch([ message, gle ].compact)).validate!
3232
end
3333
end

lib/mongo/operation/write/write_command_enabled.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def execute(context)
4444
private
4545

4646
def execute_write_command(context)
47-
result_class = defined?(self.class::Result) ? self.class::Result : Result
47+
result_class = self.class.const_defined?(:Result, false) ? self.class::Result : Result
4848
result_class.new(write_command_op.execute(context)).validate!
4949
end
5050
end

spec/mongo/operation/result_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,4 +272,23 @@
272272
end
273273
end
274274
end
275+
276+
context 'when there is a top-level Result class defined' do
277+
278+
before do
279+
class Result
280+
def get_result
281+
Mongo::Client.new([DEFAULT_ADDRESS], TEST_OPTIONS).database.command(:ping => 1)
282+
end
283+
end
284+
end
285+
286+
let(:result) do
287+
Result.new.get_result
288+
end
289+
290+
it 'uses the Result class of the operation' do
291+
expect(result).to be_a(Mongo::Operation::Result)
292+
end
293+
end
275294
end

0 commit comments

Comments
 (0)