store_base_sti_class 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Appraisals +90 -54
- data/Gemfile +1 -9
- data/Gemfile.lock +27 -60
- data/LICENSE.txt +1 -1
- data/Rakefile +0 -24
- data/debug.log +13 -0
- data/gemfiles/rails_3.0.10.gemfile +2 -4
- data/gemfiles/rails_3.0.11.gemfile +2 -4
- data/gemfiles/rails_3.0.12.gemfile +2 -4
- data/gemfiles/rails_3.0.13.gemfile +2 -4
- data/gemfiles/rails_3.0.14.gemfile +2 -4
- data/gemfiles/rails_3.0.15.gemfile +2 -4
- data/gemfiles/rails_3.0.16.gemfile +2 -4
- data/gemfiles/rails_3.0.17.gemfile +2 -4
- data/gemfiles/rails_3.0.18.gemfile +2 -4
- data/gemfiles/rails_3.0.19.gemfile +2 -4
- data/gemfiles/rails_3.0.20.gemfile +8 -0
- data/gemfiles/rails_3.0.5.gemfile +2 -4
- data/gemfiles/rails_3.0.5.gemfile.lock +7 -44
- data/gemfiles/rails_3.0.6.gemfile +2 -4
- data/gemfiles/rails_3.0.7.gemfile +2 -4
- data/gemfiles/rails_3.0.8.gemfile +2 -4
- data/gemfiles/rails_3.0.9.gemfile +2 -4
- data/gemfiles/rails_3.1.0.gemfile +2 -4
- data/gemfiles/rails_3.1.10.gemfile +2 -4
- data/gemfiles/rails_3.1.11.gemfile +8 -0
- data/gemfiles/rails_3.1.12.gemfile +8 -0
- data/gemfiles/rails_3.1.2.gemfile +2 -4
- data/gemfiles/rails_3.1.3.gemfile +2 -4
- data/gemfiles/rails_3.1.4.gemfile +2 -4
- data/gemfiles/rails_3.1.5.gemfile +2 -4
- data/gemfiles/rails_3.1.6.gemfile +2 -4
- data/gemfiles/rails_3.1.7.gemfile +2 -4
- data/gemfiles/rails_3.1.8.gemfile +2 -4
- data/gemfiles/rails_3.1.9.gemfile +2 -4
- data/gemfiles/rails_3.2.0.gemfile +2 -4
- data/gemfiles/rails_3.2.1.gemfile +2 -4
- data/gemfiles/rails_3.2.10.gemfile +2 -4
- data/gemfiles/rails_3.2.11.gemfile +2 -4
- data/gemfiles/rails_3.2.12.gemfile +2 -4
- data/gemfiles/rails_3.2.13.gemfile +2 -4
- data/gemfiles/rails_3.2.14.gemfile +2 -4
- data/gemfiles/rails_3.2.15.gemfile +8 -0
- data/gemfiles/rails_3.2.16.gemfile +8 -0
- data/gemfiles/rails_3.2.17.gemfile +8 -0
- data/gemfiles/rails_3.2.18.gemfile +8 -0
- data/gemfiles/rails_3.2.19.gemfile +8 -0
- data/gemfiles/rails_3.2.2.gemfile +2 -4
- data/gemfiles/rails_3.2.20.gemfile +8 -0
- data/gemfiles/rails_3.2.21.gemfile +8 -0
- data/gemfiles/rails_3.2.3.gemfile +2 -4
- data/gemfiles/rails_3.2.4.gemfile +2 -4
- data/gemfiles/rails_3.2.5.gemfile +2 -4
- data/gemfiles/rails_3.2.6.gemfile +2 -4
- data/gemfiles/rails_3.2.7.gemfile +2 -4
- data/gemfiles/rails_3.2.8.gemfile +2 -4
- data/gemfiles/rails_3.2.9.gemfile +2 -4
- data/gemfiles/rails_4.0.0.gemfile +3 -5
- data/gemfiles/rails_4.0.1.gemfile +3 -5
- data/gemfiles/rails_4.0.10.gemfile +3 -5
- data/gemfiles/rails_4.0.11.1.gemfile +8 -0
- data/gemfiles/rails_4.0.11.gemfile +3 -5
- data/gemfiles/rails_4.0.12.gemfile +3 -5
- data/gemfiles/rails_4.0.13.gemfile +8 -0
- data/gemfiles/rails_4.0.2.gemfile +3 -5
- data/gemfiles/rails_4.0.3.gemfile +3 -5
- data/gemfiles/rails_4.0.4.gemfile +3 -5
- data/gemfiles/rails_4.0.5.gemfile +3 -5
- data/gemfiles/rails_4.0.6.gemfile +3 -5
- data/gemfiles/rails_4.0.7.gemfile +3 -5
- data/gemfiles/rails_4.0.8.gemfile +3 -5
- data/gemfiles/rails_4.0.9.gemfile +3 -5
- data/gemfiles/rails_4.1.0.gemfile +2 -4
- data/gemfiles/rails_4.1.1.gemfile +8 -0
- data/gemfiles/rails_4.1.2.gemfile +8 -0
- data/gemfiles/rails_4.1.3.gemfile +8 -0
- data/gemfiles/rails_4.1.4.gemfile +8 -0
- data/gemfiles/rails_4.1.5.gemfile +8 -0
- data/gemfiles/rails_4.1.6.gemfile +8 -0
- data/gemfiles/rails_4.1.7.1.gemfile +8 -0
- data/gemfiles/rails_4.1.7.gemfile +8 -0
- data/gemfiles/rails_4.1.8.gemfile +8 -0
- data/gemfiles/rails_4.1.9.gemfile +8 -0
- data/lib/store_base_sti_class/version.rb +3 -0
- data/lib/store_base_sti_class.rb +3 -0
- data/lib/store_base_sti_class_for_4_1.rb +142 -138
- data/store_base_sti_class.gemspec +11 -153
- data/{db/storebasestiname_unittest.sql → storebasestiname_unittest.sql} +0 -0
- metadata +32 -70
- data/.travis.yml +0 -61
- data/VERSION +0 -1
- data/gemfiles/rails_3.0.10.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.11.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.12.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.13.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.14.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.15.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.16.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.17.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.18.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.19.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.6.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.7.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.8.gemfile.lock +0 -79
- data/gemfiles/rails_3.0.9.gemfile.lock +0 -79
- data/gemfiles/rails_3.1.0.gemfile.lock +0 -82
- data/gemfiles/rails_3.1.10.gemfile.lock +0 -47
- data/gemfiles/rails_3.1.2.gemfile.lock +0 -80
- data/gemfiles/rails_3.1.3.gemfile.lock +0 -80
- data/gemfiles/rails_3.1.4.gemfile.lock +0 -80
- data/gemfiles/rails_3.1.5.gemfile.lock +0 -47
- data/gemfiles/rails_3.1.6.gemfile.lock +0 -47
- data/gemfiles/rails_3.1.7.gemfile.lock +0 -47
- data/gemfiles/rails_3.1.8.gemfile.lock +0 -47
- data/gemfiles/rails_3.1.9.gemfile.lock +0 -47
- data/gemfiles/rails_3.2.0.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.1.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.10.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.11.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.12.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.13.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.14.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.2.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.3.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.4.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.5.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.6.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.7.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.8.gemfile.lock +0 -80
- data/gemfiles/rails_3.2.9.gemfile.lock +0 -80
- data/gemfiles/rails_4.0.0.gemfile.lock +0 -84
- data/gemfiles/rails_4.0.1.gemfile.lock +0 -84
- data/test/connection.rb +0 -22
- data/test/helper.rb +0 -63
- data/test/models.rb +0 -48
- data/test/schema.rb +0 -35
- data/test/test_store_base_sti_class.rb +0 -161
data/test/schema.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
|
3
|
-
# Please keep these create table statements in alphabetical order
|
4
|
-
# unless the ordering matters. In which case, define them below
|
5
|
-
|
6
|
-
create_table :authors, :force => true do |t|
|
7
|
-
t.string :name, :null => false
|
8
|
-
end
|
9
|
-
|
10
|
-
create_table :posts, :force => true do |t|
|
11
|
-
t.string :type
|
12
|
-
|
13
|
-
t.integer :author_id
|
14
|
-
t.string :title, :null => false
|
15
|
-
t.text :body, :null => false
|
16
|
-
t.integer :taggings_count, :default => 0
|
17
|
-
end
|
18
|
-
|
19
|
-
create_table :taggings, :force => true do |t|
|
20
|
-
t.integer :tag_id
|
21
|
-
|
22
|
-
t.integer :polytag_id
|
23
|
-
t.string :polytag_type
|
24
|
-
|
25
|
-
t.string :taggable_type
|
26
|
-
t.integer :taggable_id
|
27
|
-
end
|
28
|
-
|
29
|
-
create_table :tags, :force => true do |t|
|
30
|
-
t.string :type
|
31
|
-
t.string :name
|
32
|
-
t.integer :taggings_count, :default => 0
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
@@ -1,161 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
require 'active_record/test_case'
|
3
|
-
|
4
|
-
class TestStoreBaseStiClass < ActiveRecord::TestCase
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@old_store_base_sti_class = ActiveRecord::Base.store_base_sti_class
|
8
|
-
ActiveRecord::Base.store_base_sti_class = false
|
9
|
-
|
10
|
-
@thinking_post = SpecialPost.create(:title => 'Thinking', :body => "the body")
|
11
|
-
@misc_tag = Tag.create(:name => 'Misc')
|
12
|
-
end
|
13
|
-
|
14
|
-
def teardown
|
15
|
-
ActiveRecord::Base.store_base_sti_class = @old_store_base_sti_class
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_polymorphic_belongs_to_assignment_with_inheritance
|
19
|
-
# should update when assigning a saved record
|
20
|
-
tagging = Tagging.new
|
21
|
-
post = SpecialPost.create(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
22
|
-
tagging.taggable = post
|
23
|
-
assert_equal post.id, tagging.taggable_id
|
24
|
-
assert_equal "SpecialPost", tagging.taggable_type
|
25
|
-
|
26
|
-
# should update when assigning a new record
|
27
|
-
tagging = Tagging.new
|
28
|
-
post = SpecialPost.new(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
29
|
-
tagging.taggable = post
|
30
|
-
assert_nil tagging.taggable_id
|
31
|
-
assert_equal "SpecialPost", tagging.taggable_type
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_polymorphic_has_many_create_model_with_inheritance
|
35
|
-
post = SpecialPost.new(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
36
|
-
|
37
|
-
tagging = @misc_tag.taggings.create(:taggable => post)
|
38
|
-
assert_equal "SpecialPost", tagging.taggable_type
|
39
|
-
|
40
|
-
post.reload
|
41
|
-
assert_equal [tagging], post.taggings
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_polymorphic_has_one_create_model_with_inheritance
|
45
|
-
post = SpecialPost.new(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
46
|
-
|
47
|
-
tagging = @misc_tag.create_tagging(:taggable => post)
|
48
|
-
assert_equal "SpecialPost", tagging.taggable_type
|
49
|
-
|
50
|
-
post.reload
|
51
|
-
assert_equal tagging, post.tagging
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_polymorphic_has_many_create_via_association
|
55
|
-
tag = SpecialTag.create!(:name => 'Special')
|
56
|
-
tagging = tag.polytaggings.create!
|
57
|
-
|
58
|
-
assert_equal "SpecialTag", tagging.polytag_type
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_polymorphic_has_many_through_create_via_association
|
62
|
-
tag = SpecialTag.create!(:name => 'Special')
|
63
|
-
post = tag.polytagged_posts.create!(:title => 'To Be or Not To Be?', :body => "the body")
|
64
|
-
|
65
|
-
assert_equal "SpecialTag", tag.polytaggings.first.polytag_type
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_include_polymorphic_has_one
|
69
|
-
post = SpecialPost.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
70
|
-
tagging = post.create_tagging(:tag => @misc_tag)
|
71
|
-
|
72
|
-
post = Post.find(post.id, :include => :tagging)
|
73
|
-
assert_equal tagging, assert_no_queries { post.tagging }
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_include_polymorphic_has_many
|
77
|
-
tag = SpecialTag.create!(:name => 'Special')
|
78
|
-
tag.polytagged_posts << SpecialPost.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
79
|
-
tag.polytagged_posts << @thinking_post
|
80
|
-
|
81
|
-
tag = Tag.find(tag.id, :include => :polytaggings)
|
82
|
-
assert_equal 2, assert_no_queries { tag.polytaggings.length }
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_include_polymorphic_has_many_through
|
86
|
-
tag = SpecialTag.create!(:name => 'Special')
|
87
|
-
tag.polytagged_posts << SpecialPost.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
88
|
-
tag.polytagged_posts << @thinking_post
|
89
|
-
|
90
|
-
tag = Tag.find(tag.id, :include => :polytagged_posts)
|
91
|
-
assert_equal 2, assert_no_queries { tag.polytagged_posts.length }
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_join_polymorhic_has_many
|
95
|
-
tag = SpecialTag.create!(:name => 'Special')
|
96
|
-
tag.polytagged_posts << SpecialPost.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
97
|
-
tag.polytagged_posts << @thinking_post
|
98
|
-
|
99
|
-
assert Tag.find_by_id(tag.id, :joins => :polytaggings, :conditions => [ 'taggings.id = ?', tag.polytaggings.first.id ])
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_join_polymorhic_has_many_through
|
103
|
-
tag = SpecialTag.create!(:name => 'Special')
|
104
|
-
tag.polytagged_posts << SpecialPost.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
105
|
-
tag.polytagged_posts << @thinking_post
|
106
|
-
|
107
|
-
assert Tag.find_by_id(tag.id, :joins => :polytagged_posts, :conditions => [ 'posts.id = ?', tag.polytaggings.first.taggable_id ])
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_has_many_through_polymorphic_has_one
|
111
|
-
author = Author.create!(:name => 'Bob')
|
112
|
-
post = Post.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :author => author, :body => "the body")
|
113
|
-
special_post = SpecialPost.create!(:title => 'IBM Watson''s Jeopardy play', :author => author, :body => "the body")
|
114
|
-
special_tag = SpecialTag.create!(:name => 'SpecialGeneral')
|
115
|
-
|
116
|
-
taggings = [ post.taggings.create(:tag => special_tag), special_post.taggings.create(:tag => special_tag) ]
|
117
|
-
assert_equal taggings.sort_by(&:id), author.tagging.sort_by(&:id)
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_has_many_polymorphic_with_source_type
|
121
|
-
tag = SpecialTag.create!(:name => 'Special')
|
122
|
-
tag.polytagged_posts << SpecialPost.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :body => "the body")
|
123
|
-
tag.polytagged_posts << @thinking_post
|
124
|
-
|
125
|
-
tag.save!
|
126
|
-
tag.reload
|
127
|
-
|
128
|
-
tag = Tag.find(tag.id)
|
129
|
-
assert_equal 2, tag.polytagged_posts.length
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_polymorphic_has_many_through_with_double_sti_on_join_model
|
133
|
-
tag = SpecialTag.create!(:name => 'Special')
|
134
|
-
post = @thinking_post
|
135
|
-
|
136
|
-
tag.polytagged_posts << post
|
137
|
-
|
138
|
-
|
139
|
-
tag.reload
|
140
|
-
|
141
|
-
assert_equal 1, tag.polytaggings.length
|
142
|
-
|
143
|
-
tagging = tag.polytaggings.first
|
144
|
-
|
145
|
-
assert_equal 'SpecialTag', tagging.polytag_type
|
146
|
-
assert_equal 'SpecialPost', tagging.taggable_type
|
147
|
-
|
148
|
-
assert_equal tag, tagging.polytag
|
149
|
-
assert_equal post, tagging.taggable
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_finder_sql_is_supported
|
153
|
-
author = Author.create!(:name => 'Bob')
|
154
|
-
post = Post.create!(:title => 'Budget Forecasts Bigger 2011 Deficit', :author => author, :body => "the body")
|
155
|
-
special_tag = Tag.create!(:name => 'SpecialGeneral')
|
156
|
-
post.taggings.create(:tag => special_tag)
|
157
|
-
|
158
|
-
assert_equal [author], special_tag.authors
|
159
|
-
end
|
160
|
-
|
161
|
-
end
|