From 5a2ea93debd1e4dce7ff0bea4a2cb748ac628b64 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 3 Feb 2021 15:29:40 -0500 Subject: [PATCH] Use new em_promise.rb gem --- Gemfile | 2 +- em_promise.rb | 77 --------------------------------------------------- 2 files changed, 1 insertion(+), 78 deletions(-) delete mode 100644 em_promise.rb diff --git a/Gemfile b/Gemfile index 7126ac89bb797193bad3a0e0a15c7108033581a0..d6426a4e9c83a5a02df4541ad4533b61fd41631f 100644 --- a/Gemfile +++ b/Gemfile @@ -4,10 +4,10 @@ gem 'activesupport', '<5.0.0' gem 'blather' gem 'em-hiredis' gem 'em-http-request' +gem 'em_promise.rb' gem 'eventmachine' gem 'goliath' gem 'log4r' -gem 'promise.rb' gem 'redis' group :development do diff --git a/em_promise.rb b/em_promise.rb deleted file mode 100644 index 853594b1e349efc43009fa76b4825ed6bec0fa53..0000000000000000000000000000000000000000 --- a/em_promise.rb +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2017 Stephen Paul Weber -# -# This file is part of sgx-bwmsgsv2. -# -# sgx-bwmsgsv2 is free software: you can redistribute it and/or modify it under -# the terms of the GNU Affero General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) any -# later version. -# -# sgx-bwmsgsv2 is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more -# details. -# -# You should have received a copy of the GNU Affero General Public License along -# with sgx-bwmsgsv2. If not, see . - -require "eventmachine" -require "promise" - -class EMPromise < Promise - def initialize(deferrable=nil) - super() - fulfill(deferrable) if deferrable - end - - def fulfill(value, bind_defer=true) - if bind_defer && value.is_a?(EM::Deferrable) - value.callback { |x| fulfill(x, false) } - value.errback(&method(:reject)) - else - super(value) - end - end - - def defer - EM.next_tick { yield } - end - - def wait - fiber = Fiber.current - resume = proc do |arg| - defer { fiber.resume(arg) } - end - - self.then(resume, resume) - Fiber.yield - end - - def self.reject(e) - new.tap { |promise| promise.reject(e) } - end - - def self.all(enumerable) - super(enumerable.map { |input| - if input.respond_to?(:promise) - input.promise - else - input - end - }) - end -end - -module EventMachine - module Deferrable - def promise - EMPromise.new(self) - end - - [:then, :rescue, :catch].each do |method| - define_method(method) do |*args, &block| - promise.public_send(method, *args, &block) - end - end - end -end