active_metadata 0.7.2 → 0.7.3
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.
@@ -10,8 +10,14 @@ module ActiveMetadata::Persistence::Watcher
|
|
10
10
|
ActiveMetadata::Watcher.create! :document_class => metadata_class, :document_id => metadata_id, :label => field, :owner_id => owner.id
|
11
11
|
end
|
12
12
|
|
13
|
+
# return all the watches related to a passed field.
|
14
|
+
# query always match for the current model
|
15
|
+
# matches are returned grouped by owner and contains records that define or not a particular model instance watching
|
13
16
|
def watchers_for(field)
|
14
|
-
ActiveMetadata::Watcher.
|
17
|
+
ActiveMetadata::Watcher.where(
|
18
|
+
"document_class = :document_class AND label = :label AND (document_id = :document_id OR document_id IS NULL)",
|
19
|
+
{ :document_class => metadata_class, :label => field, :document_id => metadata_id }
|
20
|
+
).group("owner_id").all
|
15
21
|
end
|
16
22
|
|
17
23
|
def delete_watcher_for(field, owner)
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|
data/spec/lib/watchers_spec.rb
CHANGED
@@ -57,4 +57,32 @@ describe ActiveMetadata do
|
|
57
57
|
|
58
58
|
end
|
59
59
|
|
60
|
+
describe "#watchers_for" do
|
61
|
+
|
62
|
+
context "when some record does not relate to a specific model instance" do
|
63
|
+
|
64
|
+
before do
|
65
|
+
@user = User.create!(:email => "email@email.it", :firstname => 'John', :lastname => 'smith' )
|
66
|
+
@another_user = User.create!(:email => "email2@email.it", :firstname => 'George', :lastname => 'Washington' )
|
67
|
+
@document.create_watcher_for(:name, @user)
|
68
|
+
ActiveMetadata::Watcher.create! :document_class => "Document", :label => :name, :owner_id => @another_user.id
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return all the records that match model/field" do
|
72
|
+
docs = @document.watchers_for(:name)
|
73
|
+
docs.count.should eq 2
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should group result by owner" do
|
77
|
+
@document.create_watcher_for(:name, @another_user)
|
78
|
+
ActiveMetadata::Watcher.create! :document_class => "Document", :label => :name, :owner_id => @user.id
|
79
|
+
docs = @document.watchers_for(:name)
|
80
|
+
docs.count.should eq 2
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
end
|
87
|
+
|
60
88
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-05-
|
13
|
+
date: 2012-05-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -165,7 +165,6 @@ files:
|
|
165
165
|
- config/cucumber.yml
|
166
166
|
- config/database.yml
|
167
167
|
- config/routes.rb
|
168
|
-
- db/development.sqlite3
|
169
168
|
- db/migrate/01_create_test_resources.rb
|
170
169
|
- db/migrate/02_active_metadata_migrations.rb
|
171
170
|
- lib/active_metadata/base.rb
|
@@ -263,7 +262,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
263
262
|
version: '0'
|
264
263
|
segments:
|
265
264
|
- 0
|
266
|
-
hash:
|
265
|
+
hash: -4307170871527026867
|
267
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
268
267
|
none: false
|
269
268
|
requirements:
|
@@ -272,10 +271,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
271
|
version: '0'
|
273
272
|
segments:
|
274
273
|
- 0
|
275
|
-
hash:
|
274
|
+
hash: -4307170871527026867
|
276
275
|
requirements: []
|
277
276
|
rubyforge_project: active_metadata
|
278
|
-
rubygems_version: 1.8.
|
277
|
+
rubygems_version: 1.8.19
|
279
278
|
signing_key:
|
280
279
|
specification_version: 3
|
281
280
|
summary: Add metadata to fields in an active record model
|
data/db/development.sqlite3
DELETED
Binary file
|