recommendable 2.1.2 → 2.1.3
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/lib/recommendable/helpers/redis_key_mapper.rb +23 -6
- data/lib/recommendable/ratable.rb +16 -3
- data/lib/recommendable/version.rb +10 -5
- data/test/dummy/app/models/boat.rb +3 -0
- data/test/dummy/app/models/book.rb +1 -1
- data/test/dummy/app/models/car.rb +4 -0
- data/test/dummy/app/models/documentary.rb +3 -0
- data/test/dummy/app/models/movie.rb +1 -1
- data/test/dummy/app/models/rock.rb +1 -1
- data/test/dummy/app/models/user.rb +2 -2
- data/test/dummy/app/models/vehicle.rb +3 -0
- data/test/dummy/config/application.rb +1 -1
- data/test/dummy/config/environments/development.rb +5 -5
- data/test/dummy/config/environments/test.rb +5 -5
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20131226071447_create_vehicles.rb +10 -0
- data/test/dummy/db/migrate/20131226165647_add_type_to_movie.rb +5 -0
- data/test/dummy/db/schema.rb +22 -14
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +3164 -0
- data/test/factories.rb +20 -0
- data/test/recommendable/helpers/calculations_test.rb +2 -1
- data/test/recommendable/helpers/redis_key_mapper_test.rb +65 -0
- data/test/recommendable/ratable_test.rb +87 -1
- data/test/recommendable/rater/bookmarker_test.rb +29 -2
- data/test/recommendable/rater/disliker_test.rb +29 -2
- data/test/recommendable/rater/hider_test.rb +27 -1
- data/test/recommendable/rater/liker_test.rb +29 -2
- data/test/recommendable/rater/recommender_test.rb +2 -1
- data/test/test_helper.rb +1 -2
- metadata +41 -46
- data/test/dummy/db/test.sqlite3-journal +0 -0
@@ -5,6 +5,7 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
5
5
|
def setup
|
6
6
|
@user = Factory(:user)
|
7
7
|
@movie = Factory(:movie)
|
8
|
+
@doc = Factory(:documentary)
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_that_like_adds_to_liked_set
|
@@ -13,6 +14,12 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
13
14
|
assert_includes @user.liked_movie_ids, @movie.id
|
14
15
|
end
|
15
16
|
|
17
|
+
def test_that_like_adds_subclass_likes_to_liked_set
|
18
|
+
refute_includes @user.liked_movie_ids, @doc.id
|
19
|
+
@user.like(@doc)
|
20
|
+
assert_includes @user.liked_movie_ids, @doc.id
|
21
|
+
end
|
22
|
+
|
16
23
|
def test_that_cant_like_already_liked_object
|
17
24
|
assert @user.like(@movie)
|
18
25
|
assert_nil @user.like(@movie)
|
@@ -39,6 +46,13 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
39
46
|
refute_includes @user.liked_movie_ids, @movie.id
|
40
47
|
end
|
41
48
|
|
49
|
+
def test_that_unlike_removes_subclass_item_from_liked_set
|
50
|
+
@user.like(@doc)
|
51
|
+
assert_includes @user.liked_movie_ids, @doc.id
|
52
|
+
@user.unlike(@doc)
|
53
|
+
refute_includes @user.liked_movie_ids, @doc.id
|
54
|
+
end
|
55
|
+
|
42
56
|
def test_that_cant_unlike_item_unless_liked
|
43
57
|
assert_nil @user.unlike(@movie)
|
44
58
|
end
|
@@ -47,6 +61,10 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
47
61
|
refute_includes @user.likes, @movie
|
48
62
|
@user.like(@movie)
|
49
63
|
assert_includes @user.likes, @movie
|
64
|
+
|
65
|
+
refute_includes @user.likes, @doc
|
66
|
+
@user.like(@doc)
|
67
|
+
assert_includes @user.likes, @doc
|
50
68
|
end
|
51
69
|
|
52
70
|
def test_that_dynamic_liked_finder_only_returns_relevant_records
|
@@ -65,8 +83,9 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
65
83
|
@user.like(@movie)
|
66
84
|
@user.like(movie2)
|
67
85
|
@user.like(book)
|
86
|
+
@user.like(@doc)
|
68
87
|
|
69
|
-
assert_equal @user.likes_count,
|
88
|
+
assert_equal @user.likes_count, 4
|
70
89
|
end
|
71
90
|
|
72
91
|
def test_that_dynamic_liked_count_methods_only_count_relevant_likes
|
@@ -75,9 +94,10 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
75
94
|
|
76
95
|
@user.like(@movie)
|
77
96
|
@user.like(movie2)
|
97
|
+
@user.like(@doc)
|
78
98
|
@user.like(book)
|
79
99
|
|
80
|
-
assert_equal @user.liked_movies_count,
|
100
|
+
assert_equal @user.liked_movies_count, 3
|
81
101
|
assert_equal @user.liked_books_count, 1
|
82
102
|
end
|
83
103
|
|
@@ -90,11 +110,14 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
90
110
|
@user.like(@movie)
|
91
111
|
@user.like(book)
|
92
112
|
@user.like(movie2)
|
113
|
+
@user.like(@doc)
|
93
114
|
friend.like(@movie)
|
94
115
|
friend.like(book)
|
95
116
|
friend.like(book2)
|
117
|
+
friend.like(@doc)
|
96
118
|
|
97
119
|
assert_includes @user.likes_in_common_with(friend), @movie
|
120
|
+
assert_includes @user.likes_in_common_with(friend), @doc
|
98
121
|
assert_includes @user.likes_in_common_with(friend), book
|
99
122
|
refute_includes @user.likes_in_common_with(friend), movie2
|
100
123
|
refute_includes friend.likes_in_common_with(@user), book2
|
@@ -106,14 +129,18 @@ class LikerTest < MiniTest::Unit::TestCase
|
|
106
129
|
book = Factory(:book)
|
107
130
|
|
108
131
|
@user.like(@movie)
|
132
|
+
@user.like(@doc)
|
109
133
|
@user.like(book)
|
110
134
|
friend.like(@movie)
|
135
|
+
friend.like(@doc)
|
111
136
|
friend.like(book)
|
112
137
|
|
113
138
|
assert_includes @user.liked_movies_in_common_with(friend), @movie
|
139
|
+
assert_includes @user.liked_movies_in_common_with(friend), @doc
|
114
140
|
assert_includes @user.liked_books_in_common_with(friend), book
|
115
141
|
refute_includes @user.liked_movies_in_common_with(friend), book
|
116
142
|
refute_includes @user.liked_books_in_common_with(friend), @movie
|
143
|
+
refute_includes @user.liked_books_in_common_with(friend), @doc
|
117
144
|
end
|
118
145
|
|
119
146
|
def teardown
|
@@ -5,7 +5,8 @@ class RecommenderTest < MiniTest::Unit::TestCase
|
|
5
5
|
def setup
|
6
6
|
@user = Factory(:user)
|
7
7
|
5.times { |x| instance_variable_set(:"@user#{x+1}", Factory(:user)) }
|
8
|
-
|
8
|
+
5.times { |x| instance_variable_set(:"@movie#{x+1}", Factory(:movie)) }
|
9
|
+
5.upto(9) { |x| instance_variable_set(:"@movie#{x+1}", Factory(:documentary)) }
|
9
10
|
10.times { |x| instance_variable_set(:"@book#{x+1}", Factory(:book)) }
|
10
11
|
|
11
12
|
[@movie1, @movie2, @movie3, @book4, @book5, @book6].each { |obj| @user.like(obj) }
|
data/test/test_helper.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
ENV['RAILS_ENV'] = 'test'
|
2
2
|
|
3
3
|
require File.expand_path('../dummy/config/environment.rb', __FILE__)
|
4
|
-
require 'rails/test_help'
|
5
4
|
|
5
|
+
require 'minitest/autorun'
|
6
6
|
require 'minitest/unit'
|
7
7
|
require 'minitest/pride'
|
8
|
-
require 'minitest/autorun'
|
9
8
|
|
10
9
|
require 'database_cleaner'
|
11
10
|
|
metadata
CHANGED
@@ -1,139 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recommendable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Celis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.0.0
|
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
26
|
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: redis
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.2.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: hooks
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.2.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.2.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '4.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '4.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: miniskirt
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: yard
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rails
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 3.1.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 3.1.0
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: sqlite3
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - '>='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: database_cleaner
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- -
|
115
|
+
- - ">="
|
130
116
|
- !ruby/object:Gem::Version
|
131
117
|
version: '0'
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- -
|
122
|
+
- - ">="
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
description: |
|
@@ -144,35 +130,41 @@ executables: []
|
|
144
130
|
extensions: []
|
145
131
|
extra_rdoc_files: []
|
146
132
|
files:
|
133
|
+
- lib/recommendable.rb
|
147
134
|
- lib/recommendable/configuration.rb
|
135
|
+
- lib/recommendable/helpers.rb
|
148
136
|
- lib/recommendable/helpers/calculations.rb
|
149
137
|
- lib/recommendable/helpers/queriers.rb
|
150
138
|
- lib/recommendable/helpers/redis_key_mapper.rb
|
151
|
-
- lib/recommendable/helpers.rb
|
152
139
|
- lib/recommendable/orm/active_record.rb
|
153
140
|
- lib/recommendable/orm/data_mapper.rb
|
154
141
|
- lib/recommendable/orm/mongo_mapper.rb
|
155
142
|
- lib/recommendable/orm/mongoid.rb
|
156
143
|
- lib/recommendable/orm/sequel.rb
|
144
|
+
- lib/recommendable/ratable.rb
|
157
145
|
- lib/recommendable/ratable/dislikable.rb
|
158
146
|
- lib/recommendable/ratable/likable.rb
|
159
|
-
- lib/recommendable/
|
147
|
+
- lib/recommendable/rater.rb
|
160
148
|
- lib/recommendable/rater/bookmarker.rb
|
161
149
|
- lib/recommendable/rater/disliker.rb
|
162
150
|
- lib/recommendable/rater/hider.rb
|
163
151
|
- lib/recommendable/rater/liker.rb
|
164
152
|
- lib/recommendable/rater/recommender.rb
|
165
|
-
- lib/recommendable/rater.rb
|
166
153
|
- lib/recommendable/version.rb
|
167
154
|
- lib/recommendable/workers/delayed_job.rb
|
168
155
|
- lib/recommendable/workers/resque.rb
|
169
156
|
- lib/recommendable/workers/sidekiq.rb
|
170
157
|
- lib/recommendable/workers/torque_box.rb
|
171
|
-
-
|
158
|
+
- test/dummy/Rakefile
|
159
|
+
- test/dummy/app/models/boat.rb
|
172
160
|
- test/dummy/app/models/book.rb
|
161
|
+
- test/dummy/app/models/car.rb
|
162
|
+
- test/dummy/app/models/documentary.rb
|
173
163
|
- test/dummy/app/models/movie.rb
|
174
164
|
- test/dummy/app/models/rock.rb
|
175
165
|
- test/dummy/app/models/user.rb
|
166
|
+
- test/dummy/app/models/vehicle.rb
|
167
|
+
- test/dummy/config.ru
|
176
168
|
- test/dummy/config/application.rb
|
177
169
|
- test/dummy/config/boot.rb
|
178
170
|
- test/dummy/config/database.yml
|
@@ -188,18 +180,17 @@ files:
|
|
188
180
|
- test/dummy/config/initializers/session_store.rb
|
189
181
|
- test/dummy/config/initializers/wrap_parameters.rb
|
190
182
|
- test/dummy/config/routes.rb
|
191
|
-
- test/dummy/config.ru
|
192
183
|
- test/dummy/db/development.sqlite3
|
193
184
|
- test/dummy/db/migrate/20121006052300_create_users.rb
|
194
185
|
- test/dummy/db/migrate/20121006052339_create_movies.rb
|
195
186
|
- test/dummy/db/migrate/20121007212545_create_rocks.rb
|
196
187
|
- test/dummy/db/migrate/20121007213144_create_books.rb
|
188
|
+
- test/dummy/db/migrate/20131226071447_create_vehicles.rb
|
189
|
+
- test/dummy/db/migrate/20131226165647_add_type_to_movie.rb
|
197
190
|
- test/dummy/db/schema.rb
|
198
191
|
- test/dummy/db/seeds.rb
|
199
192
|
- test/dummy/db/test.sqlite3
|
200
|
-
- test/dummy/db/test.sqlite3-journal
|
201
193
|
- test/dummy/log/test.log
|
202
|
-
- test/dummy/Rakefile
|
203
194
|
- test/dummy/script/rails
|
204
195
|
- test/factories.rb
|
205
196
|
- test/recommendable/helpers/calculations_test.rb
|
@@ -224,25 +215,29 @@ require_paths:
|
|
224
215
|
- lib
|
225
216
|
required_ruby_version: !ruby/object:Gem::Requirement
|
226
217
|
requirements:
|
227
|
-
- -
|
218
|
+
- - ">="
|
228
219
|
- !ruby/object:Gem::Version
|
229
220
|
version: '0'
|
230
221
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
231
222
|
requirements:
|
232
|
-
- -
|
223
|
+
- - ">="
|
233
224
|
- !ruby/object:Gem::Version
|
234
225
|
version: '0'
|
235
226
|
requirements: []
|
236
227
|
rubyforge_project:
|
237
|
-
rubygems_version: 2.0
|
228
|
+
rubygems_version: 2.2.0
|
238
229
|
signing_key:
|
239
230
|
specification_version: 4
|
240
231
|
summary: A Like/Dislike recommendation engine for Ruby apps using Redis
|
241
232
|
test_files:
|
233
|
+
- test/dummy/app/models/boat.rb
|
242
234
|
- test/dummy/app/models/book.rb
|
235
|
+
- test/dummy/app/models/car.rb
|
236
|
+
- test/dummy/app/models/documentary.rb
|
243
237
|
- test/dummy/app/models/movie.rb
|
244
238
|
- test/dummy/app/models/rock.rb
|
245
239
|
- test/dummy/app/models/user.rb
|
240
|
+
- test/dummy/app/models/vehicle.rb
|
246
241
|
- test/dummy/config/application.rb
|
247
242
|
- test/dummy/config/boot.rb
|
248
243
|
- test/dummy/config/database.yml
|
@@ -264,10 +259,11 @@ test_files:
|
|
264
259
|
- test/dummy/db/migrate/20121006052339_create_movies.rb
|
265
260
|
- test/dummy/db/migrate/20121007212545_create_rocks.rb
|
266
261
|
- test/dummy/db/migrate/20121007213144_create_books.rb
|
262
|
+
- test/dummy/db/migrate/20131226071447_create_vehicles.rb
|
263
|
+
- test/dummy/db/migrate/20131226165647_add_type_to_movie.rb
|
267
264
|
- test/dummy/db/schema.rb
|
268
265
|
- test/dummy/db/seeds.rb
|
269
266
|
- test/dummy/db/test.sqlite3
|
270
|
-
- test/dummy/db/test.sqlite3-journal
|
271
267
|
- test/dummy/log/test.log
|
272
268
|
- test/dummy/Rakefile
|
273
269
|
- test/dummy/script/rails
|
@@ -284,4 +280,3 @@ test_files:
|
|
284
280
|
- test/recommendable/rater/recommender_test.rb
|
285
281
|
- test/recommendable/rater_test.rb
|
286
282
|
- test/test_helper.rb
|
287
|
-
has_rdoc: yard
|
Binary file
|