feedable 0.0.1 → 0.9.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.
Files changed (54) hide show
  1. data/README.md +56 -3
  2. data/lib/feedable.rb +75 -0
  3. data/lib/feedable/active_record.rb +16 -0
  4. data/lib/feedable/version.rb +1 -1
  5. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  6. data/test/dummy/app/controllers/alligators_controller.rb +83 -0
  7. data/test/dummy/app/controllers/posts_controller.rb +83 -0
  8. data/test/dummy/app/controllers/roosters_controller.rb +83 -0
  9. data/test/dummy/app/controllers/trumpets_controller.rb +83 -0
  10. data/test/dummy/app/helpers/alligators_helper.rb +2 -0
  11. data/test/dummy/app/helpers/posts_helper.rb +2 -0
  12. data/test/dummy/app/helpers/roosters_helper.rb +2 -0
  13. data/test/dummy/app/helpers/trumpets_helper.rb +2 -0
  14. data/test/dummy/app/models/alligator.rb +4 -0
  15. data/test/dummy/app/models/post.rb +4 -0
  16. data/test/dummy/app/models/rooster.rb +4 -0
  17. data/test/dummy/app/models/trumpet.rb +3 -0
  18. data/test/dummy/app/views/alligators/_form.html.erb +21 -0
  19. data/test/dummy/app/views/alligators/edit.html.erb +6 -0
  20. data/test/dummy/app/views/alligators/index.html.erb +23 -0
  21. data/test/dummy/app/views/alligators/new.html.erb +5 -0
  22. data/test/dummy/app/views/alligators/show.html.erb +10 -0
  23. data/test/dummy/app/views/posts/_form.html.erb +25 -0
  24. data/test/dummy/app/views/posts/edit.html.erb +6 -0
  25. data/test/dummy/app/views/posts/index.html.erb +25 -0
  26. data/test/dummy/app/views/posts/new.html.erb +5 -0
  27. data/test/dummy/app/views/posts/show.html.erb +15 -0
  28. data/test/dummy/app/views/roosters/_form.html.erb +25 -0
  29. data/test/dummy/app/views/roosters/edit.html.erb +6 -0
  30. data/test/dummy/app/views/roosters/index.html.erb +25 -0
  31. data/test/dummy/app/views/roosters/new.html.erb +5 -0
  32. data/test/dummy/app/views/roosters/show.html.erb +15 -0
  33. data/test/dummy/app/views/trumpets/_form.html.erb +25 -0
  34. data/test/dummy/app/views/trumpets/edit.html.erb +6 -0
  35. data/test/dummy/app/views/trumpets/index.html.erb +25 -0
  36. data/test/dummy/app/views/trumpets/new.html.erb +5 -0
  37. data/test/dummy/app/views/trumpets/show.html.erb +15 -0
  38. data/test/dummy/config/routes.rb +8 -0
  39. data/test/dummy/db/development.sqlite3 +0 -0
  40. data/test/dummy/db/migrate/20120509025908_create_posts.rb +10 -0
  41. data/test/dummy/db/migrate/20120509030117_create_alligators.rb +9 -0
  42. data/test/dummy/db/migrate/20120509030249_create_roosters.rb +10 -0
  43. data/test/dummy/db/migrate/20120509030326_create_trumpets.rb +10 -0
  44. data/test/dummy/db/schema.rb +43 -0
  45. data/test/dummy/db/test.sqlite3 +0 -0
  46. data/test/dummy/log/development.log +63 -0
  47. data/test/dummy/log/test.log +4666 -0
  48. data/test/feedable_test.rb +50 -3
  49. data/test/fixtures/alligators.yml +12 -0
  50. data/test/fixtures/posts.yml +15 -0
  51. data/test/fixtures/roosters.yml +15 -0
  52. data/test/fixtures/trumpets.yml +15 -0
  53. data/test/test_helper.rb +8 -2
  54. metadata +105 -12
@@ -1,7 +1,54 @@
1
1
  require 'test_helper'
2
2
 
