summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-04-02 23:33:27 +0100
committerSam James <sam@gentoo.org>2023-04-03 01:46:25 +0100
commita8e737d547d3cc3ee0f73cb2010485c2b464bbe2 (patch)
treeff676ee0a3177e3d45e3c6dd22560a4cd06715ae /dev-ruby/console
parentdev-ruby/nio4r: enable ruby32 (diff)
downloadgentoo-a8e737d547d3cc3ee0f73cb2010485c2b464bbe2.tar.gz
gentoo-a8e737d547d3cc3ee0f73cb2010485c2b464bbe2.tar.bz2
gentoo-a8e737d547d3cc3ee0f73cb2010485c2b464bbe2.zip
dev-ruby/console: enable ruby32, fix tests
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-ruby/console')
-rw-r--r--dev-ruby/console/console-1.16.2-r1.ebuild42
-rw-r--r--dev-ruby/console/files/console-1.16.2-tests.patch155
2 files changed, 197 insertions, 0 deletions
diff --git a/dev-ruby/console/console-1.16.2-r1.ebuild b/dev-ruby/console/console-1.16.2-r1.ebuild
new file mode 100644
index 000000000000..0d935fd76672
--- /dev/null
+++ b/dev-ruby/console/console-1.16.2-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Beautiful logging for Ruby"
+HOMEPAGE="https://github.com/socketry/console"
+SRC_URI="https://github.com/socketry/console/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/fiber-local"
+
+ruby_add_bdepend "test? ( dev-ruby/sus )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-tests.patch
+)
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # Avoid dependency on covered.
+ rm -f config/sus.rb || die
+
+ # Avoid sandbox violation during tests
+ sed -i -e 's:/tmp/:'"${TMPDIR}"'/:' test/console/output.rb || die
+}
+
+each_ruby_test() {
+ ${RUBY} -S sus-parallel || die
+}
diff --git a/dev-ruby/console/files/console-1.16.2-tests.patch b/dev-ruby/console/files/console-1.16.2-tests.patch
new file mode 100644
index 000000000000..cbbaaa69dff1
--- /dev/null
+++ b/dev-ruby/console/files/console-1.16.2-tests.patch
@@ -0,0 +1,155 @@
+https://github.com/socketry/console/commit/01438b0390ccd0beead0a6ca828a8dd5ffc710b9
+https://github.com/socketry/console/commit/c2121ed574d846361fcc0cfde97f88ad841a306c
+
+From 01438b0390ccd0beead0a6ca828a8dd5ffc710b9 Mon Sep 17 00:00:00 2001
+From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
+Date: Fri, 24 Feb 2023 09:28:43 +1300
+Subject: [PATCH] Add log level tests.
+
+--- a/test/console.rb
++++ b/test/console.rb
+@@ -10,7 +10,7 @@
+
+ describe Console do
+ it "has a version number" do
+- expect(Console::VERSION).not.to be nil
++ expect(Console::VERSION).to be =~ /\d+\.\d+\.\d+/
+ end
+
+ with MyModule do
+--- a/test/console/compatible/logger.rb
++++ b/test/console/compatible/logger.rb
+@@ -37,4 +37,9 @@
+
+ expect(io.string).to be(:include?, "Hello World")
+ end
++
++ it "has a default log level" do
++ expect(logger.level).to be_a(Integer)
++ expect(logger.level).to be == ::Logger::DEBUG
++ end
+ end
+
+From c2121ed574d846361fcc0cfde97f88ad841a306c Mon Sep 17 00:00:00 2001
+From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
+Date: Fri, 24 Feb 2023 18:26:17 +1300
+Subject: [PATCH] Fix tests when run interactively and incrementally.
+
+--- a/lib/console/terminal/logger.rb
++++ b/lib/console/terminal/logger.rb
+@@ -6,6 +6,7 @@
+
+ require_relative '../buffer'
+ require_relative '../event'
++require_relative '../clock'
+
+ require_relative 'text'
+ require_relative 'xterm'
+--- a/test/console/capture.rb
++++ b/test/console/capture.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2020-2022, by Samuel Williams.
+
+ require 'console/capture'
++require 'console/logger'
+
+ describe Console::Capture do
+ let(:capture) {subject.new}
+--- a/test/console/compatible/logger.rb
++++ b/test/console/compatible/logger.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2022, by Samuel Williams.
+
+ require 'console/compatible/logger'
++require 'console/terminal/logger'
+
+ describe Console::Compatible::Logger do
+ let(:io) {StringIO.new}
+--- a/test/console/logger.rb
++++ b/test/console/logger.rb
+@@ -70,15 +70,6 @@
+ end
+ end
+
+- Console::Logger::LEVELS.each do |name, level|
+- it "can log #{name} messages" do
+- expect(output).to receive(:call).with(message, severity: name)
+-
+- logger.level = level
+- logger.send(name, message)
+- end
+- end
+-
+ with '#enable' do
+ let(:object) {Object.new}
+
+@@ -94,23 +85,34 @@
+ end
+
+ Console::Logger::LEVELS.each do |name, level|
+- with '#off!', unique: name do
+- it "doesn't log #{name} messages" do
+- logger.off!
++ with "log level #{name}", unique: name do
++ with "#send" do
++ it "can log #{name} messages" do
++ expect(output).to receive(:call).with(message, severity: name)
+
+- expect(output).not.to receive(:call)
+- logger.send(name, message)
+- expect(logger.send("#{name}?")).to be == false
++ logger.level = level
++ logger.send(name, message)
++ end
+ end
+- end
+-
+- with '#all!', unique: name do
+- it "can log #{name} messages" do
+- logger.all!
+-
+- expect(output).to receive(:call).with(message, severity: name)
+- logger.send(name, message)
+- expect(logger.send("#{name}?")).to be == true
++
++ with '#off!' do
++ it "doesn't log #{name} messages" do
++ logger.off!
++
++ expect(output).not.to receive(:call)
++ logger.send(name, message)
++ expect(logger.send("#{name}?")).to be == false
++ end
++ end
++
++ with '#all!' do
++ it "can log #{name} messages" do
++ logger.all!
++
++ expect(output).to receive(:call).with(message, severity: name)
++ logger.send(name, message)
++ expect(logger.send("#{name}?")).to be == true
++ end
+ end
+ end
+ end
+--- a/test/console/resolver.rb
++++ b/test/console/resolver.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2019-2022, by Samuel Williams.
+ # Copyright, 2021, by Robert Schulze.
+
++require 'console'
+ require 'console/resolver'
+ require 'resolver_classes'
+
+--- a/test/console/serialized/logger.rb
++++ b/test/console/serialized/logger.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2019-2022, by Samuel Williams.
+
+ require 'console/serialized/logger'
++require 'console/event/spawn'
+
+ describe Console::Serialized::Logger do
+ let(:io) {StringIO.new}