From 6daab5bba8ec9798222df34aa644313d08fe2cad Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 13 Jul 2011 11:45:17 -0400 Subject: [PATCH 1/7] Patch existing find_or_initialize_version_from_spec to make size an optional parameter. --- app/models/pusher.rb | 2 +- app/models/rubygem.rb | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/models/pusher.rb b/app/models/pusher.rb index f24b3d7340d..5cf331e5d4f 100644 --- a/app/models/pusher.rb +++ b/app/models/pusher.rb @@ -46,7 +46,7 @@ def pull_spec def find @rubygem = Rubygem.find_or_initialize_by_name(spec.name) - @version = @rubygem.find_or_initialize_version_from_spec(spec) + @version = @rubygem.find_or_initialize_version_from_spec(spec, size) if @version.new_record? true diff --git a/app/models/rubygem.rb b/app/models/rubygem.rb index d9cb2f09d31..993666f0abf 100644 --- a/app/models/rubygem.rb +++ b/app/models/rubygem.rb @@ -230,9 +230,10 @@ def yank!(version) end end - def find_or_initialize_version_from_spec(spec) - version = self.versions.find_or_initialize_by_number_and_platform(spec.version.to_s, spec.original_platform.to_s) + def find_or_initialize_version_from_spec(spec, size = nil) + version = self.versions.find_or_initialize_by_number_and_platform(spec.version.to_s, spec.original_platform.to_s) version.rubygem = self + version.size = size if size version end From a963feb82c3571ddf7eb0927092e5d47710b151f Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 13 Jul 2011 11:04:00 -0400 Subject: [PATCH 2/7] size_in_kilobytes -> number_to_human_size --- app/models/version.rb | 4 ++++ app/views/versions/_version.html.erb | 3 +++ features/push.feature | 1 + 3 files changed, 8 insertions(+) diff --git a/app/models/version.rb b/app/models/version.rb index bf0e0f17d32..d28a6c1ef04 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -132,6 +132,10 @@ def yanked? !indexed end + def sized? + size? + end + def info [ description, summary, "This rubygem does not have a description or summary." ].detect(&:present?) end diff --git a/app/views/versions/_version.html.erb b/app/views/versions/_version.html.erb index 45f434a820d..20a3efea2ba 100644 --- a/app/views/versions/_version.html.erb +++ b/app/views/versions/_version.html.erb @@ -4,6 +4,9 @@ <% if version.platformed? %> <%= version.platform %> <% end %> + <% if version.sized? %> + (<%= number_to_human_size(version.size) %>) + <% end %> <% if version.yanked? -%> <%= t '.yanked' %> <% end -%> diff --git a/features/push.feature b/features/push.feature index 6b23fa85f57..96f216ccbae 100644 --- a/features/push.feature +++ b/features/push.feature @@ -11,6 +11,7 @@ Feature: Push Gems And I visit the gem page for "RGem" Then I should see "RGem" And I should see "1.2.3" + And I should see "(3 KB)" Scenario: User pushes existing version of existing gem Given I am signed up as "email@person.com" From 761ae0d53ea9bd9b8d843e02422e5a2ee5453d54 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 13 Jul 2011 10:46:42 -0400 Subject: [PATCH 3/7] Change to cleaner syntax. --- app/models/version.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/models/version.rb b/app/models/version.rb index d28a6c1ef04..d60df61226d 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -136,6 +136,10 @@ def sized? size? end + def size_in_kilobytes + size.bytes / 1.kilobyte + end + def info [ description, summary, "This rubygem does not have a description or summary." ].detect(&:present?) end From 71403ba55ece559ee0968059c1b010dad5df3432 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 10 Jul 2011 02:24:36 -0400 Subject: [PATCH 4/7] Add size to versions. --- app/models/pusher.rb | 15 ++++++++++++--- app/models/rubygem.rb | 10 ++++++++-- app/models/version.rb | 2 +- app/views/versions/_version.html.erb | 2 +- db/migrate/20110710054014_add_size_to_version.rb | 9 +++++++++ db/schema.rb | 2 +- lib/tasks/gemcutter.rake | 2 +- public/stylesheets/screen.css | 2 +- test/factories/version.rb | 14 ++++++++++++++ test/unit/pusher_test.rb | 4 ++++ test/unit/version_test.rb | 4 ++++ 11 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20110710054014_add_size_to_version.rb create mode 100644 test/factories/version.rb diff --git a/app/models/pusher.rb b/app/models/pusher.rb index 5cf331e5d4f..560c85cc4f2 100644 --- a/app/models/pusher.rb +++ b/app/models/pusher.rb @@ -1,5 +1,5 @@ class Pusher - attr_reader :user, :spec, :message, :code, :rubygem, :body, :version, :version_id + attr_reader :user, :spec, :message, :code, :rubygem, :body, :version, :version_id, :size def initialize(user, body, host_with_port=nil) @user = user @@ -9,7 +9,7 @@ def initialize(user, body, host_with_port=nil) end def process - pull_spec && find && authorize && save + pull_spec && size_gem && find && authorize && save end def authorize @@ -28,6 +28,15 @@ def save end end + def size_gem + if body + @size = body.size + true + else + false + end + end + def pull_spec Gem::Package.open body, "r", nil do |pkg| @spec = pkg.metadata @@ -46,7 +55,7 @@ def pull_spec def find @rubygem = Rubygem.find_or_initialize_by_name(spec.name) - @version = @rubygem.find_or_initialize_version_from_spec(spec, size) + @version = @rubygem.find_or_initialize_version_from_spec_and_size(spec, size) if @version.new_record? true diff --git a/app/models/rubygem.rb b/app/models/rubygem.rb index 993666f0abf..da509d1e3b1 100644 --- a/app/models/rubygem.rb +++ b/app/models/rubygem.rb @@ -230,8 +230,14 @@ def yank!(version) end end - def find_or_initialize_version_from_spec(spec, size = nil) - version = self.versions.find_or_initialize_by_number_and_platform(spec.version.to_s, spec.original_platform.to_s) + def find_or_initialize_version_from_spec_and_size(spec, size) + version = find_or_initialize_version_from_spec(spec) + version.size = size + version + end + + def find_or_initialize_version_from_spec(spec) + version = self.versions.find_or_initialize_by_number_and_platform(spec.version.to_s, spec.original_platform.to_s) version.rubygem = self version.size = size if size version diff --git a/app/models/version.rb b/app/models/version.rb index d60df61226d..9722e05399b 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -133,7 +133,7 @@ def yanked? end def sized? - size? + size.present? end def size_in_kilobytes diff --git a/app/views/versions/_version.html.erb b/app/views/versions/_version.html.erb index 20a3efea2ba..d9fcd3cc5e1 100644 --- a/app/views/versions/_version.html.erb +++ b/app/views/versions/_version.html.erb @@ -5,7 +5,7 @@ <%= version.platform %> <% end %> <% if version.sized? %> - (<%= number_to_human_size(version.size) %>) + (<%= version.size_in_kilobytes %>Kb) <% end %> <% if version.yanked? -%> <%= t '.yanked' %> diff --git a/db/migrate/20110710054014_add_size_to_version.rb b/db/migrate/20110710054014_add_size_to_version.rb new file mode 100644 index 00000000000..24ee93b094f --- /dev/null +++ b/db/migrate/20110710054014_add_size_to_version.rb @@ -0,0 +1,9 @@ +class AddSizeToVersion < ActiveRecord::Migration + def self.up + add_column :versions, :size, :integer + end + + def self.down + remove_column :versions, :size + end +end diff --git a/db/schema.rb b/db/schema.rb index d273b7fca8b..eef2a3616d2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -12,7 +12,6 @@ # It's strongly recommended to check this file into your version control system. ActiveRecord::Schema.define(:version => 20120916165331) do - create_table "announcements", :force => true do |t| t.text "body" t.datetime "created_at", :null => false @@ -143,6 +142,7 @@ t.integer "position" t.boolean "latest" t.string "full_name" + t.integer "size" end add_index "versions", ["built_at"], :name => "index_versions_on_built_at" diff --git a/lib/tasks/gemcutter.rake b/lib/tasks/gemcutter.rake index cb279015985..9e421df76f4 100644 --- a/lib/tasks/gemcutter.rake +++ b/lib/tasks/gemcutter.rake @@ -21,7 +21,7 @@ namespace :gemcutter do puts "Processing #{path}" cutter = Pusher.new(nil, File.open(path)) - cutter.pull_spec and cutter.find and cutter.save + cutter.pull_spec and cutter.size_gem and cutter.find and cutter.save end end end diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css index b2a10642232..cae91155ccc 100644 --- a/public/stylesheets/screen.css +++ b/public/stylesheets/screen.css @@ -744,7 +744,7 @@ table { text-decoration: underline; } -.main .info .meta .versions .platform { +.main .info .meta .versions .platform .size { color: #B0A58C; font-size: 0.85em; margin-left: 4px; diff --git a/test/factories/version.rb b/test/factories/version.rb new file mode 100644 index 00000000000..1e3a9b97dc3 --- /dev/null +++ b/test/factories/version.rb @@ -0,0 +1,14 @@ +Factory.define :version do |version| + version.authors { ['Joe User'] } + version.description { 'Some awesome gem' } + version.number { Factory.next(:version_number) } + version.built_at { 1.day.ago } + version.platform { "ruby" } + version.association :rubygem + version.indexed true + version.size 1024 +end + +Factory.sequence :version_number do |n| + "0.0.#{n}" +end diff --git a/test/unit/pusher_test.rb b/test/unit/pusher_test.rb index 57361f0a469..cc7f19dcde1 100644 --- a/test/unit/pusher_test.rb +++ b/test/unit/pusher_test.rb @@ -38,6 +38,7 @@ class PusherTest < ActiveSupport::TestCase context "processing incoming gems" do should "work normally when things go well" do mock(@cutter).pull_spec { true } + mock(@cutter).size_gem { true } mock(@cutter).find { true } stub(@cutter).authorize { true } mock(@cutter).save @@ -47,6 +48,7 @@ class PusherTest < ActiveSupport::TestCase should "not attempt to find rubygem if spec can't be pulled" do mock(@cutter).pull_spec { false } + mock(@cutter).size_gem.never mock(@cutter).find.never mock(@cutter).authorize.never mock(@cutter).save.never @@ -55,6 +57,7 @@ class PusherTest < ActiveSupport::TestCase should "not attempt to authorize if not found" do mock(@cutter).pull_spec { true } + mock(@cutter).size_gem { true } mock(@cutter).find { nil } mock(@cutter).authorize.never mock(@cutter).save.never @@ -64,6 +67,7 @@ class PusherTest < ActiveSupport::TestCase should "not attempt to save if not authorized" do mock(@cutter).pull_spec { true } + mock(@cutter).size_gem { true } mock(@cutter).find { true } mock(@cutter).authorize { false } mock(@cutter).save.never diff --git a/test/unit/version_test.rb b/test/unit/version_test.rb index f751eee7866..87c0823ee70 100644 --- a/test/unit/version_test.rb +++ b/test/unit/version_test.rb @@ -150,6 +150,10 @@ class VersionTest < ActiveSupport::TestCase assert ! @version.platformed? end + should "return the size in kilobytes" do + assert (@version.size.bytes / 1.kilobyte) == @version.size_in_kilobytes + end + should "save full name" do assert_equal "#{@version.rubygem.name}-#{@version.number}", @version.full_name assert_equal @version.number, @version.slug From 3c08db44dd0b7fe602aea0f87d6b357eadddb790 Mon Sep 17 00:00:00 2001 From: Jon Guymon Date: Sat, 3 Nov 2012 19:50:34 -0700 Subject: [PATCH 5/7] brought Chris's patch up to date and added a script to calculate sizes for existing gems --- app/models/rubygem.rb | 1 - app/views/versions/_version.html.erb | 2 +- script/add_sizes_to_versions | 28 ++++++++++++++++++++++++++++ test/factories.rb | 1 + test/factories/version.rb | 14 -------------- test/unit/rubygem_test.rb | 3 ++- 6 files changed, 32 insertions(+), 17 deletions(-) create mode 100644 script/add_sizes_to_versions delete mode 100644 test/factories/version.rb diff --git a/app/models/rubygem.rb b/app/models/rubygem.rb index da509d1e3b1..13a70aef8a8 100644 --- a/app/models/rubygem.rb +++ b/app/models/rubygem.rb @@ -239,7 +239,6 @@ def find_or_initialize_version_from_spec_and_size(spec, size) def find_or_initialize_version_from_spec(spec) version = self.versions.find_or_initialize_by_number_and_platform(spec.version.to_s, spec.original_platform.to_s) version.rubygem = self - version.size = size if size version end diff --git a/app/views/versions/_version.html.erb b/app/views/versions/_version.html.erb index d9fcd3cc5e1..20a3efea2ba 100644 --- a/app/views/versions/_version.html.erb +++ b/app/views/versions/_version.html.erb @@ -5,7 +5,7 @@ <%= version.platform %> <% end %> <% if version.sized? %> - (<%= version.size_in_kilobytes %>Kb) + (<%= number_to_human_size(version.size) %>) <% end %> <% if version.yanked? -%> <%= t '.yanked' %> diff --git a/script/add_sizes_to_versions b/script/add_sizes_to_versions new file mode 100644 index 00000000000..88a6fca3d40 --- /dev/null +++ b/script/add_sizes_to_versions @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby + +ENV['RAILS_ENV'] ||= 'production' +require_relative '../config/environment' + +def fog + $fog || Fog::Storage.new(:provider => 'Local', + :local_root => Pusher.server_path('gems')) +end + +Version.find_in_batches do |versions| + versions.each do |version| + print "sizing #{version.full_name}: " + file = fog.directories.get($rubygems_config[:s3_bucket] + '/gems') \ + .files.get("#{version.full_name}.gem") + if file + begin + size = file.content_length.bytes + version.update_attribute(:size, size) + print "succeeded (#{size})\n" + rescue => e + print "failed - #{e.message}" + end + else + print "failed - file not found" + end + end +end diff --git a/test/factories.rb b/test/factories.rb index 7d2f607a9c5..1785c94478a 100644 --- a/test/factories.rb +++ b/test/factories.rb @@ -81,6 +81,7 @@ number platform "ruby" rubygem + size 1024 end factory :version_history do diff --git a/test/factories/version.rb b/test/factories/version.rb deleted file mode 100644 index 1e3a9b97dc3..00000000000 --- a/test/factories/version.rb +++ /dev/null @@ -1,14 +0,0 @@ -Factory.define :version do |version| - version.authors { ['Joe User'] } - version.description { 'Some awesome gem' } - version.number { Factory.next(:version_number) } - version.built_at { 1.day.ago } - version.platform { "ruby" } - version.association :rubygem - version.indexed true - version.size 1024 -end - -Factory.sequence :version_number do |n| - "0.0.#{n}" -end diff --git a/test/unit/rubygem_test.rb b/test/unit/rubygem_test.rb index 2b3a0ee2173..b9bcce7de3a 100644 --- a/test/unit/rubygem_test.rb +++ b/test/unit/rubygem_test.rb @@ -548,7 +548,7 @@ class RubygemTest < ActiveSupport::TestCase Rubygem.create(:name => "rake") @rubygem = Rubygem.new(:name => @specification.name) - @version = @rubygem.find_or_initialize_version_from_spec(@specification) + @version = @rubygem.find_or_initialize_version_from_spec_and_size(@specification, 5) end should "save the gem" do @@ -561,6 +561,7 @@ class RubygemTest < ActiveSupport::TestCase assert_equal 1, @rubygem.versions.count assert_equal 1, @rubygem.versions_count assert_equal 2, @version.dependencies.count + assert_equal 5, @version.size assert Rubygem.exists?(:name => 'thoughtbot-shoulda') assert Rubygem.exists?(:name => 'rake') end From f905d4c07addb93d75f55f805d6dfcc863ae0d10 Mon Sep 17 00:00:00 2001 From: Jon Guymon Date: Wed, 7 Nov 2012 23:35:05 -0800 Subject: [PATCH 6/7] cleaned up Version#size interface --- app/models/version.rb | 8 ++------ app/views/versions/_version.html.erb | 4 +--- test/unit/version_test.rb | 9 +++++---- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/models/version.rb b/app/models/version.rb index 9722e05399b..a6f55fb9255 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -132,12 +132,8 @@ def yanked? !indexed end - def sized? - size.present? - end - - def size_in_kilobytes - size.bytes / 1.kilobyte + def size + read_attribute(:size) || 'N/A' end def info diff --git a/app/views/versions/_version.html.erb b/app/views/versions/_version.html.erb index 20a3efea2ba..6e91655bf68 100644 --- a/app/views/versions/_version.html.erb +++ b/app/views/versions/_version.html.erb @@ -4,9 +4,7 @@ <% if version.platformed? %> <%= version.platform %> <% end %> - <% if version.sized? %> - (<%= number_to_human_size(version.size) %>) - <% end %> + (<%= number_to_human_size(version.size) %>) <% if version.yanked? -%> <%= t '.yanked' %> <% end -%> diff --git a/test/unit/version_test.rb b/test/unit/version_test.rb index 87c0823ee70..728c4bae7bc 100644 --- a/test/unit/version_test.rb +++ b/test/unit/version_test.rb @@ -150,10 +150,6 @@ class VersionTest < ActiveSupport::TestCase assert ! @version.platformed? end - should "return the size in kilobytes" do - assert (@version.size.bytes / 1.kilobyte) == @version.size_in_kilobytes - end - should "save full name" do assert_equal "#{@version.rubygem.name}-#{@version.number}", @version.full_name assert_equal @version.number, @version.slug @@ -266,6 +262,11 @@ class VersionTest < ActiveSupport::TestCase assert_equal "This rubygem does not have a description or summary.", @version.info end + should "give 'N/A' for size when size not available" do + @version.size = nil + assert_equal 'N/A', @version.size + end + context "when yanked" do setup do @version.yank! From ebbc2b629fa66ecee35a8a48a19a194d7059959b Mon Sep 17 00:00:00 2001 From: Jon Guymon Date: Fri, 9 Nov 2012 00:40:03 -0800 Subject: [PATCH 7/7] smoothed out size interfaces in Pusher and Rubygem --- app/models/pusher.rb | 15 +++--------- app/models/rubygem.rb | 6 ----- test/unit/pusher_test.rb | 51 +++++++++++++++++++++++++++++++++------ test/unit/rubygem_test.rb | 3 +-- 4 files changed, 48 insertions(+), 27 deletions(-) diff --git a/app/models/pusher.rb b/app/models/pusher.rb index 560c85cc4f2..5b8de08d6a9 100644 --- a/app/models/pusher.rb +++ b/app/models/pusher.rb @@ -9,7 +9,7 @@ def initialize(user, body, host_with_port=nil) end def process - pull_spec && size_gem && find && authorize && save + pull_spec && find && authorize && save end def authorize @@ -28,15 +28,6 @@ def save end end - def size_gem - if body - @size = body.size - true - else - false - end - end - def pull_spec Gem::Package.open body, "r", nil do |pkg| @spec = pkg.metadata @@ -55,7 +46,8 @@ def pull_spec def find @rubygem = Rubygem.find_or_initialize_by_name(spec.name) - @version = @rubygem.find_or_initialize_version_from_spec_and_size(spec, size) + @version = @rubygem.find_or_initialize_version_from_spec(spec) + @version.size ||= size if @version.new_record? true @@ -88,6 +80,7 @@ def notify(message, code) def update rubygem.update_attributes_from_gem_specification!(version, spec) rubygem.create_ownership(user) unless version.new_record? + @size = body.size if body true rescue ActiveRecord::RecordInvalid, ActiveRecord::Rollback false diff --git a/app/models/rubygem.rb b/app/models/rubygem.rb index 13a70aef8a8..d9cb2f09d31 100644 --- a/app/models/rubygem.rb +++ b/app/models/rubygem.rb @@ -230,12 +230,6 @@ def yank!(version) end end - def find_or_initialize_version_from_spec_and_size(spec, size) - version = find_or_initialize_version_from_spec(spec) - version.size = size - version - end - def find_or_initialize_version_from_spec(spec) version = self.versions.find_or_initialize_by_number_and_platform(spec.version.to_s, spec.original_platform.to_s) version.rubygem = self diff --git a/test/unit/pusher_test.rb b/test/unit/pusher_test.rb index cc7f19dcde1..fc23d6fe2b7 100644 --- a/test/unit/pusher_test.rb +++ b/test/unit/pusher_test.rb @@ -38,7 +38,6 @@ class PusherTest < ActiveSupport::TestCase context "processing incoming gems" do should "work normally when things go well" do mock(@cutter).pull_spec { true } - mock(@cutter).size_gem { true } mock(@cutter).find { true } stub(@cutter).authorize { true } mock(@cutter).save @@ -48,7 +47,6 @@ class PusherTest < ActiveSupport::TestCase should "not attempt to find rubygem if spec can't be pulled" do mock(@cutter).pull_spec { false } - mock(@cutter).size_gem.never mock(@cutter).find.never mock(@cutter).authorize.never mock(@cutter).save.never @@ -57,7 +55,6 @@ class PusherTest < ActiveSupport::TestCase should "not attempt to authorize if not found" do mock(@cutter).pull_spec { true } - mock(@cutter).size_gem { true } mock(@cutter).find { nil } mock(@cutter).authorize.never mock(@cutter).save.never @@ -67,7 +64,6 @@ class PusherTest < ActiveSupport::TestCase should "not attempt to save if not authorized" do mock(@cutter).pull_spec { true } - mock(@cutter).size_gem { true } mock(@cutter).find { true } mock(@cutter).authorize { false } mock(@cutter).save.never @@ -84,19 +80,31 @@ class PusherTest < ActiveSupport::TestCase assert_equal @cutter.code, 422 end - context "finding rubygem" do - should "initialize new gem if one does not exist" do + context "initialize new gem with find if one does not exist" do + setup do spec = "spec" stub(spec).name { "some name" } stub(spec).version { "1.3.3.7" } stub(spec).original_platform { "ruby" } stub(@cutter).spec { spec } + stub(@cutter).size { 5 } @cutter.find + end - assert_not_nil @cutter.rubygem - assert_not_nil @cutter.version + should "set rubygem" do + assert_equal 'some name', @cutter.rubygem.name end + should "set version" do + assert_equal '1.3.3.7', @cutter.version.number + end + + should "set gem version size" do + assert_equal 5, @cutter.version.size + end + end + + context "finding an existing gem" do should "bring up existing gem with matching spec" do @rubygem = create(:rubygem) spec = "spec" @@ -145,5 +153,32 @@ class PusherTest < ActiveSupport::TestCase end end end + + context "successfully saving a gemcutter" do + setup do + @rubygem = create(:rubygem) + stub(@cutter).rubygem { @rubygem } + create(:version, :rubygem => @rubygem, :number => '0.1.1') + stub(@cutter).version { @rubygem.versions[0] } + stub(@rubygem).update_attributes_from_gem_specification! + any_instance_of(Indexer) {|i| stub(i).write_gem } + @cutter.save + end + + should "update rubygem attributes" do + assert_received(@rubygem) do |rubygem| + rubygem.update_attributes_from_gem_specification!(@cutter.version, + @cutter.spec) + end + end + + should "set gem file size" do + assert_equal @gem.size, @cutter.size + end + + should "set success code" do + assert_equal 200, @cutter.code + end + end end end diff --git a/test/unit/rubygem_test.rb b/test/unit/rubygem_test.rb index b9bcce7de3a..2b3a0ee2173 100644 --- a/test/unit/rubygem_test.rb +++ b/test/unit/rubygem_test.rb @@ -548,7 +548,7 @@ class RubygemTest < ActiveSupport::TestCase Rubygem.create(:name => "rake") @rubygem = Rubygem.new(:name => @specification.name) - @version = @rubygem.find_or_initialize_version_from_spec_and_size(@specification, 5) + @version = @rubygem.find_or_initialize_version_from_spec(@specification) end should "save the gem" do @@ -561,7 +561,6 @@ class RubygemTest < ActiveSupport::TestCase assert_equal 1, @rubygem.versions.count assert_equal 1, @rubygem.versions_count assert_equal 2, @version.dependencies.count - assert_equal 5, @version.size assert Rubygem.exists?(:name => 'thoughtbot-shoulda') assert Rubygem.exists?(:name => 'rake') end