Sutto-reversible_data 0.0.5 → 0.1.0

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.
@@ -62,7 +62,7 @@ module ReversibleData
62
62
  return if Object.const_defined?(@model_name)
63
63
  @model = Class.new(ActiveRecord::Base)
64
64
  @model.class_eval(&@model_definition) unless @model_definition.nil?
65
- @model.blueprint(&@blueprint) unless @blueprint.nil?
65
+ @model.blueprint(&@blueprint) unless @blueprint.nil? || !@model.respond_to?(:blueprint)
66
66
  Object.const_set(@model_name, @model)
67
67
  end
68
68
 
@@ -76,9 +76,25 @@ class TableTest < Test::Unit::TestCase
76
76
  assert !defined?(::User)
77
77
  end
78
78
 
79
- should 'let you call up! to create the table and the model'
79
+ should 'let you call up! to create the table and the model' do
80
+ assert !defined?(::User)
81
+ assert !ActiveRecord::Base.connection.table_exists?(:users)
82
+ table = ReversibleData::Table.new(:user) { |t| t.string :name }
83
+ table.up!
84
+ assert defined?(::User)
85
+ assert ActiveRecord::Base.connection.table_exists?(:users)
86
+ assert User < ActiveRecord::Base
87
+ end
80
88
 
81
- should 'let you call down! to clean up'
89
+ should 'let you call down! to clean up' do
90
+ table = ReversibleData::Table.new(:user) { |t| t.string :name }
91
+ table.up!
92
+ assert ActiveRecord::Base.connection.table_exists?(:users)
93
+ assert User < ActiveRecord::Base
94
+ table.down!
95
+ assert !ActiveRecord::Base.connection.table_exists?(:users)
96
+ assert !defined?(::User)
97
+ end
82
98
 
83
99
  should 'default to skipping model if the constant exists' do
84
100
  ::Awesome = true
@@ -107,7 +123,18 @@ class TableTest < Test::Unit::TestCase
107
123
  table.remove_model
108
124
  end
109
125
 
110
- should 'let you specify a blueprint for machinist'
126
+ should 'let not call the blueprint if none is specified' do
127
+ table = ReversibleData::Table.new(:user) { |t| t.string :name }
128
+ table.up!
129
+ assert !User.blueprint_called
130
+ end
131
+
132
+ should 'call the blueprint if present' do
133
+ table = ReversibleData::Table.new(:user) { |t| t.string :name }
134
+ table.blueprint {}
135
+ table.up!
136
+ assert User.blueprint_called
137
+ end
111
138
 
112
139
  end
113
140
  end
@@ -7,4 +7,19 @@ require 'reversible_data'
7
7
 
8
8
  class Test::Unit::TestCase
9
9
  include RR::Adapters::TestUnit
10
+ end
11
+
12
+ module MockBlueprints
13
+
14
+ def blueprint(&blk)
15
+ # Use this as a kind of hacky way to ensure it is called.
16
+ self.blueprint_called = true
17
+ end
18
+
19
+ end
20
+
21
+ ActiveRecord::Base.class_eval do
22
+ class_inheritable_accessor :blueprint_called
23
+ self.blueprint_called = false
24
+ extend MockBlueprints
10
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Sutto-reversible_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darcy Laycock
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-06 00:00:00 -07:00
12
+ date: 2009-09-12 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -33,7 +33,6 @@ files:
33
33
  - test/test_helper.rb
34
34
  has_rdoc: false
35
35
  homepage: http://sutto.net/
36
- licenses:
37
36
  post_install_message:
38
37
  rdoc_options: []
39
38
 
@@ -54,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
53
  requirements: []
55
54
 
56
55
  rubyforge_project:
57
- rubygems_version: 1.3.5
56
+ rubygems_version: 1.2.0
58
57
  signing_key:
59
58
  specification_version: 3
60
59
  summary: Reversible Data provides migration-like functionality for tests etc - All with temporary models.