pry-debundle 0.3 → 0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,17 +38,16 @@ class << Pry
38
38
  def debundle!
39
39
  loaded = false
40
40
 
41
- # Rubygems 1.8
42
- if defined?(Gem.post_reset_hooks)
41
+ if rubygems_18?
43
42
  Gem.post_reset_hooks.reject!{ |hook| hook.source_location.first =~ %r{/bundler/} }
44
43
  Gem::Specification.reset
45
- load 'rubygems/custom_require.rb'
44
+ remove_bundler_mokeypatches
46
45
  loaded = true
47
46
 
48
47
  # Rubygems 1.6 — TODO might be quite slow.
49
48
  elsif Gem.source_index && Gem.send(:class_variable_get, :@@source_index)
50
49
  Gem.source_index.refresh!
51
- load 'rubygems/custom_require.rb'
50
+ remove_bundler_mokeypatches
52
51
  loaded = true
53
52
 
54
53
  else
@@ -76,6 +75,36 @@ class << Pry
76
75
 
77
76
  new_plugins.each(&:activate!)
78
77
  end
78
+
79
+ private
80
+
81
+ def rubygems_18?
82
+ defined?(Gem.post_reset_hooks)
83
+ end
84
+
85
+ # Ugh, this stuff is quite vile.
86
+ def remove_bundler_mokeypatches
87
+ load 'rubygems/custom_require.rb'
88
+
89
+ if rubygems_18?
90
+ Kernel.module_eval do
91
+ def gem(gem_name, *requirements) # :doc:
92
+ skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
93
+ raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
94
+ spec = Gem::Dependency.new(gem_name, *requirements).to_spec
95
+ spec.activate if spec
96
+ end
97
+ end
98
+ else
99
+ Kernel.module_eval do
100
+ def gem(gem_name, *requirements) # :doc:
101
+ skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
102
+ raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
103
+ Gem.activate(gem_name, *requirements)
104
+ end
105
+ end
106
+ end
107
+ end
79
108
  end
80
109
 
81
110
  # Run just after a binding.pry, before you get dumped in the REPL.
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "pry-debundle"
3
- s.version = "0.3"
3
+ s.version = "0.4"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.author = "Conrad Irwin"
6
6
  s.email = "conrad.irwin@gmail.com"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-debundle
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: '0.4'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-30 00:00:00.000000000 Z
12
+ date: 2012-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry
@@ -59,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  version: '0'
60
60
  requirements: []
61
61
  rubyforge_project:
62
- rubygems_version: 1.8.24
62
+ rubygems_version: 1.8.23
63
63
  signing_key:
64
64
  specification_version: 3
65
65
  summary: Allows you to use gems not in your Gemfile from Pry.