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 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
- TODO
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
@@ -1,5 +1,5 @@
1
1
  require File.expand_path("../depends.rb", __FILE__)
2
- GemLoader.require :test, :rakefile
2
+ GemLoader.require(:rakefile)
3
3
 
4
4
  Spec::Rake::SpecTask.new(:spec) do |spec|
5
5
  spec.libs = [ 'lib', 'spec' ]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
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 :development => :test
8
-
9
- scope :test do
7
+ scope :runtime
8
+
9
+ scope :development do
10
10
  gem :rspec, ">= 1.3.0", :require => nil
11
11
  end
12
12
 
13
- scope :rakefile => :test do
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
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{gem_loader}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sunteya"]
@@ -15,11 +15,7 @@ module GemLoader
15
15
  end
16
16
 
17
17
  def load
18
- if self.version
19
- Kernel.send :gem, *gem_args
20
- else
21
- Kernel.send :gem, *gem_args
22
- end
18
+ Kernel.send :gem, *gem_args
23
19
  end
24
20
 
25
21
  def require
@@ -16,13 +16,13 @@ module GemLoader
16
16
  end
17
17
 
18
18
  def load
19
- self.gems.each do |gem|
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.gems.each do |gem|
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
@@ -1,7 +1,7 @@
1
1
  require File.expand_path("../../depends.rb", __FILE__)
2
2
  require "gem_loader"
3
3
 
4
- GemLoader.require :test
4
+ GemLoader.require(:test)
5
5
 
6
6
 
7
7
  Spec::Runner.configure do |config|
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sunteya