feedable 0.0.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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