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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/recommendable/helpers/redis_key_mapper.rb +23 -6
  3. data/lib/recommendable/ratable.rb +16 -3
  4. data/lib/recommendable/version.rb +10 -5
  5. data/test/dummy/app/models/boat.rb +3 -0
  6. data/test/dummy/app/models/book.rb +1 -1
  7. data/test/dummy/app/models/car.rb +4 -0
  8. data/test/dummy/app/models/documentary.rb +3 -0
  9. data/test/dummy/app/models/movie.rb +1 -1
  10. data/test/dummy/app/models/rock.rb +1 -1
  11. data/test/dummy/app/models/user.rb +2 -2
  12. data/test/dummy/app/models/vehicle.rb +3 -0
  13. data/test/dummy/config/application.rb +1 -1
  14. data/test/dummy/config/environments/development.rb +5 -5
  15. data/test/dummy/config/environments/test.rb +5 -5
  16. data/test/dummy/db/development.sqlite3 +0 -0
  17. data/test/dummy/db/migrate/20131226071447_create_vehicles.rb +10 -0
  18. data/test/dummy/db/migrate/20131226165647_add_type_to_movie.rb +5 -0
  19. data/test/dummy/db/schema.rb +22 -14
  20. data/test/dummy/db/test.sqlite3 +0 -0
  21. data/test/dummy/log/test.log +3164 -0
  22. data/test/factories.rb +20 -0
  23. data/test/recommendable/helpers/calculations_test.rb +2 -1
  24. data/test/recommendable/helpers/redis_key_mapper_test.rb +65 -0
  25. data/test/recommendable/ratable_test.rb +87 -1
  26. data/test/recommendable/rater/bookmarker_test.rb +29 -2
  27. data/test/recommendable/rater/disliker_test.rb +29 -2
  28. data/test/recommendable/rater/hider_test.rb +27 -1
  29. data/test/recommendable/rater/liker_test.rb +29 -2
  30. data/test/recommendable/rater/recommender_test.rb +2 -1
  31. data/test/test_helper.rb +1 -2
  32. metadata +41 -46
  33. 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, 3
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, 2
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
- 10.times { |x| instance_variable_set(:"@movie#{x+1}", Factory(:movie)) }
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) }
@@ -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.2
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: 2013-07-31 00:00:00.000000000 Z
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: '0'
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: '0'
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/ratable.rb
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
- - lib/recommendable.rb
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.3
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