relation 0.2.3 → 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/.travis.yml +2 -2
- data/Appraisals +0 -5
- data/app/models/dangling.rb +4 -4
- data/app/models/relation.rb +8 -8
- data/app/models/relation_ext.rb +7 -7
- data/db/migrate/20150810152808_relation.rb +2 -4
- data/lib/relation/version.rb +1 -1
- data/relation.gemspec +1 -1
- data/test/support/database.rb +2 -2
- metadata +6 -7
- data/gemfiles/rails_4.gemfile +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bad787b4d9a048415f84ac84bb57b0d0c07b78172a2205db2364a1b1d5d23ee4
|
4
|
+
data.tar.gz: a3065ffcbeed05f69f53d0914dec79471f75cbdfc83ec302d251ddef90279a7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57b2b2295e4ecf25e5572cbd68f2b7dfcda2e5de192a7f10271bebbd0344b8d7607e8ad22ecddc5bbdfcb3390209d2285d17295345b6ea03b12c67a517610b2b
|
7
|
+
data.tar.gz: 97e971f2beb8a47dec9dcc70401e70493f53a309e9c705075ae030f9c7c448f62baa51ef923bd73eede89f864a136edd4a5b0a84802335ee2ebbb287c58e2e4b
|
data/.travis.yml
CHANGED
data/Appraisals
CHANGED
data/app/models/dangling.rb
CHANGED
@@ -11,8 +11,8 @@ class Relation < ActiveRecord::Base
|
|
11
11
|
models.each { |class_name|
|
12
12
|
klass = class_name.constantize
|
13
13
|
ids = klass.pluck(:id)
|
14
|
-
idx = Relation.where('name like ?', "#{class_name} %").pluck(:
|
15
|
-
idy = Relation.where('name like ?', "% #{class_name}").pluck(:
|
14
|
+
idx = Relation.where('name like ?', "#{class_name} %").pluck(:from_id)
|
15
|
+
idy = Relation.where('name like ?', "% #{class_name}").pluck(:to_id)
|
16
16
|
arr = (idx | idy) - ids
|
17
17
|
hsh[class_name] = arr if arr.length > 0
|
18
18
|
}
|
@@ -22,8 +22,8 @@ class Relation < ActiveRecord::Base
|
|
22
22
|
def self.remove_dangling(hsh)
|
23
23
|
hsh.each { |name, arr|
|
24
24
|
arr.each { |idx|
|
25
|
-
Relation.where(
|
26
|
-
Relation.where(
|
25
|
+
Relation.where(from_id: idx).where('name like ?', "#{name} %").delete_all
|
26
|
+
Relation.where(to_id: idx).where('name like ?', "% #{name}").delete_all
|
27
27
|
}
|
28
28
|
}
|
29
29
|
end
|
data/app/models/relation.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
class Relation < ActiveRecord::Base
|
2
2
|
|
3
|
-
def self.add_raw(name,
|
4
|
-
hsh = { name: name,
|
3
|
+
def self.add_raw(name, from_id, to_id)
|
4
|
+
hsh = { name: name, from_id: from_id, to_id: to_id }
|
5
5
|
Relation.create!(hsh) if Relation.where(hsh).first == nil
|
6
6
|
end
|
7
7
|
|
8
|
-
def self.delete_raw(name,
|
9
|
-
hsh = { name: name,
|
8
|
+
def self.delete_raw(name, from_id, to_id)
|
9
|
+
hsh = { name: name, from_id: from_id, to_id: to_id }
|
10
10
|
Relation.where(hsh).delete_all
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.references_raw(name,
|
14
|
-
Relation.where(name: name,
|
13
|
+
def self.references_raw(name, from_id)
|
14
|
+
Relation.where(name: name, from_id: from_id).pluck(:to_id)
|
15
15
|
end
|
16
16
|
|
17
|
-
def self.followers_raw(name,
|
18
|
-
Relation.where(name: name,
|
17
|
+
def self.followers_raw(name, to_id)
|
18
|
+
Relation.where(name: name, to_id: to_id).pluck(:from_id)
|
19
19
|
end
|
20
20
|
|
21
21
|
end
|
data/app/models/relation_ext.rb
CHANGED
@@ -12,16 +12,16 @@ class Relation < ActiveRecord::Base
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.references(row, kind)
|
15
|
-
klass, name,
|
15
|
+
klass, name, from_id = normalize2(kind, row)
|
16
16
|
name = "#{name} #{klass.name}"
|
17
|
-
ids = references_raw(name,
|
17
|
+
ids = references_raw(name, from_id)
|
18
18
|
klass.where(id: ids)
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.followers(kind, row)
|
22
|
-
klass, name,
|
22
|
+
klass, name, to_id = normalize2(kind, row)
|
23
23
|
name = "#{klass.name} #{name}"
|
24
|
-
ids = followers_raw(name,
|
24
|
+
ids = followers_raw(name, to_id)
|
25
25
|
klass.where(id: ids)
|
26
26
|
end
|
27
27
|
|
@@ -32,10 +32,10 @@ class Relation < ActiveRecord::Base
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def self.normalize(row_from, row_to)
|
35
|
-
name_from,
|
36
|
-
name_to,
|
35
|
+
name_from, from_id = name_id(row_from)
|
36
|
+
name_to, to_id = name_id(row_to)
|
37
37
|
name = "#{name_from} #{name_to}"
|
38
|
-
{ name: name,
|
38
|
+
{ name: name, from_id: from_id, to_id: to_id }
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.normalize2(kind, row)
|
@@ -2,13 +2,11 @@ class CreateRelations < ActiveRecord::Migration[5.2]
|
|
2
2
|
def change
|
3
3
|
create_table :relations, id: false do |t|
|
4
4
|
t.string :name
|
5
|
-
t.references :
|
6
|
-
t.references :
|
5
|
+
t.references :from, null: false
|
6
|
+
t.references :to, null: false
|
7
7
|
t.timestamps
|
8
8
|
|
9
9
|
t.index :name
|
10
|
-
t.index :x
|
11
|
-
t.index :y
|
12
10
|
end
|
13
11
|
end
|
14
12
|
end
|
data/lib/relation/version.rb
CHANGED
data/relation.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.test_files = `git ls-files -- {test,features}/*`.split("\n")
|
23
23
|
s.require_paths = ['lib', 'app']
|
24
24
|
|
25
|
-
s.add_dependency 'activerecord'
|
25
|
+
s.add_dependency 'activerecord', '~> 5'
|
26
26
|
|
27
27
|
s.add_development_dependency 'appraisal'
|
28
28
|
s.add_development_dependency 'bundler'
|
data/test/support/database.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dittmar Krall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: appraisal
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -131,7 +131,6 @@ files:
|
|
131
131
|
- app/models/relation.rb
|
132
132
|
- app/models/relation_ext.rb
|
133
133
|
- db/migrate/20150810152808_relation.rb
|
134
|
-
- gemfiles/rails_4.gemfile
|
135
134
|
- gemfiles/rails_5.0.gemfile
|
136
135
|
- gemfiles/rails_5.1.gemfile
|
137
136
|
- gemfiles/rails_5.2.gemfile
|