summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Quantum/Stdout.pm
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-05-22 02:54:58 +0200
committerDylan William Hardison <dylan@hardison.net>2018-06-28 22:41:57 +0200
commite216176239965bb5bd98a0008fd8c71b14ee9624 (patch)
treeba7e201ba6ba4c530e77574e0cb2796b46841e43 /Bugzilla/Quantum/Stdout.pm
parentf2f708f6985dd3a7c51869c0dda5791ca239d248 (diff)
downloadbugzilla-e216176239965bb5bd98a0008fd8c71b14ee9624.tar.gz
bugzilla-e216176239965bb5bd98a0008fd8c71b14ee9624.tar.xz
almost everything works
Diffstat (limited to 'Bugzilla/Quantum/Stdout.pm')
-rw-r--r--Bugzilla/Quantum/Stdout.pm41
1 files changed, 41 insertions, 0 deletions
diff --git a/Bugzilla/Quantum/Stdout.pm b/Bugzilla/Quantum/Stdout.pm
new file mode 100644
index 000000000..fe2d2eff7
--- /dev/null
+++ b/Bugzilla/Quantum/Stdout.pm
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::Quantum::Stdout;
+use 5.10.1;
+use Moo;
+
+has 'controller' => (
+ is => 'ro',
+ required => 1,
+);
+
+sub TIEHANDLE { ## no critic (unpack)
+ my $class = shift;
+
+ return $class->new(@_);
+}
+
+sub PRINTF { ## no critic (unpack)
+ my $self = shift;
+ $self->PRINT(sprintf @_);
+}
+
+sub PRINT { ## no critic (unpack)
+ my $self = shift;
+
+ foreach my $chunk (@_) {
+ utf8::encode($chunk);
+ $self->controller->write($chunk);
+ }
+}
+
+sub BINMODE {
+ # no-op
+}
+
+1; \ No newline at end of file