relation 0.3.8 → 0.4.2
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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +10 -8
- data/.gitignore +1 -1
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/Gemfile +7 -5
- data/Gemfile.lock +139 -111
- data/MIT-LICENSE +3 -1
- data/README.md +35 -25
- data/Rakefile +5 -5
- data/app/models/dangling.rb +7 -6
- data/app/models/relation.rb +4 -2
- data/app/models/relation_ext.rb +6 -4
- data/db/migrate/{20150810152808_relation.rb → 003_create_relations.rb} +2 -2
- data/lib/relation/engine.rb +1 -23
- data/lib/relation/version.rb +12 -9
- data/lib/relation.rb +3 -6
- data/relation.gemspec +19 -24
- data/test/dangling_test.rb +17 -23
- data/test/internal/app/models/order.rb +2 -0
- data/test/internal/app/models/user.rb +2 -0
- data/test/internal/config/database.yml +3 -0
- data/test/internal/db/schema.rb +28 -0
- data/test/relation_ext_test.rb +14 -21
- data/test/relation_test.rb +10 -17
- data/test/test_helper.rb +11 -12
- metadata +17 -32
- data/.rubocop.yml +0 -9
- data/.watchr +0 -59
- data/Appraisals +0 -19
- data/gemfiles/rails_6.0.gemfile +0 -13
- data/gemfiles/rails_6.1.gemfile +0 -13
- data/test/support/database.rb +0 -57
data/lib/relation/version.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
# rubocop: disable all
|
2
2
|
|
3
3
|
module ModRelation
|
4
|
-
VERSION =
|
5
|
-
# VERSION =
|
6
|
-
# VERSION =
|
7
|
-
# VERSION =
|
8
|
-
# VERSION =
|
9
|
-
# VERSION =
|
10
|
-
# VERSION =
|
11
|
-
# VERSION =
|
12
|
-
# VERSION =
|
4
|
+
VERSION = "0.4.2" # 2023-01-19
|
5
|
+
# VERSION = "0.4.1" # 2023-01-18
|
6
|
+
# VERSION = "0.4.0" # 2023-01-12
|
7
|
+
# VERSION = "0.3.8" # 2021-06-22
|
8
|
+
# VERSION = "0.3.7" # 2020-07-14
|
9
|
+
# VERSION = "0.3.6" # 2020-04-27
|
10
|
+
# VERSION = "0.3.5" # 2020-03-03
|
11
|
+
# VERSION = "0.3.4" # 2019-10-04
|
12
|
+
# VERSION = "0.3.3" # 2019-03-23
|
13
|
+
# VERSION = "0.3.2" # 2019-03-05
|
14
|
+
# VERSION = "0.3.1" # 2018-08-05
|
15
|
+
# VERSION = "0.3.0" #
|
13
16
|
end
|
data/lib/relation.rb
CHANGED
data/relation.gemspec
CHANGED
@@ -1,34 +1,29 @@
|
|
1
|
-
|
2
|
-
require 'relation/version'
|
1
|
+
require_relative "lib/relation/version"
|
3
2
|
|
4
3
|
Gem::Specification.new do |s|
|
5
|
-
s.name
|
6
|
-
s.version
|
7
|
-
s.summary
|
8
|
-
|
4
|
+
s.name = "relation"
|
5
|
+
s.version = ModRelation::VERSION
|
6
|
+
s.summary = <<-'END'
|
7
|
+
Rails gem adding relationships between ActiveRecord models.
|
9
8
|
END
|
10
9
|
s.description = <<-'END'
|
11
10
|
A Rails gem that adds simple support for organizing ActiveRecord models.
|
11
|
+
Relationships are stored in one additional database table.
|
12
12
|
END
|
13
|
-
s.authors
|
14
|
-
s.email
|
15
|
-
s.homepage
|
16
|
-
s.license
|
17
|
-
s.platform
|
13
|
+
s.authors = ["Dittmar Krall"]
|
14
|
+
s.email = ["dittmar.krall@matiq.com"]
|
15
|
+
s.homepage = "https://matiq.com"
|
16
|
+
s.license = "MIT"
|
17
|
+
s.platform = Gem::Platform::RUBY
|
18
18
|
|
19
|
-
s.metadata[
|
19
|
+
s.metadata["source_code_uri"] = "https://github.com/matique/relation"
|
20
20
|
|
21
|
-
s.files
|
22
|
-
s.
|
23
|
-
s.test_files = `git ls-files -- {test,features}/*`.split("\n")
|
24
|
-
s.require_paths = ['lib', 'app']
|
21
|
+
s.files = `git ls-files`.split("\n")
|
22
|
+
s.require_paths = ["lib", "app"]
|
25
23
|
|
26
|
-
s.
|
27
|
-
|
28
|
-
s.add_development_dependency
|
29
|
-
s.add_development_dependency
|
30
|
-
s.add_development_dependency
|
31
|
-
|
32
|
-
s.add_development_dependency 'minitest'
|
33
|
-
s.add_development_dependency 'sqlite3'
|
24
|
+
s.add_development_dependency "bundler"
|
25
|
+
s.add_development_dependency "combustion"
|
26
|
+
s.add_development_dependency "minitest"
|
27
|
+
s.add_development_dependency "rake"
|
28
|
+
s.add_development_dependency "sqlite3"
|
34
29
|
end
|
data/test/dangling_test.rb
CHANGED
@@ -1,40 +1,35 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
describe Relation do
|
4
|
-
let(:user)
|
5
|
-
let(:user2)
|
6
|
-
let(:order)
|
7
|
-
let(:order2) { Order.create! name:
|
4
|
+
let(:user) { User.create! email: "info@sample.com" }
|
5
|
+
let(:user2) { User.create! email: "info2@sample.com" }
|
6
|
+
let(:order) { Order.create! name: "order" }
|
7
|
+
let(:order2) { Order.create! name: "order2" }
|
8
8
|
|
9
9
|
def setup
|
10
|
-
|
11
|
-
|
12
|
-
Relation.add user, order
|
10
|
+
Relation.delete_all
|
11
|
+
Relation.add user, order
|
13
12
|
Relation.add user2, order
|
14
13
|
Relation.add user2, order2
|
15
14
|
end
|
16
15
|
|
17
|
-
def teardown
|
18
|
-
DB.teardown
|
19
|
-
end
|
20
|
-
|
21
16
|
it "test remove dangling #1" do
|
22
|
-
hsh = {
|
23
|
-
assert_difference(
|
17
|
+
hsh = {"User" => [user.id]}
|
18
|
+
assert_difference("Relation.count", -1) do
|
24
19
|
Relation.remove_dangling(hsh)
|
25
20
|
end
|
26
21
|
end
|
27
22
|
|
28
23
|
it "test remove dangling #2" do
|
29
|
-
hsh = {
|
30
|
-
assert_difference(
|
24
|
+
hsh = {"User" => [user2.id]}
|
25
|
+
assert_difference("Relation.count", -2) do
|
31
26
|
Relation.remove_dangling(hsh)
|
32
27
|
end
|
33
28
|
end
|
34
29
|
|
35
30
|
it "test remove dangling #3" do
|
36
|
-
hsh = {
|
37
|
-
assert_difference(
|
31
|
+
hsh = {"Order" => [order.id]}
|
32
|
+
assert_difference("Relation.count", -2) do
|
38
33
|
Relation.remove_dangling(hsh)
|
39
34
|
end
|
40
35
|
end
|
@@ -42,12 +37,11 @@ describe Relation do
|
|
42
37
|
it "test dangling" do
|
43
38
|
assert_equal({}, Relation.dangling)
|
44
39
|
user.destroy
|
45
|
-
assert_equal({"User"=>[user.id]}, Relation.dangling)
|
40
|
+
assert_equal({"User" => [user.id]}, Relation.dangling)
|
46
41
|
user2.destroy
|
47
|
-
assert_equal({"User"=>[user.id, user2.id]}, Relation.dangling)
|
42
|
+
assert_equal({"User" => [user.id, user2.id]}, Relation.dangling)
|
48
43
|
order.destroy
|
49
|
-
assert_equal({"User"=>[user.id, user2.id].sort, "Order"=>[order.id]},
|
50
|
-
|
44
|
+
assert_equal({"User" => [user.id, user2.id].sort, "Order" => [order.id]},
|
45
|
+
Relation.dangling)
|
51
46
|
end
|
52
|
-
|
53
47
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ActiveRecord::Schema.define(version: 202208) do
|
4
|
+
create_table :relations, force: true, id: false do |t|
|
5
|
+
t.string :name
|
6
|
+
t.references :from, null: false
|
7
|
+
t.references :to, null: false
|
8
|
+
t.timestamps
|
9
|
+
|
10
|
+
t.index :name
|
11
|
+
end
|
12
|
+
|
13
|
+
create_table "orders", force: true do |t|
|
14
|
+
t.string :name
|
15
|
+
t.string :category
|
16
|
+
t.text :bag
|
17
|
+
|
18
|
+
t.datetime "created_at", null: false
|
19
|
+
t.datetime "updated_at", null: false
|
20
|
+
end
|
21
|
+
|
22
|
+
create_table "users", force: true do |t|
|
23
|
+
t.string :email
|
24
|
+
|
25
|
+
t.datetime "created_at", null: false
|
26
|
+
t.datetime "updated_at", null: false
|
27
|
+
end
|
28
|
+
end
|
data/test/relation_ext_test.rb
CHANGED
@@ -1,63 +1,56 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
describe Relation do
|
4
|
-
let(:user)
|
5
|
-
let(:user2)
|
6
|
-
let(:order)
|
7
|
-
let(:order2) { Order.create! name:
|
4
|
+
let(:user) { User.create! email: "info@sample.com" }
|
5
|
+
let(:user2) { User.create! email: "info2@sample.com" }
|
6
|
+
let(:order) { Order.create! name: "order" }
|
7
|
+
let(:order2) { Order.create! name: "order2" }
|
8
8
|
|
9
9
|
def setup
|
10
|
-
|
11
|
-
|
12
|
-
Relation.add user, order
|
10
|
+
Relation.add user, order
|
13
11
|
Relation.add user2, order
|
14
12
|
Relation.add user2, order2
|
15
13
|
end
|
16
14
|
|
17
|
-
def teardown
|
18
|
-
DB.teardown
|
19
|
-
end
|
20
|
-
|
21
15
|
it "should add a connection" do
|
22
|
-
assert_difference(
|
16
|
+
assert_difference("Relation.count") do
|
23
17
|
Relation.add user2, user
|
24
18
|
end
|
25
19
|
end
|
26
20
|
|
27
21
|
it "should delete a connection" do
|
28
22
|
Relation.add user2, user
|
29
|
-
assert_difference(
|
23
|
+
assert_difference("Relation.count", -1) do
|
30
24
|
Relation.delete user2, user
|
31
25
|
end
|
32
26
|
end
|
33
27
|
|
34
28
|
it "should return references (using class name)" do
|
35
|
-
arr = Relation.references(user,
|
29
|
+
arr = Relation.references(user, "Order")
|
36
30
|
assert_equal [order].sort, arr.sort
|
37
31
|
|
38
|
-
arr = Relation.references(user2,
|
32
|
+
arr = Relation.references(user2, "Order")
|
39
33
|
assert_equal [order, order2].sort, arr.sort
|
40
34
|
end
|
41
35
|
|
42
36
|
it "should return followers (using class name)" do
|
43
|
-
arr = Relation.followers(
|
37
|
+
arr = Relation.followers("User", order)
|
44
38
|
assert_equal [user, user2].sort, arr.sort
|
45
39
|
|
46
|
-
arr = Relation.followers(
|
40
|
+
arr = Relation.followers("User", order2)
|
47
41
|
assert_equal [user2].sort, arr.sort
|
48
42
|
end
|
49
43
|
|
50
44
|
it "should not add twice the same connection" do
|
51
|
-
assert_difference(
|
45
|
+
assert_difference("Relation.count") do
|
52
46
|
Relation.add user2, user
|
53
47
|
Relation.add user2, user
|
54
48
|
end
|
55
49
|
end
|
56
50
|
|
57
51
|
it "should handle unexistent connection" do
|
58
|
-
assert_difference(
|
52
|
+
assert_difference("Relation.count", 0) do
|
59
53
|
Relation.delete user2, user
|
60
54
|
end
|
61
55
|
end
|
62
|
-
|
63
56
|
end
|
data/test/relation_test.rb
CHANGED
@@ -1,34 +1,28 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
# testing raw/basic relations
|
4
4
|
describe Relation do
|
5
|
-
let(:u_id)
|
6
|
-
let(:u2_id)
|
7
|
-
let(:o_id)
|
8
|
-
let(:o2_id)
|
9
|
-
let(:unknown_id)
|
5
|
+
let(:u_id) { User.create!(email: "info@sample.com").id }
|
6
|
+
let(:u2_id) { User.create!(email: "info2@sample.com").id }
|
7
|
+
let(:o_id) { Order.create!(name: "order").id }
|
8
|
+
let(:o2_id) { Order.create!(name: "order2").id }
|
9
|
+
let(:unknown_id) { 123456 }
|
10
10
|
|
11
11
|
def setup
|
12
|
-
DB.setup
|
13
|
-
|
14
12
|
Relation.add_raw :rel, u_id, o_id
|
15
13
|
Relation.add_raw :rel, u2_id, o_id
|
16
14
|
Relation.add_raw :rel, u2_id, o2_id
|
17
15
|
end
|
18
16
|
|
19
|
-
def teardown
|
20
|
-
DB.teardown
|
21
|
-
end
|
22
|
-
|
23
17
|
it "should add a relation" do
|
24
|
-
assert_difference(
|
18
|
+
assert_difference("Relation.count") do
|
25
19
|
Relation.add_raw :raw, u2_id, u_id
|
26
20
|
end
|
27
21
|
end
|
28
22
|
|
29
23
|
it "should delete a relation" do
|
30
24
|
Relation.add_raw :raw, u2_id, u_id
|
31
|
-
assert_difference(
|
25
|
+
assert_difference("Relation.count", -1) do
|
32
26
|
Relation.delete_raw :raw, u2_id, u_id
|
33
27
|
end
|
34
28
|
end
|
@@ -50,16 +44,15 @@ describe Relation do
|
|
50
44
|
end
|
51
45
|
|
52
46
|
it "should not add twice the same connection" do
|
53
|
-
assert_difference(
|
47
|
+
assert_difference("Relation.count") do
|
54
48
|
Relation.add_raw :rel, u2_id, unknown_id
|
55
49
|
Relation.add_raw :rel, u2_id, unknown_id
|
56
50
|
end
|
57
51
|
end
|
58
52
|
|
59
53
|
it "should handle unexistent connection" do
|
60
|
-
assert_difference(
|
54
|
+
assert_difference("Relation.count", 0) do
|
61
55
|
Relation.delete_raw :rel, u2_id, unknown_id
|
62
56
|
end
|
63
57
|
end
|
64
|
-
|
65
58
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
|
-
if ENV[
|
2
|
-
require
|
1
|
+
if ENV["COVERAGE"]
|
2
|
+
require "simplecov"
|
3
3
|
SimpleCov.start do
|
4
|
-
add_filter
|
4
|
+
add_filter "/test/"
|
5
5
|
end
|
6
6
|
end
|
7
7
|
|
8
|
-
require
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }
|
13
|
-
|
14
|
-
class Minitest::Test
|
15
|
-
require 'active_support/testing/assertions'
|
16
|
-
include ActiveSupport::Testing::Assertions
|
8
|
+
require "combustion"
|
9
|
+
Combustion.path = "test/internal"
|
10
|
+
Combustion.initialize! :active_record do
|
11
|
+
config.active_record.yaml_column_permitted_classes = [Symbol, Time, Date]
|
17
12
|
end
|
13
|
+
|
14
|
+
require "rails/test_help"
|
15
|
+
require "minitest/autorun"
|
16
|
+
require "minitest/benchmark"
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dittmar Krall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activerecord
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: bundler
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +25,7 @@ dependencies:
|
|
39
25
|
- !ruby/object:Gem::Version
|
40
26
|
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
28
|
+
name: combustion
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - ">="
|
@@ -53,7 +39,7 @@ dependencies:
|
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: minitest
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - ">="
|
@@ -67,7 +53,7 @@ dependencies:
|
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: rake
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - ">="
|
@@ -94,21 +80,19 @@ dependencies:
|
|
94
80
|
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: '0'
|
97
|
-
description:
|
98
|
-
|
83
|
+
description: |2
|
84
|
+
A Rails gem that adds simple support for organizing ActiveRecord models.
|
85
|
+
Relationships are stored in one additional database table.
|
99
86
|
email:
|
100
|
-
- dittmar.krall@
|
87
|
+
- dittmar.krall@matiq.com
|
101
88
|
executables: []
|
102
89
|
extensions: []
|
103
90
|
extra_rdoc_files: []
|
104
91
|
files:
|
105
92
|
- ".github/workflows/rake.yml"
|
106
93
|
- ".gitignore"
|
107
|
-
- ".rubocop.yml"
|
108
94
|
- ".ruby-gemset"
|
109
95
|
- ".ruby-version"
|
110
|
-
- ".watchr"
|
111
|
-
- Appraisals
|
112
96
|
- Gemfile
|
113
97
|
- Gemfile.lock
|
114
98
|
- MIT-LICENSE
|
@@ -117,19 +101,20 @@ files:
|
|
117
101
|
- app/models/dangling.rb
|
118
102
|
- app/models/relation.rb
|
119
103
|
- app/models/relation_ext.rb
|
120
|
-
- db/migrate/
|
121
|
-
- gemfiles/rails_6.0.gemfile
|
122
|
-
- gemfiles/rails_6.1.gemfile
|
104
|
+
- db/migrate/003_create_relations.rb
|
123
105
|
- lib/relation.rb
|
124
106
|
- lib/relation/engine.rb
|
125
107
|
- lib/relation/version.rb
|
126
108
|
- relation.gemspec
|
127
109
|
- test/dangling_test.rb
|
110
|
+
- test/internal/app/models/order.rb
|
111
|
+
- test/internal/app/models/user.rb
|
112
|
+
- test/internal/config/database.yml
|
113
|
+
- test/internal/db/schema.rb
|
128
114
|
- test/relation_ext_test.rb
|
129
115
|
- test/relation_test.rb
|
130
|
-
- test/support/database.rb
|
131
116
|
- test/test_helper.rb
|
132
|
-
homepage: https://
|
117
|
+
homepage: https://matiq.com
|
133
118
|
licenses:
|
134
119
|
- MIT
|
135
120
|
metadata:
|
@@ -150,8 +135,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
135
|
- !ruby/object:Gem::Version
|
151
136
|
version: '0'
|
152
137
|
requirements: []
|
153
|
-
rubygems_version: 3.
|
138
|
+
rubygems_version: 3.4.1
|
154
139
|
signing_key:
|
155
140
|
specification_version: 4
|
156
|
-
summary:
|
141
|
+
summary: Rails gem adding relationships between ActiveRecord models.
|
157
142
|
test_files: []
|
data/.rubocop.yml
DELETED
data/.watchr
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
TESTING = %w[test]
|
2
|
-
HH = '#' * 22 unless defined?(HH)
|
3
|
-
H = '#' * 5 unless defined?(H)
|
4
|
-
|
5
|
-
def usage
|
6
|
-
puts <<-EOS
|
7
|
-
Ctrl-\\ or ctrl-4 Running all tests
|
8
|
-
Ctrl-C Exit
|
9
|
-
EOS
|
10
|
-
end
|
11
|
-
|
12
|
-
def run(cmd)
|
13
|
-
puts "#{HH} #{Time.now} #{HH}"
|
14
|
-
puts "#{H} #{cmd}"
|
15
|
-
system "/usr/bin/time --format '#{HH} Elapsed time %E' #{cmd}"
|
16
|
-
end
|
17
|
-
|
18
|
-
def run_it(type, file)
|
19
|
-
case type
|
20
|
-
when 'test'; run %(bundle exec ruby -I test #{file})
|
21
|
-
# when 'spec'; run %(rspec -X #{file})
|
22
|
-
else; puts "#{H} unknown type: #{type}, file: #{file}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def run_all_tests
|
27
|
-
puts "\n#{HH} Running all tests #{HH}\n"
|
28
|
-
TESTING.each { |dir| run "bundle exec rake #{dir}" if File.exist?(dir) }
|
29
|
-
end
|
30
|
-
|
31
|
-
def run_matching_files(base)
|
32
|
-
base = base.split('_').first
|
33
|
-
TESTING.each { |type|
|
34
|
-
files = Dir["#{type}/**/*.rb"].select { |file| file =~ /#{base}_.*\.rb/ }
|
35
|
-
run_it type, files.join(' ') unless files.empty?
|
36
|
-
}
|
37
|
-
end
|
38
|
-
|
39
|
-
TESTING.each { |type|
|
40
|
-
watch("#{type}/#{type}_helper\.rb") { run_all_tests }
|
41
|
-
watch('lib/.*\.rb') { run_all_tests }
|
42
|
-
watch("#{type}/.*/*_#{type}\.rb") { |match| run_it type, match[0] }
|
43
|
-
watch("#{type}/data/(.*)\.rb") { |match|
|
44
|
-
m1 = match[1]
|
45
|
-
run_matching_files("#{type}/#{m1}/#{m1}_#{type}.rb")
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
%w[rb erb haml slim].each { |type|
|
50
|
-
watch(".*/(.*)\.#{type}") { |match|
|
51
|
-
run_matching_files(match[1])
|
52
|
-
}
|
53
|
-
}
|
54
|
-
|
55
|
-
# Ctrl-\ or ctrl-4
|
56
|
-
Signal.trap('QUIT') { run_all_tests }
|
57
|
-
# Ctrl-C
|
58
|
-
Signal.trap('INT') { abort("Interrupted\n") }
|
59
|
-
usage
|
data/Appraisals
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
appraise 'rails-6.1' do
|
2
|
-
gem 'rails', '~> 6.1'
|
3
|
-
end
|
4
|
-
|
5
|
-
appraise 'rails-6.0' do
|
6
|
-
gem 'rails', '~> 6.0'
|
7
|
-
end
|
8
|
-
|
9
|
-
#appraise 'rails-5.2' do
|
10
|
-
# gem 'rails', '~> 5.2.0'
|
11
|
-
#end
|
12
|
-
#
|
13
|
-
#appraise 'rails-5.0' do
|
14
|
-
# gem 'rails', '~> 5.0.0'
|
15
|
-
#end
|
16
|
-
#
|
17
|
-
#appraise 'rails-5.1' do
|
18
|
-
# gem 'rails', '~> 5.1'
|
19
|
-
#end
|
data/gemfiles/rails_6.0.gemfile
DELETED
data/gemfiles/rails_6.1.gemfile
DELETED
data/test/support/database.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
class DB
|
2
|
-
ActiveRecord::Base.establish_connection adapter: 'sqlite3',
|
3
|
-
database: ':memory:'
|
4
|
-
|
5
|
-
def self.setup
|
6
|
-
capture_stdout do
|
7
|
-
ActiveRecord::Base.logger
|
8
|
-
ActiveRecord::Schema.define(version: 1) do
|
9
|
-
create_table :orders do |t|
|
10
|
-
t.column :name, :string
|
11
|
-
end
|
12
|
-
create_table :users do |t|
|
13
|
-
t.column :name, :string
|
14
|
-
end
|
15
|
-
create_table :relations, id: false do |t|
|
16
|
-
t.string :name
|
17
|
-
t.references :from, null: false
|
18
|
-
t.references :to, null: false
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
Order.reset_column_information
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.teardown
|
27
|
-
if ActiveRecord::Base.connection.respond_to?(:data_sources)
|
28
|
-
ActiveRecord::Base.connection.data_sources.each do |table|
|
29
|
-
ActiveRecord::Base.connection.drop_table(table)
|
30
|
-
end
|
31
|
-
else
|
32
|
-
ActiveRecord::Base.connection.tables.each do |table|
|
33
|
-
ActiveRecord::Base.connection.drop_table(table)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.capture_stdout
|
39
|
-
real_stdout = $stdout
|
40
|
-
|
41
|
-
$stdout = StringIO.new
|
42
|
-
yield
|
43
|
-
$stdout.string
|
44
|
-
ensure
|
45
|
-
$stdout = real_stdout
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
class Order < ActiveRecord::Base
|
50
|
-
end
|
51
|
-
|
52
|
-
class User < ActiveRecord::Base
|
53
|
-
end
|
54
|
-
|
55
|
-
require_relative '../../app/models/relation'
|
56
|
-
require_relative '../../app/models/relation_ext'
|
57
|
-
require_relative '../../app/models/dangling'
|