where_exists 0.9.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5779b5deb8c1a1c9bcc4685a636f537a0771352a
4
- data.tar.gz: 40e44d5113bd916717ac8d2e2e8aa9a8c621075d
3
+ metadata.gz: b7c13e66fd0af529abc8be142a7f93a19bd711f3
4
+ data.tar.gz: ade84d5322c10bbac3e23d09eb8db75bfacb4c45
5
5
  SHA512:
6
- metadata.gz: a00a2b3f908457473c4347071d19e83c0f7e0b258ee3355ef02b3f07801a066382de7cb4b58d878eaee257a480b1589f0703041804cb61490443d135765ca35a
7
- data.tar.gz: b00c7dc5fed3bef71965296ad320a81d8d12d9f161d6cd2e4b8d98ccf72bdb659e146e31da74fc0c3c70dfb15cb3dc90eb293d78b849466993272071980ebc13
6
+ metadata.gz: 742c790c391f2ca6ce2104c912bc3ec957f20cc60d58c7342e3075e166012ec7c88de7336d10180e4c9bd67d84e7115a828c05d419c8a2c5cc8a06bc88a34192
7
+ data.tar.gz: 919c4d93e016f39c49cadf80d123e3301305c186cec36cc0e6f38cf95cbe6f9e03233960a093b5d61c4b579ef8973f9e0351632eb1dcd6806522defd40e3e61d
@@ -1,3 +1,3 @@
1
1
  module WhereExists
2
- VERSION = "0.9.2"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -8,25 +8,25 @@ ActiveRecord::Migration.create_table :second_polymorphic_entities, :force => tru
8
8
  t.string :name
9
9
  end
10
10
 
11
- ActiveRecord::Migration.create_table :polymorphic_children, :force => true do |t|
11
+ ActiveRecord::Migration.create_table :belongs_to_polymorphic_children, :force => true do |t|
12
12
  t.integer :polymorphic_entity_id
13
13
  t.string :polymorphic_entity_type
14
14
  t.string :name
15
15
  end
16
16
 
17
- class PolymorphicChild < ActiveRecord::Base
17
+ class BelongsToPolymorphicChild < ActiveRecord::Base
18
18
  belongs_to :polymorphic_entity, polymorphic: true
19
19
  end
20
20
 
21
21
  class FirstPolymorphicEntity < ActiveRecord::Base
22
- has_many :children, as: :polymorphic_entity, class_name: PolymorphicChild
22
+ has_many :children, as: :polymorphic_entity, class_name: BelongsToPolymorphicChild
23
23
  end
24
24
 
25
25
  class SecondPolymorphicEntity < ActiveRecord::Base
26
- has_many :children, as: :polymorphic_entity, class_name: PolymorphicChild
26
+ has_many :children, as: :polymorphic_entity, class_name: BelongsToPolymorphicChild
27
27
  end
28
28
 
29
- class BelongsToPolymorphicTest < Minitest::Unit::TestCase
29
+ class BelongsToPolymorphicTest < Minitest::Test
30
30
  def setup
31
31
  ActiveRecord::Base.descendants.each(&:delete_all)
32
32
  end
@@ -36,12 +36,12 @@ class BelongsToPolymorphicTest < Minitest::Unit::TestCase
36
36
  second_entity = SecondPolymorphicEntity.create!
37
37
  second_entity.update_column(:id, first_entity.id + 1)
38
38
 
39
- first_child = PolymorphicChild.create!(polymorphic_entity: first_entity)
40
- second_child = PolymorphicChild.create!(polymorphic_entity: second_entity)
41
- really_orphaned_child = PolymorphicChild.create!(polymorphic_entity_type: 'FirstPolymorphicEntity', polymorphic_entity_id: second_entity.id)
42
- another_really_orphaned_child = PolymorphicChild.create!(polymorphic_entity_type: 'SecondPolymorphicEntity', polymorphic_entity_id: first_entity.id)
39
+ first_child = BelongsToPolymorphicChild.create!(polymorphic_entity: first_entity)
40
+ second_child = BelongsToPolymorphicChild.create!(polymorphic_entity: second_entity)
41
+ _really_orphaned_child = BelongsToPolymorphicChild.create!(polymorphic_entity_type: 'FirstPolymorphicEntity', polymorphic_entity_id: second_entity.id)
42
+ _another_really_orphaned_child = BelongsToPolymorphicChild.create!(polymorphic_entity_type: 'SecondPolymorphicEntity', polymorphic_entity_id: first_entity.id)
43
43
 
44
- result = PolymorphicChild.where_exists(:polymorphic_entity)
44
+ result = BelongsToPolymorphicChild.where_exists(:polymorphic_entity)
45
45
 
46
46
  assert_equal 2, result.length
