test-gem-push 2016.08.08.21.25.04 → 2016.08.09.01.57.58

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 +17 -27
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8dcd1e6edbe496b2c4c814d8f80b3396d940114
4
- data.tar.gz: 3c5c6d686dadc27e8a8a13f103cabeec9040201c
3
+ metadata.gz: d03a116aaf14aef6d7bd7c852ad3c922999b1e40
4
+ data.tar.gz: c326f0ac32582b8141cd5dbb7abde81a0eafe5f6
5
5
  SHA512:
6
- metadata.gz: d91a04f0a44580ae69e891459d0f38258a22bbac928cc20a09be3cab1ea13ebd896cc7ba689f3c42ec49e47521472bae25e36534cc5ee324bc797c14951fc4ba
7
- data.tar.gz: e1db2059f105ec42f432645a423c08ee805eee491a40b3e6cbe2baaf006f76b8c89e21d15952c1151190369fc4e834e60a4e50efc8b80f198a490634fc40cd10
6
+ metadata.gz: f9f70a7a66d8466d12b55885d0d99454736298f412bc2a3e1b56694f91950aa389f1dea1aac7e1f0d6efba0c9669bab2fc3c7dbfb95f20f6bcd70156f38e1a07
7
+ data.tar.gz: d25ce89c37a60604c68e10f8a335743e4ee58a2f2c3ad436172db54e4b6bbbba83cf2c80ce5f556de0f35eb1d1d2394dfd8e0d56b4e4cd948958813275b98176
data/app.rb CHANGED
@@ -19,14 +19,13 @@ rescue
19
19
  raise "Failed to load JSON from #{host}/#{path}:\n#{json}"
20
20
  end
21
21
 
22
- def push!(name, version, platform)
22
+ def push!(name, version)
23
23
  spec = Gem::Specification.new do |s|
24
24
  s.name = name
25
25
  s.version = version
26
26
  s.authors = ['example@example.com']
27
27
  s.files = [__FILE__]
28
28
  s.summary = 'test'
29
- s.platform = platform
30
29
  s.required_ruby_version = '~> 2.0'
31
30
  s.required_rubygems_version = '~> 2.6'
32
31
  s.add_dependency 'foo', '~> 1.0'
@@ -49,56 +48,47 @@ def get_info(name)
49
48
  Net::HTTP.get('index.rubygems.org', "/info/#{name}")
50
49
  end
51
50
 
52
- get '/' do
53
- # halt 401, 'token does not match' unless TOKEN == params['token']
51
+ post '/' do
52
+ halt 401, 'token does not match' unless TOKEN == params['token']
54
53
 
55
54
  version = params.fetch('version') { Time.now.strftime('%Y.%m.%d.%H.%M.%S') }
56
55
  gem_name = ENV.fetch('GEM_NAME')
57
- platform = params.fetch('platform') { 'ruby' }
58
- platform_string = platform == 'ruby' ? '' : "-#{platform}"
59
56
 
60
57
  dependency_endpoint = get_dependency_api(gem_name)
61
58
  versions = get_versions.lines
62
59
  info = get_info(gem_name).lines
63
60
 
64
- if dependency_endpoint.find { |g| g['version'] == version && g['platform'] == platform }
65
- halt 422, "#{gem_name}-#{version}-#{platform} already was pushed"
61
+ if dependency_endpoint.find { |g| g['version'] == version }
62
+ halt 422, "#{gem_name}-#{version} already was pushed"
66
63
  end
67
64
 
68
65
  begin
69
- push!(gem_name, version, platform)
66
+ push!(gem_name, version)
70
67
  rescue Gem::SystemExitException
71
68
  halt 500, "Failed to push: #{$ERROR_INFO}"
72
69
  end
73
70
 
74
- errors = []
75
-
76
71
  new_gem = get_dependency_api(gem_name) - dependency_endpoint
77
72
  case new_gem.size
78
- when 0 then errors << 'gem not added to dependency API'
73
+ when 0 then halt 404, 'gem not added to dependency API'
79
74
  when 1
80
- unless new_gem.first.values_at('name', 'number', 'platform', 'dependencies') == [gem_name, version, platform, [['foo', '~> 1.0']]]
81
- errors << "wrong gem added: #{new_gem}"
75
+ unless new_gem.first.values_at('name', 'number', 'platform', 'dependencies') == [gem_name, version, 'ruby', [['foo', '~> 1.0']]]
76
+ halt 404, "wrong gem added: #{new_gem}"
82
77
  end
83
- else errors << "too many new gems added: #{new_gem}"
78
+ else halt 404, "too many new gems added: #{new_gem}"
84
79
  end
85
80
 
86
- new_versions = get_versions.lines - versions
87
- unless new_versions.find { |l| l.start_with?("#{gem_name} #{version}#{platform_string}") }
88
- errors << "gem not added to versions file, new versions: #{new_versions}"
81
+ new_versions = versions - get_versions.lines
82
+ unless new_versions.find { |l| l.start_with?("#{gem_name} #{version}") }
83
+ halt 404, 'gem not added to versions file'
89
84
  end
90
85
 
91
86
  new_info = get_info(gem_name).lines - info
92
87
  case new_info.size
93
- when 0 then errors << 'gem not added to info'
94
- when 1 then errors << "wrong gem added: #{new_info}" unless new_info.first =~ /^#{version}#{platform_string} /
95
- else errors << "too many new gems added: #{new_info}"
88
+ when 0 then halt 404, 'gem not added to dependency API'
89
+ when 1 then halt 404, "wrong gem added: #{new_info}" unless new_info =~ /^#{version} /
90
+ else halt 404, "too many new gems added: #{new_info}"
96
91
  end
97
92
 
98
- if errors.empty?
99
- halt "successfully pushed #{gem_name}-#{version}-#{platform}"
100
- else
101
- errors.unshift "failed to push #{gem_name}-#{version}-#{platform}"
102
- halt 404, errors.join("\n")
103
- end
93
+ halt "successfully pushed #{gem_name}-#{version}"
104
94
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-gem-push
3
3
  version: !ruby/object:Gem::Version
4
- version: 2016.08.08.21.25.04
4
+ version: 2016.08.09.01.57.58
5
5
  platform: ruby
6
6
  authors:
7
7
  - example@example.com
@@ -50,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
50
50
  version: '2.6'
51
51
  requirements: []
52
52
  rubyforge_project:
53
- rubygems_version: 2.6.4
53
+ rubygems_version: 2.4.5.1
54
54
  signing_key:
55
55
  specification_version: 4
56
56
  summary: test