gem2rpm 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,9 +9,16 @@ module Gem2Rpm
9
9
  def spec_for_dependency(dependency, matching_platform=true)
10
10
  super
11
11
  rescue
12
- spec, source = find_matching(dependency, true, matching_platform).first
12
+ errors = []
13
+
14
+ begin
15
+ spec, source = find_matching(dependency, true, matching_platform).first
16
+ rescue Gem::Exception => e
17
+ errors << OpenStruct.new(:error => e)
18
+ end
19
+
13
20
  source = OpenStruct.new(:uri => source)
14
- [[[spec, source]]]
21
+ [[[spec, source]], errors]
15
22
  end
16
23
  end
17
24
  end
data/lib/gem2rpm.rb CHANGED
@@ -7,17 +7,27 @@ require 'gem2rpm/spec_fetcher'
7
7
  require 'gem2rpm/specification'
8
8
 
9
9
  module Gem2Rpm
10
- Gem2Rpm::VERSION = "0.9.0"
10
+ Gem2Rpm::VERSION = "0.9.1"
11
+
12
+ class Exception < RuntimeError; end
13
+ class DownloadUrlError < Exception; end
11
14
 
12
15
  def self.find_download_url(name, version)
13
16
  dep = Gem::Dependency.new(name, "=#{version}")
14
17
  fetcher = Gem2Rpm::SpecFetcher.new(Gem::SpecFetcher.fetcher)
15
- dummy, source = fetcher.spec_for_dependency(dep, false).first.first
16
18
 
17
- download_path = source.uri
19
+ spec_and_source, errors = fetcher.spec_for_dependency(dep, false)
20
+
21
+ raise DownloadUrlError.new(errors.first.error.message) unless errors.empty?
22
+
23
+ spec, source = spec_and_source.first
24
+
25
+ if source && source.uri
26
+ download_path = source.uri.to_s
27
+ download_path += "gems/"
28
+ end
18
29
 
19
- download_path += "gems/" if download_path.to_s != ""
20
- return download_path
30
+ download_path
21
31
  end
22
32
 
23
33
  def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout,
@@ -30,9 +40,9 @@ module Gem2Rpm
30
40
  unless local
31
41
  begin
32
42
  download_path = find_download_url(spec.name, spec.version)
33
- rescue Gem::Exception => e
43
+ rescue DownloadUrlError => e
34
44
  $stderr.puts "Warning: Could not retrieve full URL for #{spec.name}\nWarning: Edit the specfile and enter the full download URL as 'Source0' manually"
35
- $stderr.puts "#{e.inspect}"
45
+ $stderr.puts e.inspect
36
46
  end
37
47
  end
38
48
  template = ERB.new(template, 0, '-')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem2rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-22 00:00:00.000000000 Z
13
+ date: 2013-04-23 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: ! " Generate source rpms and rpm spec files from a Ruby Gem. \n The
16
16
  spec file tries to follow the gem as closely as possible\n"