47
47
  assert_equal [first_child, second_child].map(&:id).sort, result.map(&:id).sort
@@ -52,12 +52,12 @@ class BelongsToPolymorphicTest < Minitest::Unit::TestCase
52
52
  second_entity = SecondPolymorphicEntity.create!
53
53
  second_entity.update_column(:id, first_entity.id + 1)
54
54
 
55
- first_child = PolymorphicChild.create!(polymorphic_entity: first_entity)
56
- orphaned_child = PolymorphicChild.create!(polymorphic_entity_id: second_entity.id, polymorphic_entity_type: 'FirstPolymorphicEntity')
55
+ _first_child = BelongsToPolymorphicChild.create!(polymorphic_entity: first_entity)
56
+ orphaned_child = BelongsToPolymorphicChild.create!(polymorphic_entity_id: second_entity.id, polymorphic_entity_type: 'FirstPolymorphicEntity')
57
57
 
58
- result = PolymorphicChild.where_not_exists(:polymorphic_entity)
58
+ result = BelongsToPolymorphicChild.where_not_exists(:polymorphic_entity)
59
59
 
60
60
  assert_equal 1, result.length
61
61
  assert_equal orphaned_child.id, result.first.id
62
62
  end
63
- end
63
+ end
@@ -1,49 +1,49 @@
1
1
  require 'test_helper'
2
2
 
3
- ActiveRecord::Migration.create_table :simple_entities, :force => true do |t|
3
+ ActiveRecord::Migration.create_table :belongs_to_simple_entities, :force => true do |t|
4
4
  t.string :name
5
5
  t.integer :my_id
6
6
  end
7
7
 
8
- ActiveRecord::Migration.create_table :simple_entity_children, :force => true do |t|
8
+ ActiveRecord::Migration.create_table :belongs_to_simple_entity_children, :force => true do |t|
9
9
  t.integer :parent_id
10
10
  t.string :name
11
11
  end
12
12
 
13
- class SimpleEntity < ActiveRecord::Base
14
- has_many :simple_entity_children, primary_key: :my_id, foreign_key: :parent_id
13
+ class BelongsToSimpleEntity < ActiveRecord::Base
14
+ has_many :simple_entity_children, primary_key: :my_id, foreign_key: :parent_id, class_name: "BelongsToSimpleEntityChild"
15
15
  end
16
16
 
17
- class SimpleEntityChild < ActiveRecord::Base
18
- belongs_to :simple_entity, foreign_key: :parent_id, primary_key: :my_id
17
+ class BelongsToSimpleEntityChild < ActiveRecord::Base
18
+ belongs_to :simple_entity, foreign_key: :parent_id, primary_key: :my_id, class_name: "BelongsToSimpleEntity"
19
19
  end
20
20
 
21
- class BelongsToTest < Minitest::Unit::TestCase
21
+ class BelongsToTest < Minitest::Test
22
22
  def setup
23
23
  ActiveRecord::Base.descendants.each(&:delete_all)
24
24
  end
25
25
 
26
26
  def test_nil_foreign_key
27
- entity = SimpleEntity.create!(my_id: 999)
27
+ _entity = BelongsToSimpleEntity.create!(my_id: 999)
28
28
 
29
- child = SimpleEntityChild.create!(parent_id: 999)
30
- orphaned_child = SimpleEntityChild.create!(parent_id: nil)
29
+ child = BelongsToSimpleEntityChild.create!(parent_id: 999)
30
+ _orphaned_child = BelongsToSimpleEntityChild.create!(parent_id: nil)
31
31
 
32
- result = SimpleEntityChild.where_exists(:simple_entity)
32
+ result = BelongsToSimpleEntityChild.where_exists(:simple_entity)
33
33
 
34
34
  assert_equal 1, result.length
35
35
  assert_equal result.first.id, child.id
36
36
  end
37
37
 
38
38
  def test_not_existing_foreign_object
39
- entity = SimpleEntity.create!(my_id: 999)
39
+ _entity = BelongsToSimpleEntity.create!(my_id: 999)
40
40
 
41
- child = SimpleEntityChild.create!(parent_id: 999)
42
- orphaned_child = SimpleEntityChild.create!(parent_id: 500)
41
+ child = BelongsToSimpleEntityChild.create!(parent_id: 999)
42
+ _orphaned_child = BelongsToSimpleEntityChild.create!(parent_id: 500)
43
43
 
44
- result = SimpleEntityChild.where_exists(:simple_entity)
44
+ result = BelongsToSimpleEntityChild.where_exists(:simple_entity)
45
45
 
46
46
  assert_equal 1, result.length
47
47
  assert_equal result.first.id, child.id
48
48
  end
