primer 0.1.0 → 0.2.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.
- data/History.txt +17 -0
- data/README.rdoc +74 -35
- data/example/README.rdoc +33 -23
- data/example/application.rb +2 -2
- data/example/console.rb +133 -0
- data/example/db/blog.sqlite3 +0 -0
- data/example/{models → db}/connection.rb +0 -0
- data/example/environment.rb +17 -4
- data/example/models/comment.rb +5 -0
- data/example/models/post.rb +5 -0
- data/example/script/setup_database.rb +8 -2
- data/example/views/comments.erb +6 -0
- data/example/views/layout.erb +1 -1
- data/example/views/show.erb +5 -1
- data/lib/primer/bus/amqp.rb +7 -5
- data/lib/primer/bus/amqp.rbc +1045 -0
- data/lib/primer/bus/memory.rbc +344 -0
- data/lib/primer/bus.rb +3 -2
- data/lib/primer/bus.rbc +872 -0
- data/lib/primer/cache/memory.rbc +1443 -0
- data/lib/primer/cache/redis.rb +2 -2
- data/lib/primer/cache/redis.rbc +1643 -0
- data/lib/primer/cache.rb +2 -16
- data/lib/primer/cache.rbc +1502 -0
- data/lib/primer/enabler.rbc +414 -0
- data/lib/primer/helpers.rbc +1438 -0
- data/lib/primer/lazyness.rb +63 -0
- data/lib/primer/lazyness.rbc +1442 -0
- data/lib/primer/real_time.rbc +1999 -0
- data/lib/primer/route_set.rb +1 -0
- data/lib/primer/route_set.rbc +1475 -0
- data/lib/primer/watcher/active_record_macros.rb +13 -3
- data/lib/primer/watcher/active_record_macros.rbc +1796 -0
- data/lib/primer/watcher/macros.rb +11 -14
- data/lib/primer/watcher/macros.rbc +1628 -0
- data/lib/primer/watcher.rb +2 -7
- data/lib/primer/watcher.rbc +1416 -0
- data/lib/primer/worker/active_record_agent.rb +30 -33
- data/lib/primer/worker/active_record_agent.rbc +2840 -0
- data/lib/primer/worker/changes_agent.rb +20 -0
- data/lib/primer/worker/changes_agent.rbc +578 -0
- data/lib/primer/worker.rb +20 -3
- data/lib/primer/worker.rbc +1254 -0
- data/lib/primer.rb +10 -2
- data/lib/primer.rbc +944 -0
- data/spec/db/test.sqlite3 +0 -0
- data/spec/models/artist.rb +3 -2
- data/spec/models/artist.rbc +288 -0
- data/spec/models/blog_post.rb +3 -1
- data/spec/models/blog_post.rbc +181 -0
- data/spec/models/calendar.rbc +209 -0
- data/spec/models/concert.rbc +211 -0
- data/spec/models/performance.rbc +177 -0
- data/spec/models/person.rb +1 -0
- data/spec/models/person.rbc +306 -0
- data/spec/models/watchable.rbc +363 -0
- data/spec/primer/bus_spec.rbc +940 -0
- data/spec/primer/cache_spec.rb +3 -3
- data/spec/primer/cache_spec.rbc +8535 -0
- data/spec/primer/helpers/erb_spec.rb +14 -14
- data/spec/primer/helpers/erb_spec.rbc +2485 -0
- data/spec/primer/lazyness_spec.rb +61 -0
- data/spec/primer/lazyness_spec.rbc +1408 -0
- data/spec/primer/watcher/active_record_spec.rb +15 -15
- data/spec/primer/watcher/active_record_spec.rbc +5202 -0
- data/spec/primer/watcher_spec.rbc +2645 -0
- data/spec/schema.rbc +775 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/spec_helper.rbc +1193 -0
- data/spec/templates/page.erb +0 -1
- metadata +77 -70
- data/example/models/blog_post.rb +0 -4
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Primer::Lazyness do
|
4
|
+
before do
|
5
|
+
@artist = Artist.create(:name => "Menomena")
|
6
|
+
@artist_id = @artist.id
|
7
|
+
end
|
8
|
+
|
9
|
+
it "does not call the database when finding a record" do
|
10
|
+
Artist.should_not_receive(:find_by_sql)
|
11
|
+
Artist.find(@artist_id)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "does not call the database when getting the primary key" do
|
15
|
+
Artist.should_not_receive(:find_by_sql)
|
16
|
+
Artist.find_by_id(@artist_id).id.should == @artist_id
|
17
|
+
end
|
18
|
+
|
19
|
+
it "calls the database to get attributes" do
|
20
|
+
Artist.should_receive(:find_by_sql).and_return([@artist])
|
21
|
+
Artist.find(@artist_id).name.should == "Menomena"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "does not call the database to get the attribute we searched on" do
|
25
|
+
Artist.should_not_receive(:find_by_sql)
|
26
|
+
Artist.find_by_name("Menomena").name.should == "Menomena"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "calls the database to get the primary key if needed" do
|
30
|
+
Artist.should_receive(:find_by_sql).and_return([@artist])
|
31
|
+
Artist.find_by_name("Menomena").id.should == @artist_id
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should be able to tell that an object doesn't really exist" do
|
35
|
+
Artist.find_by_name("The National").should == nil
|
36
|
+
Artist.find_by_name("The National").should be_nil
|
37
|
+
end
|
38
|
+
|
39
|
+
it "does not call the database to get all the records" do
|
40
|
+
Artist.should_not_receive(:find_by_sql)
|
41
|
+
Artist.find(:all)
|
42
|
+
Artist.all
|
43
|
+
end
|
44
|
+
|
45
|
+
it "calls the database when we enumerate all the records" do
|
46
|
+
Artist.should_receive(:find_by_sql).and_return([@artist])
|
47
|
+
Artist.all.should == [@artist]
|
48
|
+
end
|
49
|
+
|
50
|
+
it "does not call the database to get the first record" do
|
51
|
+
Artist.should_not_receive(:find_by_sql)
|
52
|
+
Artist.find(:first)
|
53
|
+
Artist.first
|
54
|
+
end
|
55
|
+
|
56
|
+
it "calls the database when we want an attribute from the first record" do
|
57
|
+
Artist.should_receive(:find_by_sql).and_return([@artist])
|
58
|
+
Artist.first.name.should == "Menomena"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|