recommendify 0.3.1 → 0.3.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.
@@ -2,9 +2,9 @@ class Recommendify::JaccardInputMatrix < Recommendify::InputMatrix
|
|
2
2
|
|
3
3
|
include Recommendify::CCMatrix
|
4
4
|
|
5
|
-
def initialize(opts={})
|
5
|
+
def initialize(opts={})
|
6
6
|
check_native if opts[:native]
|
7
|
-
super(opts)
|
7
|
+
super(opts)
|
8
8
|
end
|
9
9
|
|
10
10
|
def similarity(item1, item2)
|
@@ -12,7 +12,7 @@ class Recommendify::JaccardInputMatrix < Recommendify::InputMatrix
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def similarities_for(item1)
|
15
|
-
return run_native(item1) if @opts[:native]
|
15
|
+
return run_native(item1) if @opts[:native]
|
16
16
|
calculate_similarities(item1)
|
17
17
|
end
|
18
18
|
|
@@ -35,6 +35,7 @@ private
|
|
35
35
|
|
36
36
|
def run_native(item_id)
|
37
37
|
res = %x{#{native_path} --jaccard "#{redis_key}" "#{item_id}" "#{redis_url}"}
|
38
|
+
raise "error: dirty exit (#{$?})" if $? != 0
|
38
39
|
res.split("\n").map do |line|
|
39
40
|
sim = line.match(/OUT: \(([^\)]*)\) \(([^\)]*)\)/)
|
40
41
|
raise "error: #{res}" unless sim
|
@@ -55,4 +56,4 @@ private
|
|
55
56
|
Recommendify.redis.client.location
|
56
57
|
end
|
57
58
|
|
58
|
-
end
|
59
|
+
end
|
data/recommendify.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "recommendify"
|
6
|
-
s.version = "0.3.
|
6
|
+
s.version = "0.3.2"
|
7
7
|
s.date = Date.today.to_s
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.authors = ["Paul Asmuth"]
|
@@ -12,11 +12,11 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{ruby/redis based recommendation engine (collaborative filtering)}
|
13
13
|
s.description = %q{Recommendify is a distributed, incremental item-based recommendation engine for binary input ratings. It's based on ruby and redis and uses an approach called "Collaborative Filtering"}
|
14
14
|
s.licenses = ["MIT"]
|
15
|
-
|
15
|
+
|
16
16
|
s.extensions = ['ext/extconf.rb']
|
17
17
|
|
18
18
|
s.add_dependency "redis", ">= 2.2.2"
|
19
|
-
|
19
|
+
|
20
20
|
s.add_development_dependency "rspec", "~> 2.8.0"
|
21
21
|
|
22
22
|
s.files = `git ls-files`.split("\n") - [".gitignore", ".rspec", ".travis.yml"]
|
@@ -56,6 +56,9 @@ describe Recommendify::JaccardInputMatrix do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it "should call run_native when the native option was passed" do
|
59
|
+
Recommendify::JaccardInputMatrix.class_eval do
|
60
|
+
def check_native; true; end
|
61
|
+
end
|
59
62
|
matrix = Recommendify::JaccardInputMatrix.new(
|
60
63
|
:redis_prefix => "recommendify-test",
|
61
64
|
:native => true,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recommendify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
16
|
-
requirement: &
|
16
|
+
requirement: &11718500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.2.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *11718500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &11717900 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 2.8.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *11717900
|
36
36
|
description: Recommendify is a distributed, incremental item-based recommendation
|
37
37
|
engine for binary input ratings. It's based on ruby and redis and uses an approach
|
38
38
|
called "Collaborative Filtering"
|