Class: LitecoinRPC
- Inherits:
-
Object
- Object
- LitecoinRPC
- Defined in:
- lib/litecoin_tools/litecoin_rpc.rb
Defined Under Namespace
Classes: JSONRPCError
Instance Method Summary collapse
- #http_post_request(post_body) ⇒ Object
-
#initialize(service_url) ⇒ LitecoinRPC
constructor
A new instance of LitecoinRPC.
- #method_missing(name, *args) ⇒ Object
Constructor Details
#initialize(service_url) ⇒ LitecoinRPC
Returns a new instance of LitecoinRPC.
6 7 8 |
# File 'lib/litecoin_tools/litecoin_rpc.rb', line 6 def initialize(service_url) @uri = URI.parse(service_url) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/litecoin_tools/litecoin_rpc.rb', line 10 def method_missing(name, *args) post_body = { 'method' => name, 'params' => args, 'id' => 'jsonrpc' }.to_json resp = JSON.parse( http_post_request(post_body) ) raise JSONRPCError, resp['error'] if resp['error'] resp['result'] end |
Instance Method Details
#http_post_request(post_body) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/litecoin_tools/litecoin_rpc.rb', line 17 def http_post_request(post_body) http = Net::HTTP.new(@uri.host, @uri.port) http = http.start request = Net::HTTP::Post.new(@uri.request_uri) request.basic_auth @uri.user, @uri.password request.content_type = 'application/json' request.body = post_body http.request(request).body end |