where_exists 0.1 → 0.9

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: 3183fa7ecdfc73c32ee05f640fcd732b86a6b2a4
4
- data.tar.gz: c6a3fec1c884fa8a817d0cf89827644accc03e03
3
+ metadata.gz: 5c0011ebbfa83fbd7bec538f131b3cbd1840a461
4
+ data.tar.gz: be15ecc2aa3b857edeb0c7f577b3d2a23b73cb3f
5
5
  SHA512:
6
- metadata.gz: 6270202fd65580dff8c02681a877f79a5627e8c5e5477fa90e69ec2572ac8d90bc9941f2ff8bfb0bb219168dd3fb707c6990e49cdc1fbea845bc3d5611ed1f78
7
- data.tar.gz: 9a1aeac1ec732eee43e42760ba2013351960b86a87ee5282a1658f10a84ea21782b2822094c422644ff399dc59cd4e13d649e5f357f47228f36e169762225b29
6
+ metadata.gz: f287f7afb2c78828f04306abd07f2329af3184f3e618cf701e385aa2ae42ba1aa42a4223201b874d89fba1cf1180b968e3e82f24c80fd3bef6fd121024cfa330
7
+ data.tar.gz: c1d91193439fd382019cd7952698b3db625ef8ac1c96b836d7ab7382f417eb53951713882b958f496383f488b807069a1d1e9f81a017cd24165d4ede5b9a9716
@@ -1,3 +1,3 @@
1
1
  module WhereExists
2
- VERSION = "0.1"
2
+ VERSION = "0.9"
3
3
  end
Binary file
@@ -0,0 +1,70 @@
1
+ require 'test_helper'
2
+
3
+ ActiveRecord::Migration.create_table :users, :force => true do |t|
4
+ t.string :name
5
+ end
6
+
7
+ ActiveRecord::Migration.create_table :groups, :force => true do |t|
8
+ t.string :name
9
+ end
10
+
11
+ ActiveRecord::Migration.create_table :connections, :force => true do |t|
12
+ t.integer :user_id
13
+ t.integer :group_id
14
+ t.string :name
15
+ end
16
+
17
+ class User < ActiveRecord::Base
18
+ has_many :connections
19
+ has_many :groups, through: :connections
20
+ end
21
+
22
+ class Group < ActiveRecord::Base
23
+ has_many :connections
24
+ has_many :users, through: :connections
25
+ end
26
+
27
+ class Connection < ActiveRecord::Base
28
+ belongs_to :user
29
+ belongs_to :group
30
+ end
31
+
32
+ class DocumentationTest < Minitest::Unit::TestCase
33
+ def setup
34
+ ActiveRecord::Base.descendants.each(&:delete_all)
35
+ end
36
+
37
+ def test_readme
38
+ group1 = Group.create!(name: 'first')
39
+ group2 = Group.create!(name: 'second')
40
+ group3 = Group.create!(name: 'third')
41
+
42
+ group4 = Group.create!(name: 'fourth')
43
+ group5 = Group.create!(name: 'fifth')
44
+ group6 = Group.create!(name: 'sixth')
45
+
46
+ user1 = User.create!
47
+ Connection.create!(user: user1, group: group1)
48
+
49
+ user2 = User.create!
50
+ Connection.create!(user: user2, group: group2)
51
+ Connection.create!(user: user2, group: group6)
52
+
53
+ user3 = User.create!
54
+ Connection.create!(user: user3, group: group5)
55
+
56
+ user4 = User.create!
57
+
58
+ result = User.where_exists(:groups, id: [1,2,3])
59
+ assert_equal 2, result.length
60
+ assert_equal [user1, user2].map(&:id).sort, result.map(&:id).sort
61
+
62
+ result = User.where_exists(:groups, id: [1,2,3]).where_not_exists(:groups, name: %w(fourth fifth sixth))
63
+ assert_equal 1, result.length
64
+ assert_equal user1.id, result.first.id
65
+
66
+ result = User.where_not_exists(:groups)
67
+ assert_equal 1, result.length
68
+ assert_equal user4.id, result.first.id
69
+ end
70
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: where_exists
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.9'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Zolotarev
@@ -58,6 +58,7 @@ files:
58
58
  - test/belongs_to_polymorphic_test.rb
59
59
  - test/belongs_to_test.rb
60
60
  - test/db/test.db
61
+ - test/documentation_test.rb
61
62
  - test/has_many_polymorphic_test.rb
62
63
  - test/has_many_test.rb
63
64
  - test/has_many_through_test.rb
@@ -90,6 +91,7 @@ test_files:
90
91
  - test/belongs_to_polymorphic_test.rb
91
92
  - test/belongs_to_test.rb
92
93
  - test/db/test.db
94
+ - test/documentation_test.rb
93
95
  - test/has_many_polymorphic_test.rb
94
96
  - test/has_many_test.rb
95
97
  - test/has_many_through_test.rb