3
- class FeedableTest < ActiveSupport::TestCase
4
- test "truth" do
5
- assert_kind_of Module, Feedable
3
+ class FeebableTest < ActiveSupport::TestCase
4
+ test "exists" do
5
+ assert_kind_of Module, Feedable, "feedable isn't what it seems to be"
6
+ end
7
+
8
+ test "feedable all" do
9
+ @stuff = feedable Post, Rooster, Alligator
10
+ assert_equal @stuff.length, 9, "not 9 things"
11
+ assert_equal @stuff[0], roosters(:roostr3), "wrong order"
12
+ assert_equal @stuff[1], posts(:post3), "wrong order"
13
+ assert_equal @stuff[2], alligators(:gator3), "wrong order"
14
+ assert_equal @stuff[3], roosters(:roostr2), "wrong order"
15
+ assert_equal @stuff[4], posts(:post2), "wrong order"
16
+ assert_equal @stuff[5], alligators(:gator2), "wrong order"
17
+ assert_equal @stuff[6], roosters(:roostr1), "wrong order"
18
+ assert_equal @stuff[7], posts(:post1), "wrong order"
19
+ assert_equal @stuff[8], alligators(:gator1), "wrong order"
20
+ end
21
+
22
+ test "feedable limit" do
23
+ @stuff = feedable Alligator, Post, Rooster, :limit => 5
24
+ assert_equal @stuff.length, 5, "not 5 things"
25
+ end
26
+
27
+ test "feedable offset" do
28
+ @stuff = feedable Alligator, Post, Rooster, :limit => 5, :offset => 2
29
+ assert_equal @stuff.length, 5, "not 5 things"
30
+ assert_equal @stuff[0], alligators(:gator3), "not offset"
31
+ end
32
+
33
+ test "feedable order" do
34
+ @stuff = feedable Alligator, Post, Rooster, :order => 'asc'
35
+ assert_equal @stuff[0], alligators(:gator1), "not ordered asc"
36
+
37
+ @stuff = feedable Alligator, Post, Rooster, :order => 'desc'
38
+ assert_equal @stuff[0], roosters(:roostr3), "not ordered desc"
39
+ end
40
+
41
+ test "feedable where conditions" do
42
+ @stuff = feedable Post.where("title='Poster 3'"),
43
+ Rooster.where("kind='DNE'"),
44
+ Alligator.where("name is not null")
45
+
46
+ assert_equal @stuff.length, 4, "not 4 things"
47
+ end
48
+
49
+ test "unfeedable in query" do
50
+ assert_raise RuntimeError do
51
+ @stuff = feedable Post, Rooster, Trumpet, Alligator
52
+ end
6
53
  end
7
54
  end
@@ -0,0 +1,12 @@
1
+ gator1:
2
+ name: James
3
+ created_at: "2012-01-01 00:00:00"
4
+ updated_at: "2012-01-01 00:00:00"
5
+ gator2:
6
+ name: Spot
7
+ created_at: "2012-02-01 00:00:00"
8
+ updated_at: "2012-02-01 00:00:00"
9
+ gator3:
10
+ name: Cameron
11
+ created_at: "2012-03-01 00:00:00"
12
+ updated_at: "2012-03-01 00:00:00"
@@ -0,0 +1,15 @@
1
+ post1:
2
+ title: The first post
3
+ desc: this is the first thing
4
+ created_at: "2012-01-05 00:00:00"
5
+ updated_at: "2012-01-05 00:00:00"
6
+ post2:
7
+ title: Post the second
8
+ desc: in between them
9
+ created_at: "2012-02-05 00:00:00"
10
+ updated_at: "2012-02-05 00:00:00"
11
+ post3:
12
+ title: Poster 3
13
+ desc: and the last one
14
+ created_at: "2012-03-05 00:00:00"
15
+ updated_at: "2012-03-05 00:00:00"
@@ -0,0 +1,15 @@
1
+ roostr1:
2
+ kind: The first roostr
3
+ awesomeness: "4"
4
+ created_at: "2012-01-10 00:00:00"
5
+ updated_at: "2012-01-10 00:00:00"
6
+ roostr2:
7
+ kind: roostr the second
8
+ awesomeness: "100"
9
+ created_at: "2012-02-10 00:00:00"
10
+ updated_at: "2012-02-10 00:00:00"
11
+ roostr3:
12
+ kind: roostr 3
13
+ awesomeness: "5"
14
+ created_at: "2012-03-10 00:00:00"
15
+ updated_at: "2012-03-10 00:00:00"
@@ -0,0 +1,15 @@
1
+ roostr1:
2
+ brand: yamaha
3
+ loudness: "a bit"
4
+ created_at: "2012-01-15 00:00:00"
5
+ updated_at: "2012-01-15 00:00:00"
6
+ roostr2:
7
+ brand: bach
8
+ loudness: "earth shattering"
9
+ created_at: "2012-02-15 00:00:00"
10
+ updated_at: "2012-02-15 00:00:00"
11
+ roostr3:
12
+ brand: getzen
13
+ loudness: "annoying"
14
+ created_at: "2012-03-15 00:00:00"
15
+ updated_at: "2012-03-15 00:00:00"
@@ -1,6 +1,4 @@
1
- # Configure Rails Environment
2
1
  ENV["RAILS_ENV"] = "test"
3
-
4
2
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
3
  require "rails/test_help"
6
4
 
@@ -13,3 +11,11 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
11
  if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
12
  ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
13
  end
