force_require 1.0.0
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.
- data/Gemfile +4 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/example/Gemfile +1 -0
- data/example/foo.rb +7 -0
- data/force_require.gemspec +16 -0
- data/lib/force_require.rb +47 -0
- metadata +52 -0
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
force_require
|
2
|
+
====
|
3
|
+
|
4
|
+
It provides the Kernel#force_require to require gems over the bundler.
|
5
|
+
|
6
|
+
Install
|
7
|
+
----
|
8
|
+
|
9
|
+
### In Gemfile
|
10
|
+
|
11
|
+
gem "force_require"
|
12
|
+
|
13
|
+
### To local
|
14
|
+
|
15
|
+
curl https://github.com/jugyo/force_require/raw/master/lib/force_require.rb > ~/force_require.rb
|
16
|
+
|
17
|
+
Usage
|
18
|
+
----
|
19
|
+
|
20
|
+
e.g.
|
21
|
+
|
22
|
+
force_require 'ir_b'
|
23
|
+
|
24
|
+
See also `./example`.
|
25
|
+
|
26
|
+
Copyright
|
27
|
+
----
|
28
|
+
|
29
|
+
Copyright (c) 2011 jugyo, released under the MIT license
|
data/Rakefile
ADDED
data/example/Gemfile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
source 'http://rubygems.org'
|
data/example/foo.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gem.authors = ["jugyo"]
|
5
|
+
gem.email = ["jugyo.org@gmail.com"]
|
6
|
+
gem.description = %q{Force require for Bundler environment! Yeaaaaaaaaaaah!}
|
7
|
+
gem.summary = %q{You can require any gems on Bundler!}
|
8
|
+
gem.homepage = "https://github.com/jugyo/force_require"
|
9
|
+
|
10
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
11
|
+
gem.files = `git ls-files`.split("\n")
|
12
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
13
|
+
gem.name = "force_require"
|
14
|
+
gem.require_paths = ["lib"]
|
15
|
+
gem.version = '1.0.0'
|
16
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Gem
|
2
|
+
def self._all_partials(gemdir)
|
3
|
+
Dir[File.join(gemdir, "gems/*")]
|
4
|
+
end
|
5
|
+
|
6
|
+
def self._all_load_paths
|
7
|
+
result = []
|
8
|
+
|
9
|
+
Gem.path.each do |gemdir|
|
10
|
+
each_load_path _all_partials(gemdir) do |load_path|
|
11
|
+
result << load_path
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
result
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module Kernel
|
20
|
+
def new_require(name)
|
21
|
+
begin
|
22
|
+
org_require name
|
23
|
+
rescue LoadError
|
24
|
+
if Thread.current[:force_require_mode]
|
25
|
+
force_require name
|
26
|
+
else
|
27
|
+
raise
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
alias_method :org_require, :require
|
32
|
+
alias_method :require, :new_require
|
33
|
+
|
34
|
+
def force_require(name)
|
35
|
+
Thread.current[:force_require_mode] = true
|
36
|
+
Gem._all_load_paths.each do |dir|
|
37
|
+
Dir[File.join(dir, "#{name}#{Gem.suffix_pattern}")].each do |file|
|
38
|
+
require file
|
39
|
+
return true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
raise LoadError, "no such file to load -- #{name}"
|
43
|
+
ensure
|
44
|
+
Thread.current[:force_require_mode] = false
|
45
|
+
end
|
46
|
+
alias_method :require!, :force_require
|
47
|
+
end
|
metadata
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: force_require
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- jugyo
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-10-11 00:00:00.000000000Z
|
13
|
+
dependencies: []
|
14
|
+
description: Force require for Bundler environment! Yeaaaaaaaaaaah!
|
15
|
+
email:
|
16
|
+
- jugyo.org@gmail.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- Gemfile
|
22
|
+
- README.md
|
23
|
+
- Rakefile
|
24
|
+
- example/Gemfile
|
25
|
+
- example/foo.rb
|
26
|
+
- force_require.gemspec
|
27
|
+
- lib/force_require.rb
|
28
|
+
homepage: https://github.com/jugyo/force_require
|
29
|
+
licenses: []
|
30
|
+
post_install_message:
|
31
|
+
rdoc_options: []
|
32
|
+
require_paths:
|
33
|
+
- lib
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
requirements: []
|
47
|
+
rubyforge_project:
|
48
|
+
rubygems_version: 1.8.11
|
49
|
+
signing_key:
|
50
|
+
specification_version: 3
|
51
|
+
summary: You can require any gems on Bundler!
|
52
|
+
test_files: []
|