gemsolver 0.3.2 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0335c7499e2693fa2c1c31a52190cc831c7984a8ff1f886087654d6f60b975d2
4
- data.tar.gz: 14979b0f9777245fb48d34db12c8b0778fa405d3c70bf2ab9d66277724d18b9a
3
+ metadata.gz: 0bb30e6c5b40d1bf743528953779d51c42817890066fd48688835e028298d45b
4
+ data.tar.gz: b70eb78ad9a36c6a23c363e1848a3ffc65d077d69010bda03c0ff6f401e87e1c
5
5
  SHA512:
6
- metadata.gz: b8b19d65eaf2c1763107bc6258ca6f852f6c00aa13320fbac8894056d1c6d0243bf2e472e93c8079f819bee8847274bf80ec9231b967c201fc12e5c7f08aedb0
7
- data.tar.gz: abaef1dc023acb8470b1522e1e98409a4839633a0e5d9539a89bdd42a24e0d49f286429fdcc555c6971588725f4995c2fb5c63e1509e479bbb8dff55e0ae61f6
6
+ metadata.gz: 99f181eeb9b03a29812bffa46798decaf9fa0cd551d10e0537192df7e736e373e286cfc86447a26783471b342fc21417b792ce98d0f8d2149048c03e62a940a6
7
+ data.tar.gz: 396551a8f43982445b8a75786e1bd29e3dc5b1ccf94782b8bf6647710412405109a296647ae3ab0b67e1e51ed593d02b468117275fa360b2de0eb87d2e6ddd0f
@@ -4,7 +4,7 @@ module GemSolver
4
4
  #
5
5
  class GemNotFoundError < StandardError
6
6
  def initialize(name)
7
- super("The '#{name}' gem could not be found on '#{@@host}'")
7
+ super("The '#{name}' gem could not be found on '#{GemSolver.host}'")
8
8
  end
9
9
  end
10
10
 
@@ -52,18 +52,27 @@ module GemSolver
52
52
  return if raw.blank?
53
53
 
54
54
  parts = raw.split(" ", 2)
55
- @version = Gem::Version.new(parts[0])
55
+ @version = Gem::Version.new(sanitize_version(parts[0]))
56
56
  parts.drop(1)
57
57
  end
58
58
 
59
+ def sanitize_version(version)
60
+ # TODO: Not sure how rubygems.org handles this,
61
+ # but there are definitely info files out there with characters
62
+ # that throw errors when trying to pass them to Gem::Version.new.
63
+ # This might be good enough, since it's really only used for
64
+ # comparing versions, but it's probably worth looking into.
65
+ version.gsub("_", ".").gsub("+", ".")
66
+ end
67
+
59
68
  def parse_dependencies(parts)
60
69
  return if parts.blank?
61
70
 
62
- parts = parts.split(",")
63
- parts.flatten! if parts.length == 1
71
+ parts = parts[0].split(",")
64
72
  @dependencies = []
65
73
  parts.each do |p|
66
74
  name, requirements = p.split(":")
75
+ requirements = requirements.split("&")
67
76
  @dependencies << Gem::Dependency.new(name, requirements)
68
77
  end
69
78
  end
@@ -1,3 +1,3 @@
1
1
  module GemSolver
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemsolver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rory Dudley