14
+
15
+ class ActiveSupport::TestCase
16
+ fixtures :all
17
+ end
18
+
19
+ class ActionController::TestCase
20
+ fixtures :all
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.9.0
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-05-09 00:00:00.000000000 Z
12
+ date: 2012-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70093443101820 !ruby/object:Gem::Requirement
16
+ requirement: &70332992384520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70093443101820
24
+ version_requirements: *70332992384520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activerecord
27
- requirement: &70093443099800 !ruby/object:Gem::Requirement
27
+ requirement: &70332992398360 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70093443099800
35
+ version_requirements: *70332992398360
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activemodel
38
- requirement: &70093443113860 !ruby/object:Gem::Requirement
38
+ requirement: &70332992396820 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 3.0.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70093443113860
46
+ version_requirements: *70332992396820
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70093443112420 !ruby/object:Gem::Requirement
49
+ requirement: &70332992395860 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 3.0.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70093443112420
57
+ version_requirements: *70332992395860
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sqlite3
60
- requirement: &70093443111380 !ruby/object:Gem::Requirement
60
+ requirement: &70332992394800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70093443111380
68
+ version_requirements: *70332992394800
69
69
  description: Create a composite feed of 'recent activity' from multiple models in
70
70
  your rails app. They will be sorted by a datetime column (usually created_at). This
71
71
  removes the need for insert hooks to create 'activity' in an extra table.
@@ -75,6 +75,7 @@ executables: []
75
75
  extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
+ - lib/feedable/active_record.rb
78
79
  - lib/feedable/version.rb
79
80
  - lib/feedable.rb
80
81
  - lib/tasks/feedable_tasks.rake
@@ -83,9 +84,42 @@ files:
83
84
  - README.md
84
85
  - test/dummy/app/assets/javascripts/application.js
85
86
  - test/dummy/app/assets/stylesheets/application.css
87
+ - test/dummy/app/assets/stylesheets/scaffold.css
88
+ - test/dummy/app/controllers/alligators_controller.rb
86
89
  - test/dummy/app/controllers/application_controller.rb
90
+ - test/dummy/app/controllers/posts_controller.rb
91
+ - test/dummy/app/controllers/roosters_controller.rb
92
+ - test/dummy/app/controllers/trumpets_controller.rb
93
+ - test/dummy/app/helpers/alligators_helper.rb
87
94
  - test/dummy/app/helpers/application_helper.rb
95
+ - test/dummy/app/helpers/posts_helper.rb
96
+ - test/dummy/app/helpers/roosters_helper.rb
97
+ - test/dummy/app/helpers/trumpets_helper.rb
98
+ - test/dummy/app/models/alligator.rb
99
+ - test/dummy/app/models/post.rb
100
+ - test/dummy/app/models/rooster.rb
101
+ - test/dummy/app/models/trumpet.rb
102
+ - test/dummy/app/views/alligators/_form.html.erb
103
+ - test/dummy/app/views/alligators/edit.html.erb
104
+ - test/dummy/app/views/alligators/index.html.erb
105
+ - test/dummy/app/views/alligators/new.html.erb
106
+ - test/dummy/app/views/alligators/show.html.erb
88
107
  - test/dummy/app/views/layouts/application.html.erb
108
+ - test/dummy/app/views/posts/_form.html.erb
109
+ - test/dummy/app/views/posts/edit.html.erb
110
+ - test/dummy/app/views/posts/index.html.erb
111
+ - test/dummy/app/views/posts/new.html.erb
112
+ - test/dummy/app/views/posts/show.html.erb
113
+ - test/dummy/app/views/roosters/_form.html.erb
114
+ - test/dummy/app/views/roosters/edit.html.erb
115
+ - test/dummy/app/views/roosters/index.html.erb
116
+ - test/dummy/app/views/roosters/new.html.erb
117
+ - test/dummy/app/views/roosters/show.html.erb
118
+ - test/dummy/app/views/trumpets/_form.html.erb
119
+ - test/dummy/app/views/trumpets/edit.html.erb
120
+ - test/dummy/app/views/trumpets/index.html.erb
121
+ - test/dummy/app/views/trumpets/new.html.erb
122
+ - test/dummy/app/views/trumpets/show.html.erb
89
123
  - test/dummy/config/application.rb
90
124
  - test/dummy/config/boot.rb
91
125
  - test/dummy/config/database.yml
@@ -102,6 +136,15 @@ files:
102
136
  - test/dummy/config/locales/en.yml
103
137
  - test/dummy/config/routes.rb
104
138
  - test/dummy/config.ru
139
+ - test/dummy/db/development.sqlite3
140
+ - test/dummy/db/migrate/20120509025908_create_posts.rb
141
+ - test/dummy/db/migrate/20120509030117_create_alligators.rb
142
+ - test/dummy/db/migrate/20120509030249_create_roosters.rb
143
+ - test/dummy/db/migrate/20120509030326_create_trumpets.rb
144
+ - test/dummy/db/schema.rb
145
+ - test/dummy/db/test.sqlite3
146
+ - test/dummy/log/development.log
147
+ - test/dummy/log/test.log
105
148
  - test/dummy/public/404.html