49
- end
49
+ end
data/test/db/test.db CHANGED
Binary file
@@ -29,7 +29,7 @@ class Connection < ActiveRecord::Base
29
29
  belongs_to :group
30
30
  end
31
31
 
32
- class DocumentationTest < Minitest::Unit::TestCase
32
+ class DocumentationTest < Minitest::Test
33
33
  def setup
34
34
  ActiveRecord::Base.descendants.each(&:delete_all)
35
35
  end
@@ -37,9 +37,9 @@ class DocumentationTest < Minitest::Unit::TestCase
37
37
  def test_readme
38
38
  group1 = Group.create!(name: 'first')
39
39
  group2 = Group.create!(name: 'second')
40
- group3 = Group.create!(name: 'third')
40
+ _group3 = Group.create!(name: 'third')
41
41
 
42
- group4 = Group.create!(name: 'fourth')
42
+ _group4 = Group.create!(name: 'fourth')
43
43
  group5 = Group.create!(name: 'fifth')
44
44
  group6 = Group.create!(name: 'sixth')
45
45
 
@@ -67,4 +67,4 @@ class DocumentationTest < Minitest::Unit::TestCase
67
67
  assert_equal 1, result.length
68
68
  assert_equal user4.id, result.first.id
69
69
  end
70
- end
70
+ end
@@ -8,37 +8,37 @@ ActiveRecord::Migration.create_table :irrelevant_polymorphic_entities, :force =>
8
8
  t.string :name
9
9
  end
10
10
 
11
- ActiveRecord::Migration.create_table :polymorphic_children, :force => true do |t|
12
- t.integer :polymorphic_entity_id
13
- t.string :polymorphic_entity_type
11
+ ActiveRecord::Migration.create_table :has_many_polymorphic_children, :force => true do |t|
12
+ t.integer :polymorphic_thing_id
13
+ t.string :polymorphic_thing_type
14
14
  t.string :name
15
15
  end
16
16
 
17
- class PolymorphicChild < ActiveRecord::Base
18
- belongs_to :polymorphic_entity, polymorphic: true
17
+ class HasManyPolymorphicChild < ActiveRecord::Base
18
+ belongs_to :polymorphic_thing, polymorphic: true
19
19
  end
20
20
 
21
21
  class RelevantPolymorphicEntity < ActiveRecord::Base
22
- has_many :children, as: :polymorphic_entity, class_name: PolymorphicChild
22
+ has_many :children, as: :polymorphic_thing, class_name: HasManyPolymorphicChild
23
23
  end
24
24
 
25
25
  class IrrelevantPolymorphicEntity < ActiveRecord::Base
26
- has_many :children, as: :polymorphic_entity, class_name: PolymorphicChild
26
+ has_many :children, as: :polymorphic_thing, class_name: HasManyPolymorphicChild
27
27
  end
28
28
 
29
- class HasManyPolymorphicTest < Minitest::Unit::TestCase
29
+ class HasManyPolymorphicTest < Minitest::Test
30
30
  def setup
31
31
  ActiveRecord::Base.descendants.each(&:delete_all)
32
32
  end
33
33
 
34
34
  def test_polymorphic
35
- child = PolymorphicChild.create!
35
+ child = HasManyPolymorphicChild.create!
36
36
 
37
37
  irrelevant_entity = IrrelevantPolymorphicEntity.create!(children: [child])
38
- relevant_entity = RelevantPolymorphicEntity.create!(id: irrelevant_entity.id)
38
+ _relevant_entity = RelevantPolymorphicEntity.create!(id: irrelevant_entity.id)
39
39
 
40
40
  result = RelevantPolymorphicEntity.where_exists(:children)
41
41
 
42
42
  assert_equal 0, result.length
43
43
  end
44
- end
44
+ end
@@ -18,7 +18,7 @@ class SimpleEntityChild < ActiveRecord::Base
18
18
  belongs_to :simple_entity, foreign_key: :parent_id
19
19
  end
20
20
 
21
- class HasManyTest < Minitest::Unit::TestCase
21
+ class HasManyTest < Minitest::Test
22
22
  def setup
23
23
  ActiveRecord::Base.descendants.each(&:delete_all)
24
24
  end
@@ -26,7 +26,7 @@ class HasManyTest < Minitest::Unit::TestCase
26
26
  def test_without_parameters
27
27
  child = SimpleEntityChild.create!
28
28
 
29
- blank_entity = SimpleEntity.create!(my_id: 999)
29
+ _blank_entity = SimpleEntity.create!(my_id: 999)
30
30
  filled_entity = SimpleEntity.create!(simple_entity_children: [child], my_id: 500)
31
31
 
32
32
  result = SimpleEntity.where_exists(:simple_entity_children)
