From 9014e187ce3591a3faf1075efac830893f023e0d Mon Sep 17 00:00:00 2001 From: mo Date: Mon, 7 May 2018 14:47:06 -0600 Subject: extract json mapper. --- lib/net/hippie.rb | 2 +- lib/net/hippie/client.rb | 10 ++++------ lib/net/hippie/json_mapper.rb | 9 +++++++++ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 lib/net/hippie/json_mapper.rb diff --git a/lib/net/hippie.rb b/lib/net/hippie.rb index b2aeee0..adb0666 100644 --- a/lib/net/hippie.rb +++ b/lib/net/hippie.rb @@ -4,7 +4,7 @@ require "net/http" require "openssl" require "net/hippie/version" - +require "net/hippie/json_mapper" require "net/hippie/client" module Net diff --git a/lib/net/hippie/client.rb b/lib/net/hippie/client.rb index d36de5d..dd1f228 100644 --- a/lib/net/hippie/client.rb +++ b/lib/net/hippie/client.rb @@ -7,10 +7,11 @@ module Net 'User-Agent' => "net/hippie #{Net::Hippie::VERSION}", } - def initialize(headers: DEFAULT_HEADERS, certificate: nil, key: nil) + def initialize(headers: DEFAULT_HEADERS, certificate: nil, key: nil, mapper: JsonMapper.new) @certificate = certificate @default_headers = headers @key = key + @mapper = mapper end def execute(uri, request) @@ -50,6 +51,7 @@ module Net private attr_reader :default_headers, :certificate, :key + attr_reader :mapper def http_for(uri) http = Net::HTTP.new(uri.host, uri.port) @@ -63,13 +65,9 @@ module Net def request_for(type, uri, headers: {}, body: {}) type.new(uri, default_headers.merge(headers)).tap do |x| - x.body = map_from(body) unless body.empty? + x.body = mapper.map_from(body) unless body.empty? end end - - def map_from(hash) - JSON.generate(hash) - end end end end diff --git a/lib/net/hippie/json_mapper.rb b/lib/net/hippie/json_mapper.rb new file mode 100644 index 0000000..3aae9e3 --- /dev/null +++ b/lib/net/hippie/json_mapper.rb @@ -0,0 +1,9 @@ +module Net + module Hippie + class JsonMapper + def map_from(hash) + JSON.generate(hash) + end + end + end +end -- cgit v1.2.3