test-gem-push 2016.08.08.21.15.21 → 2016.08.08.21.22.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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