gem_loader 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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