commendo 1.1.0 → 1.2.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/CHANGELOG.md +3 -0
- data/bin/commendo-load-tags-tsv +25 -0
- data/bin/commendo-load-tsv +32 -0
- data/lib/commendo/tag_set.rb +5 -1
- data/lib/commendo/version.rb +1 -1
- data/test/tag_set_test.rb +8 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9c9e5e5c280d0f1ec32c258aa01875eadb369a4
|
4
|
+
data.tar.gz: 370760fc75db86566eaa79684f345aef76176fd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: feb82aed9f709bb50357bfa0de939bb6c941a5d7e2b593dd9b1cbf46a0dfd1190e1d703df54ba8e234872d032c452e54b7a9b2ce648722d5b4883711badf69ab
|
7
|
+
data.tar.gz: c040aa4d208403f52f3bf54d63ab0d5bc5868e4a621175642f539872ce5d444bd8e73f39492ec521bb1cb6b3cd640dc14a83666db5e3aa3a9208c9c219fb7b6d
|
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'redis'
|
4
|
+
require 'commendo'
|
5
|
+
require 'progressbar'
|
6
|
+
|
7
|
+
filename = ARGV[0]
|
8
|
+
redis_db = ARGV[1].to_i
|
9
|
+
base_key = ARGV[2]
|
10
|
+
|
11
|
+
redis = Redis.new(db: redis_db, timeout: 60)
|
12
|
+
ts = Commendo::TagSet.new(redis, base_key)
|
13
|
+
|
14
|
+
puts "Loading."
|
15
|
+
file_length = `wc -l #{filename}`.to_i
|
16
|
+
pbar = ProgressBar.new('Loading TSV file', file_length)
|
17
|
+
File.open(filename) do |f|
|
18
|
+
f.each_line.with_index do |line, i|
|
19
|
+
pbar.inc
|
20
|
+
tags = line.split("\t")
|
21
|
+
resource = tags.shift
|
22
|
+
ts.add(resource, *tags)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
puts "\nFinished loading"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'redis'
|
4
|
+
require 'commendo'
|
5
|
+
require 'progressbar'
|
6
|
+
|
7
|
+
filename = ARGV[0]
|
8
|
+
redis_db = ARGV[1].to_i
|
9
|
+
base_key = ARGV[2]
|
10
|
+
|
11
|
+
redis = Redis.new(db: redis_db, timeout: 60)
|
12
|
+
cs = Commendo::ContentSet.new(redis, base_key)
|
13
|
+
|
14
|
+
puts "Loading."
|
15
|
+
file_length = `wc -l #{filename}`.to_i
|
16
|
+
pbar = ProgressBar.new('Loading TSV file', file_length)
|
17
|
+
File.open(filename) do |f|
|
18
|
+
f.each_line.with_index do |line, i|
|
19
|
+
pbar.inc
|
20
|
+
ids = line.split("\t")
|
21
|
+
resource = ids.shift
|
22
|
+
cs.add(resource, *ids)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
puts "\nFinished loading"
|
26
|
+
|
27
|
+
puts 'Calculating similarities'
|
28
|
+
pbar = nil
|
29
|
+
cs.calculate_similarity do |key, i, total|
|
30
|
+
pbar ||= ProgressBar.new('Calculating similarity', total)
|
31
|
+
pbar.inc
|
32
|
+
end
|
data/lib/commendo/tag_set.rb
CHANGED
@@ -33,8 +33,12 @@ module Commendo
|
|
33
33
|
return can_include && !should_exclude
|
34
34
|
end
|
35
35
|
|
36
|
-
def delete(resource)
|
36
|
+
def delete(resource, *tags)
|
37
|
+
if tags.empty?
|
37
38
|
redis.del(resource_key(resource))
|
39
|
+
else
|
40
|
+
redis.srem(resource_key(resource), tags)
|
41
|
+
end
|
38
42
|
end
|
39
43
|
|
40
44
|
private
|
data/lib/commendo/version.rb
CHANGED
data/test/tag_set_test.rb
CHANGED
@@ -50,7 +50,7 @@ module Commendo
|
|
50
50
|
assert_equal ['qip', 'qux'], @ts.get(2)
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
53
|
+
def test_deletes_all_tags_for_resource
|
54
54
|
@ts.set(1, 'foo', 'bar', 'baz')
|
55
55
|
@ts.set(2, 'qux', 'qip')
|
56
56
|
assert_equal ['bar', 'baz', 'foo'], @ts.get(1)
|
@@ -60,6 +60,13 @@ module Commendo
|
|
60
60
|
assert_equal ['qip', 'qux'], @ts.get(2)
|
61
61
|
end
|
62
62
|
|
63
|
+
def test_deletes_given_tags_for_resource
|
64
|
+
assert_equal [], @ts.get(1)
|
65
|
+
@ts.set(1, 'foo', 'bar', 'baz', 'qux', 'qip')
|
66
|
+
@ts.delete(1, 'qux', 'qip')
|
67
|
+
assert_equal ['bar', 'baz', 'foo'], @ts.get(1)
|
68
|
+
end
|
69
|
+
|
63
70
|
def test_matches_tags
|
64
71
|
@ts.set(1, 'foo', 'bar', 'baz')
|
65
72
|
@ts.set(2, 'qux', 'qip')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commendo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Styles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -114,6 +114,8 @@ email:
|
|
114
114
|
executables:
|
115
115
|
- commendo-find-identical-pairs
|
116
116
|
- commendo-load
|
117
|
+
- commendo-load-tags-tsv
|
118
|
+
- commendo-load-tsv
|
117
119
|
- commendo-recommendations-distribution
|
118
120
|
- commendo-similarity-distribution
|
119
121
|
extensions: []
|
@@ -127,6 +129,8 @@ files:
|
|
127
129
|
- Rakefile
|
128
130
|
- bin/commendo-find-identical-pairs
|
129
131
|
- bin/commendo-load
|
132
|
+
- bin/commendo-load-tags-tsv
|
133
|
+
- bin/commendo-load-tsv
|
130
134
|
- bin/commendo-recommendations-distribution
|
131
135
|
- bin/commendo-similarity-distribution
|
132
136
|
- commendo.gemspec
|