segiddins-test-gem 2016.06.09.23.29.26 → 2016.06.09.23.53.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/app.rb +16 -5
  3. metadata +20 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 42f23719747dbe98c250eb70ded7be8755f17901
4
- data.tar.gz: 180284de2c441309736e638d9168e11ddccb7cdf
3
+ metadata.gz: f1d0cd249246782ae0169269f7c808290c9969f3
4
+ data.tar.gz: 4460fcf13bd1bcc3ebb776fe5f65d59d45ce5e23
5
5
  SHA512:
6
- metadata.gz: e2ce307fd7def484d173749eedbdc07098f4a979b0ea14b66bf7905de33982e613cc93ced3c5a1cb0f590a6140faae222a666dc6cc6a87d4d9b2e2caef861627
7
- data.tar.gz: 67c80114d5042d1264056bd42e8ab856a7fe38315b1caa2c0ec8d8c9e717ebc1dd0bae8a27c520dcc58238575d3d8fb6271775a8b1587f9907ffc3aca9f39e03
6
+ metadata.gz: 63d852ea87be9c28c4be384bdd2e1067a4299d43bfaa3b0789cf478a4e077c8f330d0a34a54abba3e25b46a9cfa7fef8c215f8ee64eec75c8bcaa692cc9f3d6d
7
+ data.tar.gz: d13e8bae00a9ef1462205edd13073bf1271ffed7ef532c19d2b790f53f1b14e0358fac88b7c722e33a7d44a49476f12f54737a0934d6ee23e63b04401c0c5dc2
data/app.rb CHANGED
@@ -25,15 +25,18 @@ def push!(name, version)
25
25
  s.authors = ['example@example.com']
26
26
  s.files = [__FILE__]
27
27
  s.summary = 'test'
28
+ s.required_ruby_version = '~> 2.0'
29
+ s.required_rubygems_version = '~> 2.6'
30
+ s.add_dependency 'foo', '~> 1.0'
28
31
  end
29
32
  file = Gem::Package.build(spec)
30
- p Gem::Commands::PushCommand.new.send_gem(file)
33
+ Gem::Commands::PushCommand.new.send_gem(file)
31
34
  ensure
32
35
  File.delete(file)
33
36
  end
34
37
 
35
38
  def get_dependency_api(gem_name)
36
- get_json('index.rubygems.org', "/api/v1/dependencies.json?gems=#{gem_name}")
39
+ get_json('bundler.rubygems.org', "/api/v1/dependencies.json?gems=#{gem_name}")
37
40
  end
38
41
 
39
42
  def get_versions
@@ -54,12 +57,20 @@ get "/" do
54
57
  versions = get_versions.lines
55
58
  info = get_info(gem_name).lines
56
59
 
57
- push!(gem_name, version)
60
+ if dependency_endpoint.find { |g| g['version'] == version }
61
+ halt 422, "#{gem_name}-#{version} already was pushed"
62
+ end
63
+
64
+ begin
65
+ push!(gem_name, version)
66
+ rescue Gem::SystemExitException
67
+ halt 500, "Failed to push: #{$!}"
68
+ end
58
69
 
59
70
  new_gem = get_dependency_api(gem_name) - dependency_endpoint
60
71
  case new_gem.size
61
72
  when 0 then halt 404, "gem not added to dependency API"
62
- when 1 then halt 404, "wrong gem added: #{new_gem}" unless new_gem.values_at('name', 'version') == [gem_name, version]
73
+ when 1 then halt 404, "wrong gem added: #{new_gem}" unless new_gem.first.values_at('name', 'version') == [gem_name, version]
63
74
  else halt 404, "too many new gems added: #{new_gem}"
64
75
  end
65
76
 
@@ -71,7 +82,7 @@ get "/" do
71
82
  new_info = get_info(gem_name).lines - info
72
83
  case new_info.size
73
84
  when 0 then halt 404, "gem not added to dependency API"
74
- when 1 then halt 404, "wrong gem added: #{new_info}" unless new_info =~ /^#{gem_name} #{version}/
85
+ when 1 then halt 404, "wrong gem added: #{new_info}" unless new_info =~ /^#{version} /
75
86
  else halt 404, "too many new gems added: #{new_info}"
76
87
  end
77
88
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: segiddins-test-gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 2016.06.09.23.29.26
4
+ version: 2016.06.09.23.53.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - example@example.com
@@ -9,7 +9,21 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-06-10 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: foo
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
13
27
  description:
14
28
  email:
15
29
  executables: []
@@ -26,14 +40,14 @@ require_paths:
26
40
  - lib
27
41
  required_ruby_version: !ruby/object:Gem::Requirement
28
42
  requirements:
29
- - - ">="
43
+ - - "~>"
30
44
  - !ruby/object:Gem::Version
31
- version: '0'
45
+ version: '2.0'
32
46
  required_rubygems_version: !ruby/object:Gem::Requirement
33
47
  requirements:
34
- - - ">="
48
+ - - "~>"
35
49
  - !ruby/object:Gem::Version
36
- version: '0'
50
+ version: '2.6'
37
51
  requirements: []
38
52
  rubyforge_project:
39
53
  rubygems_version: 2.6.4