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
@@ -2,8 +2,6 @@ module Primer
|
|
2
2
|
module Watcher
|
3
3
|
|
4
4
|
module Macros
|
5
|
-
attr_reader :primer_watched_calls
|
6
|
-
|
7
5
|
def self.extended(klass)
|
8
6
|
if defined?(ActiveRecord) and klass < ActiveRecord::Base
|
9
7
|
klass.extend(ActiveRecordMacros)
|
@@ -14,22 +12,21 @@ module Primer
|
|
14
12
|
method_name.to_s.gsub(/[^a-z0-9_]$/i, '') + '_before_primer_patch'
|
15
13
|
end
|
16
14
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
def primer_watched_calls
|
16
|
+
@primer_watched_calls ||= (Macros === superclass) ?
|
17
|
+
superclass.primer_watched_calls.dup :
|
18
|
+
Set.new
|
21
19
|
end
|
22
20
|
|
23
|
-
def
|
24
|
-
|
25
|
-
|
26
|
-
subclass.watch_calls_to(*calls)
|
21
|
+
def watch_calls_to(*methods)
|
22
|
+
method_names = methods.map { |m| m.to_s }
|
23
|
+
primer_watched_calls.merge(method_names)
|
27
24
|
end
|
28
25
|
|
29
26
|
def patch_for_primer!
|
30
|
-
return if @
|
27
|
+
return if @primer_patched
|
31
28
|
@primer_patched = true
|
32
|
-
|
29
|
+
primer_watched_calls.each do |method_name|
|
33
30
|
patch_method_for_primer(method_name)
|
34
31
|
end
|
35
32
|
end
|
@@ -48,9 +45,9 @@ module Primer
|
|
48
45
|
end
|
49
46
|
|
50
47
|
def unpatch_for_primer!
|
51
|
-
return
|
48
|
+
return unless @primer_patched
|
52
49
|
@primer_patched = false
|
53
|
-
|
50
|
+
primer_watched_calls.each do |method_name|
|
54
51
|
unpatch_method_for_primer(method_name)
|
55
52
|
end
|
56
53
|
end
|