mongoid-simple-tags 0.0.8 → 0.0.9
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/README.rdoc +10 -3
- data/lib/mongoid-simple-tags.rb +7 -1
- data/mongoid-simple-tags.gemspec +1 -2
- data/spec/mongoid-simple-tags_spec.rb +9 -4
- metadata +3 -21
data/README.rdoc
CHANGED
@@ -7,7 +7,7 @@ mongoid-simple-tags is a basic and simple tagging system for mongoid using map-r
|
|
7
7
|
|
8
8
|
Add the following to Gemfile:
|
9
9
|
|
10
|
-
gem "mongoid-simple-tags", "0.0.
|
10
|
+
gem "mongoid-simple-tags", "0.0.9"
|
11
11
|
|
12
12
|
== Usage
|
13
13
|
|
@@ -24,14 +24,21 @@ mongoid-simple-tags is a basic and simple tagging system for mongoid using map-r
|
|
24
24
|
|
25
25
|
u.tags # => ["linux","tucuman","free software"]
|
26
26
|
|
27
|
-
User.tagged_with("linux") # => u
|
28
|
-
User.tagged_with(["tucuman", "free software"]) # => u
|
27
|
+
User.tagged_with("linux") # => [u]
|
28
|
+
User.tagged_with(["tucuman", "free software"]) # => [u]
|
29
|
+
User.tagged_with(["linux", "foo"]) # => [u]
|
30
|
+
|
31
|
+
User.tagged_with_all(["linux"]) # => [u]
|
32
|
+
User.tagged_with_all(["linux", "foo"]) # => []
|
29
33
|
|
30
34
|
u2 = User.new(:name => "ubuntu")
|
31
35
|
u2.tag_list = "linux"
|
32
36
|
u2.save
|
33
37
|
|
34
38
|
User.tagged_with("linux") # => [u, u2]
|
39
|
+
User.tagged_with(["linux", "tucuman"]) # => [u, u2]
|
40
|
+
|
41
|
+
User.tagged_with_all(["linux", "tucuman"]) # => [u]
|
35
42
|
|
36
43
|
# using map-reduce function
|
37
44
|
|
data/lib/mongoid-simple-tags.rb
CHANGED
@@ -67,11 +67,17 @@ module Mongoid
|
|
67
67
|
criteria.in(:tags => tags)
|
68
68
|
end
|
69
69
|
|
70
|
+
def tagged_with_all(tags)
|
71
|
+
tags = [tags] unless tags.is_a? Array
|
72
|
+
criteria.all(:tags => tags)
|
73
|
+
end
|
74
|
+
|
70
75
|
def tag_list
|
71
76
|
self.all_tags.collect{|tag| tag[:name]}
|
72
77
|
end
|
78
|
+
|
73
79
|
end
|
74
80
|
|
75
81
|
end
|
76
82
|
end
|
77
|
-
end
|
83
|
+
end
|
data/mongoid-simple-tags.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "mongoid-simple-tags"
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.9"
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
7
|
s.authors = ["chebyte"]
|
8
8
|
s.email = ["maurotorres@gmail.com"]
|
@@ -18,5 +18,4 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_paths = ["lib"]
|
19
19
|
s.add_development_dependency "rspec", "~> 2.10.0"
|
20
20
|
s.add_dependency "mongoid", "~> 3.0.3"
|
21
|
-
s.add_dependency "bson_ext", "~> 1.6"
|
22
21
|
end
|
@@ -13,7 +13,6 @@ class Organization
|
|
13
13
|
has_many :users
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
16
|
describe "A Taggable model" do
|
18
17
|
|
19
18
|
let(:user) { User.new(name: 'Tuquito') }
|
@@ -39,9 +38,6 @@ describe "A Taggable model" do
|
|
39
38
|
user.tags.should_not be_nil
|
40
39
|
user.tags.should eql([])
|
41
40
|
end
|
42
|
-
|
43
|
-
|
44
|
-
|
45
41
|
end
|
46
42
|
|
47
43
|
|
@@ -80,6 +76,15 @@ describe "A Taggable model with tags assigned" do
|
|
80
76
|
User.tag_list.sort.should == ["linux", "tucuman", "free software"].sort
|
81
77
|
end
|
82
78
|
|
79
|
+
it 'should be able to find tagged_with_all objects' do
|
80
|
+
user_2 = User.create! name: 'Jane Doe', tag_list: 'linux, foo, bar'
|
81
|
+
|
82
|
+
User.tagged_with_all(%w[foo linux]).should == [user_2]
|
83
|
+
User.tagged_with_all('linux').to_a.should =~ ([@user, user_2])
|
84
|
+
User.tagged_with_all(%w[linux]).to_a.should =~ [@user, user_2]
|
85
|
+
User.tagged_with_all([]).should == []
|
86
|
+
User.tagged_with_all(%w[foo tucuman]).should == []
|
87
|
+
end
|
83
88
|
end
|
84
89
|
|
85
90
|
describe "A Taggable model with scope" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-simple-tags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -43,22 +43,6 @@ dependencies:
|
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 3.0.3
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: bson_ext
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '1.6'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.6'
|
62
46
|
description: basic and simple tagging system for mongoid using map-reduce function
|
63
47
|
email:
|
64
48
|
- maurotorres@gmail.com
|
@@ -104,6 +88,4 @@ rubygems_version: 1.8.23
|
|
104
88
|
signing_key:
|
105
89
|
specification_version: 3
|
106
90
|
summary: MongoID simple tags for RAILS
|
107
|
-
test_files:
|
108
|
-
- spec/mongoid-simple-tags_spec.rb
|
109
|
-
- spec/spec_helper.rb
|
91
|
+
test_files: []
|