Skip to content
Snippets Groups Projects
Unverified Commit 474ffd71 authored by relativityboy's avatar relativityboy Committed by GitHub
Browse files

Merge pull request #5 from steemit/4-basic-dependency-injection

4 basic dependency injection
parents 5d4b8377 06fe3f36
No related branches found
No related tags found
No related merge requests found
...@@ -70,9 +70,24 @@ module Steem ...@@ -70,9 +70,24 @@ module Steem
end end
end end
# Override this if you want to use your own client. # Override this if you want to just use your own client. Otherwise, inject
# the default using:
#
# Steem::Api.register default_rpc_client_class: MyClient
def self.default_rpc_client_class def self.default_rpc_client_class
DEFAULT_RPC_CLIENT_CLASS if !!@injected_dependencies && !!@injected_dependencies[:default_rpc_client_class]
@injected_dependencies[:default_rpc_client_class]
else
DEFAULT_RPC_CLIENT_CLASS
end
end
# Used for dependency injection. Currently, the only key supported is:
#
# `default_rpc_client_class`
def self.register(register)
@injected_dependencies ||= {}
@injected_dependencies = @injected_dependencies.merge register
end end
def initialize(options = {}) def initialize(options = {})
......
...@@ -65,6 +65,16 @@ module Steem ...@@ -65,6 +65,16 @@ module Steem
end end
end end
def test_dependency_injection
original_rpc_client_class = Api.default_rpc_client_class
Api.register default_rpc_client_class: RPC::HttpClient
assert_equal RPC::HttpClient, Api.default_rpc_client_class
Api.register default_rpc_client_class: original_rpc_client_class
assert_equal original_rpc_client_class, Api.default_rpc_client_class
end
def test_inspect def test_inspect
assert_equal "#<CondenserApi [@chain=steem, @methods=<85 elements>]>", @api.inspect assert_equal "#<CondenserApi [@chain=steem, @methods=<85 elements>]>", @api.inspect
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment