gem_loader 0.1.0 → 0.1.1
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/README.markdown +56 -2
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/depends.rb +6 -4
- data/gem_loader.gemspec +1 -1
- data/lib/gem_loader/gem.rb +1 -5
- data/lib/gem_loader/scope.rb +2 -3
- data/spec/spec_helper.rb +1 -1
- metadata +2 -2
data/README.markdown
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# GemLoader
|
2
2
|
|
3
|
-
A tiny gem's dependencies loader.
|
3
|
+
A tiny gem's dependencies loader.
|
4
4
|
|
5
5
|
## Install
|
6
6
|
|
@@ -8,4 +8,58 @@ A tiny gem's dependencies loader.
|
|
8
8
|
|
9
9
|
## Usege
|
10
10
|
|
11
|
-
|
11
|
+
### Manage you gem's dependencies
|
12
|
+
|
13
|
+
You need to create a gem's dependencies file, such as "depends.rb" or any other .
|
14
|
+
|
15
|
+
require "rubygems"
|
16
|
+
gem "gem_loader", ">= 0.1.0"
|
17
|
+
require "gem_loader"
|
18
|
+
|
19
|
+
|
20
|
+
GemLoader.setup do
|
21
|
+
|
22
|
+
scope :runtime do
|
23
|
+
gem "sinatra", "1.0"
|
24
|
+
end
|
25
|
+
|
26
|
+
scope :development do
|
27
|
+
gem :rspec, ">= 1.3.0", :require => nil
|
28
|
+
end
|
29
|
+
|
30
|
+
scope :test => [:runtime, :development]
|
31
|
+
|
32
|
+
scope :rakefile => [ :runtime, :development ] do
|
33
|
+
gem :rake, ">= 0.8.7"
|
34
|
+
gem :jeweler, ">= 1.4.0"
|
35
|
+
|
36
|
+
require "spec/rake/spectask"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Modify all boot file and use the scope initialize GemLoader (such as `Rakefile`, `spec_helper.rb` and so on)
|
41
|
+
|
42
|
+
require File.expand_path("../depends.rb", __FILE__)
|
43
|
+
GemLoader.require(:rakefile) # :rakefile can be replace any you define scopes
|
44
|
+
|
45
|
+
### Integrate Gem specification
|
46
|
+
|
47
|
+
now you can integrate the gem's dependencies into the gem specification.
|
48
|
+
|
49
|
+
GemLoader.gemspec.integrate(spec)
|
50
|
+
|
51
|
+
It will search `runtime` and `development` scope, and be integrated into the gem specification.
|
52
|
+
|
53
|
+
example for Jeweler
|
54
|
+
|
55
|
+
Jeweler::Tasks.new do |spec|
|
56
|
+
spec.name = "gem_name"
|
57
|
+
spec.summary = "gem_summary"
|
58
|
+
spec.email = "email@host.com"
|
59
|
+
spec.homepage = "http://host.com/homepage"
|
60
|
+
spec.authors = ["author"]
|
61
|
+
GemLoader.gemspec.integrate(spec)
|
62
|
+
end
|
63
|
+
Jeweler::GemcutterTasks.new
|
64
|
+
|
65
|
+
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/depends.rb
CHANGED
@@ -4,13 +4,15 @@ require File.expand_path("../lib/gem_loader", __FILE__)
|
|
4
4
|
|
5
5
|
GemLoader.setup do
|
6
6
|
|
7
|
-
scope :
|
8
|
-
|
9
|
-
scope :
|
7
|
+
scope :runtime
|
8
|
+
|
9
|
+
scope :development do
|
10
10
|
gem :rspec, ">= 1.3.0", :require => nil
|
11
11
|
end
|
12
12
|
|
13
|
-
scope :
|
13
|
+
scope :test => [ :runtime, :development ]
|
14
|
+
|
15
|
+
scope :rakefile => [ :runtime, :development ] do
|
14
16
|
gem :rake, ">= 0.8.7"
|
15
17
|
gem :jeweler, ">= 1.4.0"
|
16
18
|
|
data/gem_loader.gemspec
CHANGED
data/lib/gem_loader/gem.rb
CHANGED
data/lib/gem_loader/scope.rb
CHANGED
@@ -16,13 +16,13 @@ module GemLoader
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def load
|
19
|
-
self.
|
19
|
+
self.all_gems.each do |gem|
|
20
20
|
gem.load
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
def require
|
25
|
-
self.
|
25
|
+
self.all_gems.each do |gem|
|
26
26
|
gem.require
|
27
27
|
end
|
28
28
|
|
@@ -36,6 +36,5 @@ module GemLoader
|
|
36
36
|
self.gems.last
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
39
|
end
|
41
40
|
end
|
data/spec/spec_helper.rb
CHANGED