Skip to content

Commit

Permalink
Moving dependencies to versions instead of on rubygems
Browse files Browse the repository at this point in the history
  • Loading branch information
qrush committed Jun 1, 2009
1 parent 04cb46f commit a98ad14
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 13 deletions.
2 changes: 1 addition & 1 deletion app/models/dependency.rb
@@ -1,5 +1,5 @@
class Dependency < ActiveRecord::Base
belongs_to :rubygem
belongs_to :version
validates_presence_of :name, :requirement

end
7 changes: 5 additions & 2 deletions app/models/rubygem.rb
Expand Up @@ -4,7 +4,6 @@ class Rubygem < ActiveRecord::Base

belongs_to :user
has_many :versions, :dependent => :destroy
has_many :dependencies, :dependent => :destroy

validates_presence_of :name
validates_uniqueness_of :name
Expand All @@ -31,6 +30,10 @@ def current_version
versions.last
end

def current_dependencies
current_version.dependencies
end

def with_version
"#{name} (#{current_version})"
end
Expand All @@ -51,7 +54,7 @@ def build
:number => self.spec.original_name.gsub("#{self.spec.name}-", ''))

self.spec.dependencies.each do |dependency|
self.dependencies.build(
version.dependencies.build(
:name => dependency.name,
:requirement => dependency.requirements_list.to_s)
end
Expand Down
1 change: 1 addition & 0 deletions app/models/version.rb
@@ -1,6 +1,7 @@
class Version < ActiveRecord::Base
include Pacecar
belongs_to :rubygem
has_many :dependencies, :dependent => :destroy

def to_s
number
Expand Down
11 changes: 11 additions & 0 deletions db/migrate/20090601003056_move_dependencies_to_versions.rb
@@ -0,0 +1,11 @@
class MoveDependenciesToVersions < ActiveRecord::Migration
def self.up
remove_column :dependencies, :rubygem_id
add_column :dependencies, :version_id, :integer
end

def self.down
remove_column :dependencies, :version_id
add_column :dependencies, :rubygem_id, :integer
end
end
4 changes: 2 additions & 2 deletions db/schema.rb
Expand Up @@ -9,14 +9,14 @@
#
# It's strongly recommended to check this file into your version control system.

ActiveRecord::Schema.define(:version => 20090530162119) do
ActiveRecord::Schema.define(:version => 20090601003056) do

create_table "dependencies", :force => true do |t|
t.string "name"
t.integer "rubygem_id"
t.string "requirement"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "version_id"
end

create_table "rubygems", :force => true do |t|
Expand Down
1 change: 0 additions & 1 deletion test/factories/dependency.rb
@@ -1,5 +1,4 @@
Factory.define :dependency do |dependency|
dependency.name { 'string' }
dependency.rubygem_id { 1 }
dependency.requirement { 'string' }
end
2 changes: 1 addition & 1 deletion test/unit/dependency_test.rb
@@ -1,7 +1,7 @@
require File.dirname(__FILE__) + '/../test_helper'

class DependencyTest < ActiveSupport::TestCase
should_belong_to :rubygem
should_belong_to :version
should_validate_presence_of :name, :requirement

should "be valid with factory" do
Expand Down
11 changes: 5 additions & 6 deletions test/unit/rubygem_test.rb
Expand Up @@ -8,7 +8,6 @@ class RubygemTest < ActiveSupport::TestCase

should_belong_to :user
should_have_many :versions, :dependent => :destroy
should_have_many :dependencies, :dependent => :destroy
should_validate_uniqueness_of :name

should "return name for #to_s" do
Expand All @@ -34,13 +33,13 @@ class RubygemTest < ActiveSupport::TestCase
@rubygem.spec = spec
@rubygem.build

assert_equal 2, @rubygem.dependencies.size
assert_equal 2, @rubygem.current_dependencies.size

assert_equal "liquid", @rubygem.dependencies.first.name
assert_equal ">= 1.9.0", @rubygem.dependencies.first.requirement
assert_equal "liquid", @rubygem.current_dependencies.first.name
assert_equal ">= 1.9.0", @rubygem.current_dependencies.first.requirement

assert_equal "open4", @rubygem.dependencies.last.name
assert_equal "= 0.9.6", @rubygem.dependencies.last.requirement
assert_equal "open4", @rubygem.current_dependencies.last.name
assert_equal "= 0.9.6", @rubygem.current_dependencies.last.requirement
end

should "include platform when saving version" do
Expand Down
1 change: 1 addition & 0 deletions test/unit/version_test.rb
Expand Up @@ -2,6 +2,7 @@

class VersionTest < ActiveSupport::TestCase
should_belong_to :rubygem
should_have_many :dependencies, :dependent => :destroy

context "with a version" do
setup do
Expand Down

0 comments on commit a98ad14

Please sign in to comment.