diff --git a/pry-0.10.4-Avoid-calling-Ruby-2.4-String-pretty_print-in-ColorPrinter.patch b/pry-0.10.4-Avoid-calling-Ruby-2.4-String-pretty_print-in-ColorPrinter.patch new file mode 100644 index 0000000..1fc8465 --- /dev/null +++ b/pry-0.10.4-Avoid-calling-Ruby-2.4-String-pretty_print-in-ColorPrinter.patch @@ -0,0 +1,32 @@ +From ff6263fd9ddf2d689ecfa8fa7eb1216bfad441a8 Mon Sep 17 00:00:00 2001 +From: Akira Matsuda +Date: Thu, 8 Dec 2016 03:51:38 +0900 +Subject: [PATCH] Avoid calling Ruby 2.4+ String#pretty_print in ColorPrinter + +Ruby 2.4+ defines String's own pretty_print that prints multiline Strings prettier +see: https://bugs.ruby-lang.org/issues/12664 + +fixes #1585 +--- + lib/pry/color_printer.rb | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/lib/pry/color_printer.rb b/lib/pry/color_printer.rb +index 48bcc1a..ce52b8d 100644 +--- a/lib/pry/color_printer.rb ++++ b/lib/pry/color_printer.rb +@@ -31,7 +31,13 @@ def text(str, width = str.length) + end + + def pp(obj) +- super ++ if String === obj ++ # Avoid calling Ruby 2.4+ String#pretty_print that prints multiline ++ # Strings prettier ++ Object.instance_method(:pretty_print).bind(obj).call ++ else ++ super ++ end + rescue => e + raise if e.is_a? Pry::Pager::StopPaging + begin diff --git a/pry-0.10.4-Fixnum-and-Bignum-are-unified-into-Integer-since-Ruby-2.4.patch b/pry-0.10.4-Fixnum-and-Bignum-are-unified-into-Integer-since-Ruby-2.4.patch new file mode 100644 index 0000000..63e5e24 --- /dev/null +++ b/pry-0.10.4-Fixnum-and-Bignum-are-unified-into-Integer-since-Ruby-2.4.patch @@ -0,0 +1,32 @@ +From 866ea0b9f983229f53997dd9c87212281683f3df Mon Sep 17 00:00:00 2001 +From: Akira Matsuda +Date: Thu, 8 Dec 2016 03:54:12 +0900 +Subject: [PATCH] Fixnum and Bignum are unified into Integer since Ruby 2.4 + +see: https://bugs.ruby-lang.org/issues/12005 +--- + spec/commands/ls_spec.rb | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/spec/commands/ls_spec.rb b/spec/commands/ls_spec.rb +index 0fc489b..d89fcc2 100644 +--- a/spec/commands/ls_spec.rb ++++ b/spec/commands/ls_spec.rb +@@ -48,8 +48,15 @@ + end + + describe "immediates" do +- it "should work on Fixnum" do +- pry_eval("ls 5").should =~ /Fixnum#methods:.*modulo/m ++ # Ruby 2.4+ ++ if 5.class.name == 'Integer' ++ it "should work on Integer" do ++ expect(pry_eval("ls 5")).to match(/Integer#methods:.*modulo/m) ++ end ++ else ++ it "should work on Fixnum" do ++ expect(pry_eval("ls 5")).to match(/Fixnum#methods:.*modulo/m) ++ end + end + end + diff --git a/pry-0.10.4-support-custom-implementation-of-BasicObject-inspect.patch b/pry-0.10.4-support-custom-implementation-of-BasicObject-inspect.patch new file mode 100644 index 0000000..e745186 --- /dev/null +++ b/pry-0.10.4-support-custom-implementation-of-BasicObject-inspect.patch @@ -0,0 +1,44 @@ +From 81fc96f73bdb26901c75838262779002bf6e14c5 Mon Sep 17 00:00:00 2001 +From: rpag +Date: Mon, 12 Jan 2015 20:18:59 +0000 +Subject: [PATCH] support custom implementation of BasicObject#inspect. + +If BasicObject or a subclass of BasicObject implements #inspect, +we will try to use its return value as output but if that fails, +we'll fallback on __id__. + +fixes #1341 +--- + lib/pry/color_printer.rb | 19 +++++++++++-------- + 1 file changed, 11 insertions(+), 8 deletions(-) + +diff --git a/lib/pry/color_printer.rb b/lib/pry/color_printer.rb +index 218a821..48bcc1a 100644 +--- a/lib/pry/color_printer.rb ++++ b/lib/pry/color_printer.rb +@@ -34,14 +34,17 @@ def pp(obj) + super + rescue => e + raise if e.is_a? Pry::Pager::StopPaging +- +- # Read the class name off of the singleton class to provide a default +- # inspect. +- singleton = class << obj; self; end +- ancestors = Pry::Method.safe_send(singleton, :ancestors) +- klass = ancestors.reject { |k| k == singleton }.first +- obj_id = obj.__id__.to_s(16) rescue 0 +- str = "#<#{klass}:0x#{obj_id}>" ++ begin ++ str = obj.inspect ++ rescue Exception ++ # Read the class name off of the singleton class to provide a default ++ # inspect. ++ singleton = class << obj; self; end ++ ancestors = Pry::Method.safe_send(singleton, :ancestors) ++ klass = ancestors.reject { |k| k == singleton }.first ++ obj_id = obj.__id__.to_s(16) rescue 0 ++ str = "#<#{klass}:0x#{obj_id}>" ++ end + + text highlight_object_literal(str) + end diff --git a/pry-0.10.4.gem b/pry-0.10.4.gem new file mode 100644 index 0000000..35f3848 Binary files /dev/null and b/pry-0.10.4.gem differ diff --git a/rubygem-pry-0.10.1-rm-openstruct.patch b/rubygem-pry-0.10.1-rm-openstruct.patch new file mode 100644 index 0000000..a1eb03a --- /dev/null +++ b/rubygem-pry-0.10.1-rm-openstruct.patch @@ -0,0 +1,27 @@ +From 683b1abff5785a7fe2140ddf502ab82dbb968656 Mon Sep 17 00:00:00 2001 +From: Ken Dreyer +Date: Tue, 9 Dec 2014 20:44:02 -0700 +Subject: [PATCH] spec: rm stray reference to OpenStruct + +OpenStruct was removed in 91d412c044f174a2c50d1583a3f34c1f0f795e7d, but +a stray reference remained in the test suite. Remove it here. +--- + spec/hooks_spec.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/spec/hooks_spec.rb b/spec/hooks_spec.rb +index 8248f03..fa5bf05 100644 +--- a/spec/hooks_spec.rb ++++ b/spec/hooks_spec.rb +@@ -368,7 +368,7 @@ describe Pry::Hooks do + + describe "after_session hook" do + it 'should always run, even if uncaught exception bubbles out of repl' do +- o = OpenStruct.new ++ o = Pry::Config.new + o.great_escape = Class.new(StandardError) + + old_ew = Pry.config.exception_whitelist +-- +1.9.3 + diff --git a/rubygem-pry.spec b/rubygem-pry.spec new file mode 100644 index 0000000..ffd4bf8 --- /dev/null +++ b/rubygem-pry.spec @@ -0,0 +1,90 @@ +%global gem_name pry +Name: rubygem-%{gem_name} +Version: 0.10.4 +Release: 1 +Summary: An IRB alternative and runtime developer console +License: MIT +URL: https://rubygems.org/gems/pry +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Source1: https://github.com/pry/%{gem_name}/archive/v%{version}.tar.gz +# rm stray openstruct reference. Upstream at +# https://github.com/pry/pry/commit/70942ad3b2d93e028fc3e8bfe1c6bd11ec79ffad +Patch0: rubygem-pry-0.10.1-rm-openstruct.patch +# Fix Ruby 2.4 compatibility. +# https://github.com/pry/pry/pull/1586 +Patch1: pry-0.10.4-support-custom-implementation-of-BasicObject-inspect.patch +Patch2: pry-0.10.4-Avoid-calling-Ruby-2.4-String-pretty_print-in-ColorPrinter.patch +Patch3: pry-0.10.4-Fixnum-and-Bignum-are-unified-into-Integer-since-Ruby-2.4.patch +%if 0%{?fc19} || 0%{?fc20} || 0%{?el7} +Requires: ruby(release) ruby(rubygems) rubygem(coderay) => 1.1.0 rubygem(coderay) < 1.2 +Requires: rubygem(slop) => 3.4 rubygem(slop) < 4 rubygem(method_source) => 0.8.1 +Requires: rubygem(method_source) < 0.9 +%endif +BuildRequires: ruby(release) rubygems-devel ruby rubygem(rspec) rubygem(coderay) => 1.1.0 +BuildRequires: rubygem(slop) => 3.4 rubygem(method_source) => 0.8.1 vi +BuildArch: noarch +%if 0%{?fc19} || 0%{?fc20} || 0%{?el7} +Provides: rubygem(%{gem_name}) = %{version} +%endif +%description +An IRB alternative and runtime developer console. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%prep +gem unpack %{SOURCE0} +%setup -q -D -T -n %{gem_name}-%{version} +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec +%patch1 -p1 +%patch2 -p1 + +%build +gem build %{gem_name}.gemspec +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ +mkdir -p %{buildroot}%{_bindir} +cp -a .%{_bindir}/* \ + %{buildroot}%{_bindir}/ +find %{buildroot}%{gem_instdir}/bin -type f | xargs chmod a+x + +%check +pushd .%{gem_instdir} +tar xvf %{SOURCE1} +ln -s %{gem_name}-%{version}/spec spec +cat %{PATCH0} | patch -p1 +cat %{PATCH3} | patch -p1 +touch Rakefile +sed -i '/gist --login/i pending "rubygem-gist is not in Fedora yet."' \ + spec/commands/gist_spec.rb +sed -e "/require 'bundler\/setup'/ s/^/#/" -i spec/helper.rb +sed -e "/Bundler.require/ s/^/#/" -i spec/helper.rb +rspec spec +popd + +%files +%{!?_licensedir:%global license %%doc} +%dir %{gem_instdir} +%{_bindir}/pry +%license %{gem_instdir}/LICENSE +%{gem_instdir}/bin +%{gem_libdir} +%exclude %{gem_cache} +%{gem_spec} + +%files doc +%doc %{gem_docdir} +%doc %{gem_instdir}/CHANGELOG.md +%doc %{gem_instdir}/README.md + +%changelog +* Thu Aug 20 2020 luoshengwei - 0.10.4-1 +- package init diff --git a/rubygem-pry.yaml b/rubygem-pry.yaml new file mode 100644 index 0000000..4ed4972 --- /dev/null +++ b/rubygem-pry.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: pry/pry +tag_prefix: "pry-" +separator: "." diff --git a/v0.10.4.tar.gz b/v0.10.4.tar.gz new file mode 100644 index 0000000..33e1270 Binary files /dev/null and b/v0.10.4.tar.gz differ