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 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