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.1"
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.1
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-09 00:00:00.000000000 Z
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: &6965060 !ruby/object:Gem::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: *6965060
24
+ version_requirements: *11718500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &6964420 !ruby/object:Gem::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: *6964420
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"