3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/mongo_watchable/watchable.rb', line 3
def self.included(watchable)
watchable.class_eval do
MongoWatchable.watchers.each do |watcher|
watcher_key_prefix = watcher.name.underscore.gsub(/\//, '_')
key :"#{watcher_key_prefix}_watcher_ids", Array
key :"#{watcher_key_prefix}_watchers_count", Integer, :default => 0
ensure_index :"#{watcher_key_prefix}_watchers_count"
define_method :"#{watcher_key_prefix}_watchers" do
MongoWatchable::Proxy.new(self, :"#{watcher_key_prefix}_watcher_ids", :"#{watcher_key_prefix}_watchers_count", watcher)
end
end
end
MongoWatchable.watchers.each do |watcher|
watcher.class_eval do
watchable_key_prefix = watchable.name.underscore.gsub(/\//, '_')
key :"#{watchable_key_prefix}_watching_ids", Array
key :"#{watchable_key_prefix}_watchings_count", Integer, :default => 0
ensure_index :"#{watchable_key_prefix}_watchings_count"
define_method :"#{watchable_key_prefix}_watchings" do
MongoWatchable::Proxy.new(self, :"#{watchable_key_prefix}_watching_ids", :"#{watchable_key_prefix}_watchings_count", watchable)
end
end
end
MongoWatchable.register_watchable watchable
end
|