106
149
  - test/dummy/public/422.html
107
150
  - test/dummy/public/500.html
@@ -110,6 +153,10 @@ files:
110
153
  - test/dummy/README.rdoc
111
154
  - test/dummy/script/rails
112
155
  - test/feedable_test.rb
156
+ - test/fixtures/alligators.yml
157
+ - test/fixtures/posts.yml
158
+ - test/fixtures/roosters.yml
159
+ - test/fixtures/trumpets.yml
113
160
  - test/test_helper.rb
114
161
  homepage: https://github.com/rtanc/feedable
115
162
  licenses: []
@@ -139,9 +186,42 @@ summary: Generate an activity feed from several ActiveRecord models, without the
139
186
  test_files:
140
187
  - test/dummy/app/assets/javascripts/application.js
141
188
  - test/dummy/app/assets/stylesheets/application.css
189
+ - test/dummy/app/assets/stylesheets/scaffold.css
190
+ - test/dummy/app/controllers/alligators_controller.rb
142
191
  - test/dummy/app/controllers/application_controller.rb
192
+ - test/dummy/app/controllers/posts_controller.rb
193
+ - test/dummy/app/controllers/roosters_controller.rb
194
+ - test/dummy/app/controllers/trumpets_controller.rb
195
+ - test/dummy/app/helpers/alligators_helper.rb
143
196
  - test/dummy/app/helpers/application_helper.rb
197
+ - test/dummy/app/helpers/posts_helper.rb
198
+ - test/dummy/app/helpers/roosters_helper.rb
199
+ - test/dummy/app/helpers/trumpets_helper.rb
200
+ - test/dummy/app/models/alligator.rb
201
+ - test/dummy/app/models/post.rb
202
+ - test/dummy/app/models/rooster.rb
203
+ - test/dummy/app/models/trumpet.rb
204
+ - test/dummy/app/views/alligators/_form.html.erb
205
+ - test/dummy/app/views/alligators/edit.html.erb
206
+ - test/dummy/app/views/alligators/index.html.erb
207
+ - test/dummy/app/views/alligators/new.html.erb
208
+ - test/dummy/app/views/alligators/show.html.erb
144
209
  - test/dummy/app/views/layouts/application.html.erb
210
+ - test/dummy/app/views/posts/_form.html.erb
211
+ - test/dummy/app/views/posts/edit.html.erb
212
+ - test/dummy/app/views/posts/index.html.erb
213
+ - test/dummy/app/views/posts/new.html.erb
214
+ - test/dummy/app/views/posts/show.html.erb
215
+ - test/dummy/app/views/roosters/_form.html.erb
216
+ - test/dummy/app/views/roosters/edit.html.erb
217
+ - test/dummy/app/views/roosters/index.html.erb
218
+ - test/dummy/app/views/roosters/new.html.erb
219
+ - test/dummy/app/views/roosters/show.html.erb
220
+ - test/dummy/app/views/trumpets/_form.html.erb
221
+ - test/dummy/app/views/trumpets/edit.html.erb
222
+ - test/dummy/app/views/trumpets/index.html.erb
223
+ - test/dummy/app/views/trumpets/new.html.erb
224
+ - test/dummy/app/views/trumpets/show.html.erb
145
225
  - test/dummy/config/application.rb
146
226
  - test/dummy/config/boot.rb
147
227
  - test/dummy/config/database.yml
@@ -158,6 +238,15 @@ test_files:
158
238
  - test/dummy/config/locales/en.yml
159
239
  - test/dummy/config/routes.rb
160
240
  - test/dummy/config.ru
241
+ - test/dummy/db/development.sqlite3
242
+ - test/dummy/db/migrate/20120509025908_create_posts.rb
243
+ - test/dummy/db/migrate/20120509030117_create_alligators.rb
244
+ - test/dummy/db/migrate/20120509030249_create_roosters.rb
245
+ - test/dummy/db/migrate/20120509030326_create_trumpets.rb
246
+ - test/dummy/db/schema.rb
247
+ - test/dummy/db/test.sqlite3
248
+ - test/dummy/log/development.log
249
+ - test/dummy/log/test.log
161
250
  - test/dummy/public/404.html
162
251
  - test/dummy/public/422.html
163
252
  - test/dummy/public/500.html
@@ -166,4 +255,8 @@ test_files:
166
255
  - test/dummy/README.rdoc
167
256
  - test/dummy/script/rails
168
257
  - test/feedable_test.rb
258
+ - test/fixtures/alligators.yml
259
+ - test/fixtures/posts.yml
260
+ - test/fixtures/roosters.yml
261
+ - test/fixtures/trumpets.yml
169
262
  - test/test_helper.rb