diff options
author | Azul <azul@riseup.net> | 2016-07-02 12:03:46 +0200 |
---|---|---|
committer | Azul <azul@riseup.net> | 2016-07-02 12:03:46 +0200 |
commit | fb2d7e6f8f1fceefbc8964d34369a867eb8f25bb (patch) | |
tree | 672ea8bbf03876d65c90ecb1ed152424e74939e1 /lib | |
parent | 8a664a39bc3dd77a9c53fa5931f81c2b2b8b7295 (diff) |
refactor: replace blocks/yields with returns
This became possible because we now use celluloid.
Celluloid handles asynchronity without the need for callbacks
or blocks.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/nickserver/adapters/celluloid_http.rb | 2 | ||||
-rw-r--r-- | lib/nickserver/couch_db/source.rb | 5 | ||||
-rw-r--r-- | lib/nickserver/hkp/client.rb | 6 | ||||
-rw-r--r-- | lib/nickserver/hkp/source.rb | 35 | ||||
-rw-r--r-- | lib/nickserver/request_handler.rb | 5 |
5 files changed, 24 insertions, 29 deletions
diff --git a/lib/nickserver/adapters/celluloid_http.rb b/lib/nickserver/adapters/celluloid_http.rb index 1adfaca..d326b8a 100644 --- a/lib/nickserver/adapters/celluloid_http.rb +++ b/lib/nickserver/adapters/celluloid_http.rb @@ -13,7 +13,7 @@ module Nickserver::Adapters params: options[:query], ssl_context: ctx, ssl_socket_class: Celluloid::IO::SSLSocket - yield response.code, response.to_s + return response.code, response.to_s end def ctx diff --git a/lib/nickserver/couch_db/source.rb b/lib/nickserver/couch_db/source.rb index b30fdfc..7c3ad95 100644 --- a/lib/nickserver/couch_db/source.rb +++ b/lib/nickserver/couch_db/source.rb @@ -11,9 +11,8 @@ module Nickserver::CouchDB VIEW = '/_design/Identity/_view/pgp_key_by_email' def query(nick) - adapter.get url, query: query_for(nick) do |status, body| - yield Response.new(nick, status: status, body: body) - end + status, body = adapter.get url, query: query_for(nick) + Response.new(nick, status: status, body: body) end protected diff --git a/lib/nickserver/hkp/client.rb b/lib/nickserver/hkp/client.rb index 6bd239d..d9a9b48 100644 --- a/lib/nickserver/hkp/client.rb +++ b/lib/nickserver/hkp/client.rb @@ -21,7 +21,7 @@ module Nickserver; module Hkp # used to fetch an array of KeyInfo objects that match the given email # def get_key_infos_by_email(email, &block) - get op: 'vindex', search: email, fingerprint: 'on', &block + get op: 'vindex', search: email, fingerprint: 'on' end # @@ -35,10 +35,10 @@ module Nickserver; module Hkp attr_reader :adapter - def get(query, &block) + def get(query) # in practice, exact=on seems to have no effect query = {exact: 'on', options: 'mr'}.merge query - adapter.get Config.hkp_url, query: query, &block + adapter.get Config.hkp_url, query: query end end end; end diff --git a/lib/nickserver/hkp/source.rb b/lib/nickserver/hkp/source.rb index 9c79546..0d79856 100644 --- a/lib/nickserver/hkp/source.rb +++ b/lib/nickserver/hkp/source.rb @@ -14,22 +14,20 @@ require "nickserver/hkp/key_info" module Nickserver; module Hkp class Source < Nickserver::Source - def query(nick, &block) - search(nick) do |status, response| - if status == 200 - best = pick_best_key(response) - get_key_by_fingerprint(nick, best.keyid, &block) - else - yield Nickserver::Response.new(status, response) - end + def query(nick) + status, response = search(nick) + if status == 200 + best = pick_best_key(response) + get_key_by_fingerprint(nick, best.keyid) + else + Nickserver::Response.new(status, response) end end - def search(nick, &block) - client.get_key_infos_by_email(nick) do |status, response| - parser = ParseKeyInfo.new status, response - yield parser.status_for(nick), parser.response_for(nick) - end + def search(nick) + status, response = client.get_key_infos_by_email(nick) + parser = ParseKeyInfo.new status, response + return parser.status_for(nick), parser.response_for(nick) end protected @@ -45,12 +43,11 @@ module Nickserver; module Hkp end def get_key_by_fingerprint(nick, fingerprint) - client.get_key_by_fingerprint fingerprint do |status, response| - if status == 200 - yield Response.new nick, response - else - yield Nickserver::Response.new status, "HKP Request failed" - end + status, response = client.get_key_by_fingerprint fingerprint + if status == 200 + Response.new nick, response + else + Nickserver::Response.new status, "HKP Request failed" end end diff --git a/lib/nickserver/request_handler.rb b/lib/nickserver/request_handler.rb index f6954f1..295d3c0 100644 --- a/lib/nickserver/request_handler.rb +++ b/lib/nickserver/request_handler.rb @@ -40,9 +40,8 @@ module Nickserver else source = Nickserver::Hkp::Source.new(adapter) end - source.query(uid) do |response| - send_response response.status, response.content - end + response = source.query(uid) + send_response response.status, response.content end # |