relation 0.2.3 → 0.3.0
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/.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
|