@@ -39,8 +39,8 @@ class HasManyTest < Minitest::Unit::TestCase
39
39
  wrong_child = SimpleEntityChild.create!(name: 'wrong')
40
40
  child = SimpleEntityChild.create!(name: 'right')
41
41
 
42
- blank_entity = SimpleEntity.create!(my_id: 999)
43
- wrong_entity = SimpleEntity.create!(simple_entity_children: [wrong_child], my_id: 500)
42
+ _blank_entity = SimpleEntity.create!(my_id: 999)
43
+ _wrong_entity = SimpleEntity.create!(simple_entity_children: [wrong_child], my_id: 500)
44
44
  entity = SimpleEntity.create!(name: 'this field is irrelevant', simple_entity_children: [child], my_id: 300)
45
45
 
46
46
  result = SimpleEntity.where_exists(:simple_entity_children, name: 'right')
@@ -63,7 +63,7 @@ class HasManyTest < Minitest::Unit::TestCase
63
63
  child = SimpleEntityChild.create!
64
64
 
65
65
  blank_entity = SimpleEntity.create!(my_id: 999)
66
- filled_entity = SimpleEntity.create!(simple_entity_children: [child], my_id: 500)
66
+ _filled_entity = SimpleEntity.create!(simple_entity_children: [child], my_id: 500)
67
67
 
68
68
  result = SimpleEntity.where_not_exists(:simple_entity_children)
69
69
 
@@ -44,7 +44,7 @@ end
44
44
 
45
45
  # Invoices -> LineItems <- Tasks <- Project
46
46
 
47
- class HasManyThroughTest < Minitest::Unit::TestCase
47
+ class HasManyThroughTest < Minitest::Test
48
48
  def setup
49
49
  ActiveRecord::Base.descendants.each(&:delete_all)
50
50
  end
@@ -56,8 +56,8 @@ class HasManyThroughTest < Minitest::Unit::TestCase
56
56
  task = Task.create!(project: project)
57
57
  irrelevant_task = Task.create!(project: irrelevant_project)
58
58
 
59
- line_item = LineItem.create!(name: 'relevant', task: task)
60
- irrelevant_line_item = LineItem.create!(name: 'irrelevant', task: irrelevant_task)
59
+ _line_item = LineItem.create!(name: 'relevant', task: task)
60
+ _irrelevant_line_item = LineItem.create!(name: 'irrelevant', task: irrelevant_task)
61
61
 
62
62
  result = Project.where_exists(:project_line_items, name: 'relevant')
63
63
 
@@ -79,8 +79,8 @@ class HasManyThroughTest < Minitest::Unit::TestCase
79
79
  invoice = Invoice.create!(name: 'relevant')
80
80
  irrelevant_invoice = Invoice.create!(name: 'irrelevant')
81
81
 
82
- line_item = LineItem.create!(task: task, invoice: invoice)
83
- irrelevant_line_item = LineItem.create!(task: irrelevant_task, invoice: irrelevant_invoice)
82
+ _line_item = LineItem.create!(task: task, invoice: invoice)
83
+ _irrelevant_line_item = LineItem.create!(task: irrelevant_task, invoice: irrelevant_invoice)
84
84
 
85
85
  result = Project.where_exists(:invoices, name: 'relevant')
86
86
 
@@ -92,4 +92,4 @@ class HasManyThroughTest < Minitest::Unit::TestCase
92
92
  assert_equal 1, result.length
93
93
  assert_equal irrelevant_project.id, result.first.id
94
94
  end
95
- end
95
+ end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: where_exists
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Zolotarev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-01 00:00:00.000000000 Z
11
+ date: 2017-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.22
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5'
22
+ version: '6'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
27
+ - - '='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.2.22
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5'
32
+ version: '6'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: sqlite3
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: minitest
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
47
61
  description: Rails way to harness the power of SQL "EXISTS" statement
48
62
  email:
49
63
  - eugzol@gmail.com
@@ -83,16 +97,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
97
  version: '0'
84
98
  requirements: []
85
99
  rubyforge_project:
86
- rubygems_version: 2.4.4
100
+ rubygems_version: 2.5.1
87
101
  signing_key:
88
102
  specification_version: 4
89
103
  summary: "#where_exists extension of ActiveRecord"
90
104
  test_files:
91
- - test/belongs_to_polymorphic_test.rb
92
- - test/belongs_to_test.rb
93
105
  - test/db/test.db
106
+ - test/belongs_to_test.rb
94
107
  - test/documentation_test.rb
108
+ - test/test_helper.rb
95
109
  - test/has_many_polymorphic_test.rb
110
+ - test/belongs_to_polymorphic_test.rb
96
111
  - test/has_many_test.rb
97
112
  - test/has_many_through_test.rb
98
- - test/test_helper.rb