gem_require 0.0.2 → 0.0.3

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.
@@ -76,28 +76,27 @@ and installs them if necessary.
76
76
  private
77
77
 
78
78
  def require_gem(name, version, installer_options)
79
- if installed_version = gem_uptodate?(name, version)
80
- say "#{name} (#{installed_version}) is already installed"
81
- else
82
- say "Installing #{name} ..."
83
- install_gem(name, version, installer_options)
84
- end
85
- end
86
79
 
87
- def gem_uptodate?(name, version)
88
80
  dependency = Gem::Dependency.new(name, version)
89
- installed = current_spec(dependency)
90
- if installed
91
- if !options[:latest] || installed.version == latest_available_version_of(dependency)
92
- installed.version
81
+ installed = Gem.source_index.search(dependency).last
82
+
83
+ if installed && options[:latest]
84
+ latest_version = latest_available_version_of(dependency)
85
+ if installed.version < latest_version
86
+ installed = nil
87
+ version = latest_version
93
88
  end
94
89
  end
95
- end
96
90
 
97
- def current_spec(dependency)
98
- Gem.source_index.search(dependency).last
91
+ if installed
92
+ say "#{name} (#{installed.version}) is already installed"
93
+ else
94
+ say "Installing #{name} (#{version}) ..."
95
+ install_gem(name, version, installer_options)
96
+ end
97
+
99
98
  end
100
-
99
+
101
100
  def latest_available_version_of(dependency)
102
101
  Gem::SpecFetcher.fetcher.fetch(dependency).map { |x| x.first.version }.max
103
102
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_require
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Williams
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-05 00:00:00 +11:00
18
+ date: 2010-12-06 00:00:00 +11:00
19
19
  default_executable:
20
20
  dependencies: []
21
21