test-gem-push 2016.08.08.21.15.21 → 2016.08.08.21.22.23

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 +13 -10
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa4cc0cec6fc9a7667a863eca45373b01ce995c4
4
- data.tar.gz: 13d4cd67b2aeaeada722e73b166c79ba155f9e42
3
+ metadata.gz: d28bcbb625530c2b0505bd2ba3f95907a3685e8d
4
+ data.tar.gz: 104d92e260b50029ec04a8610138d47abefe17f4
5
5
  SHA512:
6
- metadata.gz: 663091e4be50ba7c03382334048ccafe488027016bc9d3567ca53d33d96afc05a9be95f0587502ebd627a138e27e03f9322407b791ef3e2321bbff779773836a
7
- data.tar.gz: d13c51cf33dfd721bb824bd5cd8313826a3e3b89cdae85c7f21658f7bf0611cc8772cc88f4df731ac471fe1adc7ab6d7a67ec76625d3eb890c45c216abef4195
6
+ metadata.gz: d4b06706199920321300fa633f1103d4de91aba84dd206ae983ba932e9043d3f8424bf5d52fa3f65d50506a715a1521d073620788579436fcbceb4553b096121
7
+ data.tar.gz: 52803f32cd520c3f5d1735107c378140d70f1b87adecef1471aa8bb44ab4f65dfb47af4459cc1063f7f1bfecbfaea8e124544de6dd80bd8ba6fde1ec49d8d0e0
data/app.rb CHANGED
@@ -19,13 +19,14 @@ rescue
19
19
  raise "Failed to load JSON from #{host}/#{path}:\n#{json}"
20
20
  end
21
21
 
22
- def push!(name, version)
22
+ def push!(name, version, platform)
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
29
30
  s.required_ruby_version = '~> 2.0'
30
31
  s.required_rubygems_version = '~> 2.6'
31
32
  s.add_dependency 'foo', '~> 1.0'
@@ -53,17 +54,19 @@ get '/' do
53
54
 
54
55
  version = params.fetch('version') { Time.now.strftime('%Y.%m.%d.%H.%M.%S') }
55
56
  gem_name = ENV.fetch('GEM_NAME')
57
+ platform = params.fetch('platform') { 'ruby' }
58
+ platform_string = platform == 'ruby' ? '' : "-#{platform}"
56
59
 
57
60
  dependency_endpoint = get_dependency_api(gem_name)
58
61
  versions = get_versions.lines
59
62
  info = get_info(gem_name).lines
60
63
 
61
- if dependency_endpoint.find { |g| g['version'] == version }
62
- halt 422, "#{gem_name}-#{version} already was pushed"
64
+ if dependency_endpoint.find { |g| g['version'] == version && g['platform'] == platform }
65
+ halt 422, "#{gem_name}-#{version}-#{platform} already was pushed"
63
66
  end
64
67
 
65
68
  begin
66
- push!(gem_name, version)
69
+ push!(gem_name, version, platform)
67
70
  rescue Gem::SystemExitException
68
71
  halt 500, "Failed to push: #{$ERROR_INFO}"
69
72
  end
@@ -74,28 +77,28 @@ get '/' do
74
77
  case new_gem.size
75
78
  when 0 then errors << 'gem not added to dependency API'
76
79
  when 1
77
- unless new_gem.first.values_at('name', 'number', 'platform', 'dependencies') == [gem_name, version, 'ruby', [['foo', '~> 1.0']]]
80
+ unless new_gem.first.values_at('name', 'number', 'platform', 'dependencies') == [gem_name, version, platform, [['foo', '~> 1.0']]]
78
81
  errors << "wrong gem added: #{new_gem}"
79
82
  end
80
83
  else errors << "too many new gems added: #{new_gem}"
81
84
  end
82
85
 
83
- new_versions = get_versions.lines - versions
84
- unless new_versions.find { |l| l.start_with?("#{gem_name} #{version}") }
86
+ new_versions = get_versions.lines.tap{|n| warn "new: #{n}"} - versions.tap{|o| warn "old: #{o}"}
87
+ unless new_versions.find { |l| l.start_with?("#{gem_name} #{version}#{platform_string}") }
85
88
  errors << "gem not added to versions file, new versions: #{new_versions}"
86
89
  end
87
90
 
88
91
  new_info = get_info(gem_name).lines - info
89
92
  case new_info.size
90
93
  when 0 then errors << 'gem not added to info'
91
- when 1 then errors << "wrong gem added: #{new_info}" unless new_info.first =~ /^#{version} /
94
+ when 1 then errors << "wrong gem added: #{new_info}" unless new_info.first =~ /^#{version}#{platform_string} /
92
95
  else errors << "too many new gems added: #{new_info}"
93
96
  end
94
97
 
95
98
  if errors.empty?
96
- halt "successfully pushed #{gem_name}-#{version}"
99
+ halt "successfully pushed #{gem_name}-#{version}-#{platform}"
97
100
  else
98
- errors.unshift "failed to push #{gem_name}-#{version}"
101
+ errors.unshift "failed to push #{gem_name}-#{version}-#{platform}"
99
102
  halt 404, errors.join("\n")
100
103
  end
101
104
  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.15.21
4
+ version: 2016.08.08.21.22.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - example@example.com