diff -Nru ruby-delayer-deferred-2.1.1/.circleci/config.yml ruby-delayer-deferred-2.2.0/.circleci/config.yml --- ruby-delayer-deferred-2.1.1/.circleci/config.yml 1970-01-01 00:00:00.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/.circleci/config.yml 2020-03-21 23:48:33.000000000 +0000 @@ -0,0 +1,40 @@ +version: '2.1' + +executors: + ruby: + parameters: + tag: + type: string + docker: + - image: circleci/ruby:<< parameters.tag >> + +jobs: + build: + parameters: + ruby-version: + type: string + executor: + name: ruby + tag: << parameters.ruby-version >> + steps: + - checkout + - run: + name: Which bundler? + command: bundle -v + - run: + command: bundle install --path vendor/bundle + - run: + name: test + command: bundle exec rake test +workflows: + build: + jobs: + - build: + name: 'ruby-2.5' + ruby-version: '2.5.7' + - build: + name: 'ruby-2.6' + ruby-version: '2.6.5' + - build: + name: 'ruby-2.7' + ruby-version: '2.7.0' diff -Nru ruby-delayer-deferred-2.1.1/debian/changelog ruby-delayer-deferred-2.2.0/debian/changelog --- ruby-delayer-deferred-2.1.1/debian/changelog 2020-03-31 05:16:17.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/debian/changelog 2020-04-07 06:54:44.000000000 +0000 @@ -1,3 +1,13 @@ +ruby-delayer-deferred (2.2.0-1) unstable; urgency=medium + + * New upstream version 2.2.0 + * Update d/changelog + * Add patch: Remove git ls-files from gemspec + * d/control: Update Depends, Build-Depends + - ruby-delayer: ">= 1.1.2", "< 2.0" + + -- Youhei SASAKI Tue, 07 Apr 2020 15:54:44 +0900 + ruby-delayer-deferred (2.1.1-3) unstable; urgency=medium * Team upload. diff -Nru ruby-delayer-deferred-2.1.1/debian/control ruby-delayer-deferred-2.2.0/debian/control --- ruby-delayer-deferred-2.1.1/debian/control 2020-03-14 09:13:01.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/debian/control 2020-04-07 06:54:44.000000000 +0000 @@ -6,7 +6,7 @@ Build-Depends: debhelper-compat (= 12), gem2deb, ruby-delayer (<< 2.0), - ruby-delayer (>= 1.0) + ruby-delayer (>= 1.1.2) Standards-Version: 4.5.0 Vcs-Git: https://salsa.debian.org/ruby-team/ruby-delayer-deferred.git Vcs-Browser: https://salsa.debian.org/ruby-team/ruby-delayer-deferred @@ -19,7 +19,7 @@ XB-Ruby-Versions: ${ruby:Versions} Depends: ruby | ruby-interpreter, ruby-delayer (<< 2.0), - ruby-delayer (>= 1.0), + ruby-delayer (>= 1.1.2), ${misc:Depends}, ${shlibs:Depends} Description: Ruby implementation of JSDeferred diff -Nru ruby-delayer-deferred-2.1.1/debian/patches/0003-Remove-git-ls-files-from-gemspec.patch ruby-delayer-deferred-2.2.0/debian/patches/0003-Remove-git-ls-files-from-gemspec.patch --- ruby-delayer-deferred-2.1.1/debian/patches/0003-Remove-git-ls-files-from-gemspec.patch 1970-01-01 00:00:00.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/debian/patches/0003-Remove-git-ls-files-from-gemspec.patch 2020-04-07 06:54:44.000000000 +0000 @@ -0,0 +1,22 @@ +From: Youhei SASAKI +Date: Tue, 7 Apr 2020 03:48:35 +0900 +Subject: Remove git ls-files from gemspec + +Signed-off-by: Youhei SASAKI +--- + delayer-deferred.gemspec | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/delayer-deferred.gemspec b/delayer-deferred.gemspec +index 1d53974..157fb6c 100644 +--- a/delayer-deferred.gemspec ++++ b/delayer-deferred.gemspec +@@ -13,7 +13,7 @@ Gem::Specification.new do |spec| + spec.homepage = "https://github.com/toshia/delayer-deferred" + spec.license = "MIT" + +- spec.files = `git ls-files -z`.split("\x0") ++ spec.files = [".circleci/config.yml",".gitignore","Gemfile","LICENSE.txt","README.md","Rakefile","delayer-deferred.gemspec","lib/delayer/deferred.rb","lib/delayer/deferred/chain.rb","lib/delayer/deferred/chain/await.rb","lib/delayer/deferred/chain/base.rb","lib/delayer/deferred/chain/next.rb","lib/delayer/deferred/chain/trap.rb","lib/delayer/deferred/deferred.rb","lib/delayer/deferred/deferredable.rb","lib/delayer/deferred/deferredable/awaitable.rb","lib/delayer/deferred/deferredable/chainable.rb","lib/delayer/deferred/deferredable/graph.rb","lib/delayer/deferred/deferredable/node_sequence.rb","lib/delayer/deferred/deferredable/trigger.rb","lib/delayer/deferred/enumerable.rb","lib/delayer/deferred/enumerator.rb","lib/delayer/deferred/error.rb","lib/delayer/deferred/promise.rb","lib/delayer/deferred/request.rb","lib/delayer/deferred/response.rb","lib/delayer/deferred/result_container.rb","lib/delayer/deferred/thread.rb","lib/delayer/deferred/tools.rb","lib/delayer/deferred/version.rb","lib/delayer/deferred/worker.rb","test/deferred_benchmark.rb","test/deferred_profiler.rb","test/deferred_test.rb","test/enumerable_test.rb","test/graph_test.rb","test/helper.rb","test/promise_test.rb","test/sleep_test.rb","test/testutils.rb","test/thread_test.rb"] + spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } + spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) + spec.require_paths = ["lib"] diff -Nru ruby-delayer-deferred-2.1.1/debian/patches/series ruby-delayer-deferred-2.2.0/debian/patches/series --- ruby-delayer-deferred-2.1.1/debian/patches/series 2017-12-27 14:16:17.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/debian/patches/series 2020-04-07 06:54:44.000000000 +0000 @@ -1,2 +1,3 @@ remove_require_bundler.patch remove_require_simplecov.patch +0003-Remove-git-ls-files-from-gemspec.patch diff -Nru ruby-delayer-deferred-2.1.1/delayer-deferred.gemspec ruby-delayer-deferred-2.2.0/delayer-deferred.gemspec --- ruby-delayer-deferred-2.1.1/delayer-deferred.gemspec 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/delayer-deferred.gemspec 2020-03-21 23:48:33.000000000 +0000 @@ -20,7 +20,7 @@ spec.required_ruby_version = '>= 2.4.0' - spec.add_dependency "delayer", ">= 1.0", "< 2.0" + spec.add_dependency "delayer", ">= 1.1.2", "< 2.0" spec.add_development_dependency "bundler" spec.add_development_dependency "rake", ">= 12.3.2" diff -Nru ruby-delayer-deferred-2.1.1/lib/delayer/deferred/promise.rb ruby-delayer-deferred-2.2.0/lib/delayer/deferred/promise.rb --- ruby-delayer-deferred-2.1.1/lib/delayer/deferred/promise.rb 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/lib/delayer/deferred/promise.rb 2020-03-21 23:48:33.000000000 +0000 @@ -8,7 +8,7 @@ include Deferredable::Trigger class << self - def new(stop=false, name: caller_locations(1,1).first.to_s, &block) + def new(stop=false, name: caller_locations(1,1).first.to_s, &block) result = promise = super(name: name) result = promise.next(&block) if block_given? promise.call(true) unless stop diff -Nru ruby-delayer-deferred-2.1.1/lib/delayer/deferred/tools.rb ruby-delayer-deferred-2.2.0/lib/delayer/deferred/tools.rb --- ruby-delayer-deferred-2.1.1/lib/delayer/deferred/tools.rb 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/lib/delayer/deferred/tools.rb 2020-03-21 23:48:33.000000000 +0000 @@ -64,5 +64,19 @@ raise ForeignCommandAborted.new("command aborted: #{args.join(' ')}", process: status) end } end + + # _sec_ 秒後にsuccessとなるPromiseを返す + # ==== Args + # [sec] 待つ秒数 + # ==== Return + # Deferred + def sleep(sec) + # pp [sec] + delayer.Promise.new(true).tap do |promise| + delayer.new(delay: sec) do + promise.call() + end + end + end end end diff -Nru ruby-delayer-deferred-2.1.1/lib/delayer/deferred/version.rb ruby-delayer-deferred-2.2.0/lib/delayer/deferred/version.rb --- ruby-delayer-deferred-2.1.1/lib/delayer/deferred/version.rb 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/lib/delayer/deferred/version.rb 2020-03-21 23:48:33.000000000 +0000 @@ -1,5 +1,5 @@ module Delayer module Deferred - VERSION = "2.1.1" + VERSION = "2.2.0" end end diff -Nru ruby-delayer-deferred-2.1.1/lib/delayer/deferred.rb ruby-delayer-deferred-2.2.0/lib/delayer/deferred.rb --- ruby-delayer-deferred-2.1.1/lib/delayer/deferred.rb 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/lib/delayer/deferred.rb 2020-03-21 23:48:33.000000000 +0000 @@ -18,8 +18,12 @@ super(*rest, name: name, &block) end - def method_missing(*rest, &block) - Delayer::Deferred::Promise.__send__(*rest, &block) + def method_missing(*rest, **kwrest, &block) + if kwrest.empty? + Delayer::Deferred::Promise.__send__(*rest, &block) + else + Delayer::Deferred::Promise.__send__(*rest, **kwrest, &block) + end end def respond_to_missing?(symbol, include_private) diff -Nru ruby-delayer-deferred-2.1.1/README.md ruby-delayer-deferred-2.2.0/README.md --- ruby-delayer-deferred-2.1.1/README.md 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/README.md 2020-03-21 23:48:33.000000000 +0000 @@ -2,6 +2,8 @@ Delayerの、ブロックを実行キューにキューイングする機能を利用し、エラー処理やasync/awaitのような機能をサポートするライブラリです。 +[![toshia](https://circleci.com/gh/toshia/delayer-deferred.svg?style=svg)](https://circleci.com/gh/toshia/delayer-deferred) + ## Installation Add this line to your application's Gemfile: diff -Nru ruby-delayer-deferred-2.1.1/test/sleep_test.rb ruby-delayer-deferred-2.2.0/test/sleep_test.rb --- ruby-delayer-deferred-2.1.1/test/sleep_test.rb 1970-01-01 00:00:00.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/test/sleep_test.rb 2020-03-21 23:48:33.000000000 +0000 @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +require 'pry' +require_relative 'helper' + +describe(Delayer::Deferred) do + include TestUtils + + before do + @delayer = Delayer.generate_class + end + # delayer.new(delay: Time.new) { a << 0 } + + it "Deferred.sleep returns promise when resolve after n minutes" do + lst = [] + eval_all_events(@delayer) do + @delayer.Deferred.sleep(0.1).next do + lst << 1 + end + @delayer.Deferred.next do + lst << 2 + end + end + sleep 0.2 + @delayer.run + #assert_equal false, failure + assert_equal [2, 1], lst, "Deferred did not executed." + end +end diff -Nru ruby-delayer-deferred-2.1.1/test/testutils.rb ruby-delayer-deferred-2.2.0/test/testutils.rb --- ruby-delayer-deferred-2.1.1/test/testutils.rb 2019-07-01 01:36:07.000000000 +0000 +++ ruby-delayer-deferred-2.2.0/test/testutils.rb 2020-03-21 23:48:33.000000000 +0000 @@ -1,7 +1,7 @@ module TestUtils - def eval_all_events(delayer=Delayer) + def eval_all_events(delayer=Delayer, &block) native = Thread.list - result = yield if block_given? + result = block&.call() while not(delayer.empty? and (Thread.list - native).empty?) delayer.run Thread.pass