feedable 0.0.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +56 -3
- data/lib/feedable.rb +75 -0
- data/lib/feedable/active_record.rb +16 -0
- data/lib/feedable/version.rb +1 -1
- data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
- data/test/dummy/app/controllers/alligators_controller.rb +83 -0
- data/test/dummy/app/controllers/posts_controller.rb +83 -0
- data/test/dummy/app/controllers/roosters_controller.rb +83 -0
- data/test/dummy/app/controllers/trumpets_controller.rb +83 -0
- data/test/dummy/app/helpers/alligators_helper.rb +2 -0
- data/test/dummy/app/helpers/posts_helper.rb +2 -0
- data/test/dummy/app/helpers/roosters_helper.rb +2 -0
- data/test/dummy/app/helpers/trumpets_helper.rb +2 -0
- data/test/dummy/app/models/alligator.rb +4 -0
- data/test/dummy/app/models/post.rb +4 -0
- data/test/dummy/app/models/rooster.rb +4 -0
- data/test/dummy/app/models/trumpet.rb +3 -0
- data/test/dummy/app/views/alligators/_form.html.erb +21 -0
- data/test/dummy/app/views/alligators/edit.html.erb +6 -0
- data/test/dummy/app/views/alligators/index.html.erb +23 -0
- data/test/dummy/app/views/alligators/new.html.erb +5 -0
- data/test/dummy/app/views/alligators/show.html.erb +10 -0
- data/test/dummy/app/views/posts/_form.html.erb +25 -0
- data/test/dummy/app/views/posts/edit.html.erb +6 -0
- data/test/dummy/app/views/posts/index.html.erb +25 -0
- data/test/dummy/app/views/posts/new.html.erb +5 -0
- data/test/dummy/app/views/posts/show.html.erb +15 -0
- data/test/dummy/app/views/roosters/_form.html.erb +25 -0
- data/test/dummy/app/views/roosters/edit.html.erb +6 -0
- data/test/dummy/app/views/roosters/index.html.erb +25 -0
- data/test/dummy/app/views/roosters/new.html.erb +5 -0
- data/test/dummy/app/views/roosters/show.html.erb +15 -0
- data/test/dummy/app/views/trumpets/_form.html.erb +25 -0
- data/test/dummy/app/views/trumpets/edit.html.erb +6 -0
- data/test/dummy/app/views/trumpets/index.html.erb +25 -0
- data/test/dummy/app/views/trumpets/new.html.erb +5 -0
- data/test/dummy/app/views/trumpets/show.html.erb +15 -0
- data/test/dummy/config/routes.rb +8 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20120509025908_create_posts.rb +10 -0
- data/test/dummy/db/migrate/20120509030117_create_alligators.rb +9 -0
- data/test/dummy/db/migrate/20120509030249_create_roosters.rb +10 -0
- data/test/dummy/db/migrate/20120509030326_create_trumpets.rb +10 -0
- data/test/dummy/db/schema.rb +43 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +63 -0
- data/test/dummy/log/test.log +4666 -0
- data/test/feedable_test.rb +50 -3
- data/test/fixtures/alligators.yml +12 -0
- data/test/fixtures/posts.yml +15 -0
- data/test/fixtures/roosters.yml +15 -0
- data/test/fixtures/trumpets.yml +15 -0
- data/test/test_helper.rb +8 -2
- metadata +105 -12
data/test/feedable_test.rb
CHANGED
@@ -1,7 +1,54 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class
|
4
|
-
test "
|
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"
|
data/test/test_helper.rb
CHANGED
@@ -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
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *70332992384520
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activerecord
|
27
|
-
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: *
|
35
|
+
version_requirements: *70332992398360
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activemodel
|
38
|
-
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: *
|
46
|
+
version_requirements: *70332992396820
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activesupport
|
49
|
-
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: *
|
57
|
+
version_requirements: *70332992395860
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sqlite3
|
60
|
-
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: *
|
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
|