tagtical 1.5.2 → 1.5.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.
- data/VERSION +1 -1
- data/lib/tagtical/tag.rb +1 -1
- data/lib/tagtical/taggable/core.rb +1 -1
- data/spec/tagtical/tag_spec.rb +1 -1
- data/spec/tagtical/taggable_spec.rb +7 -2
- metadata +14 -14
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.
|
1
|
+
1.5.3
|
data/lib/tagtical/tag.rb
CHANGED
@@ -187,7 +187,7 @@ module Tagtical
|
|
187
187
|
|
188
188
|
def validate_possible_values
|
189
189
|
if possible_values && !possible_values.include?(value)
|
190
|
-
errors.add(:value, %{
|
190
|
+
errors.add(:value, %{"#{value}" not found in list: #{possible_values.inspect}})
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
@@ -296,7 +296,7 @@ module Tagtical::Taggable
|
|
296
296
|
tag_list = tag_list.uniq
|
297
297
|
|
298
298
|
# Find existing tags or create non-existing tags:
|
299
|
-
tag_value_lookup = tag_type.
|
299
|
+
tag_value_lookup = tag_type.klass.find_or_create_tags(tag_list)
|
300
300
|
tags = tag_value_lookup.keys
|
301
301
|
|
302
302
|
|
data/spec/tagtical/tag_spec.rb
CHANGED
@@ -41,7 +41,7 @@ describe Tagtical::Tag do
|
|
41
41
|
it "should not be valid if value is not in possible_values" do
|
42
42
|
@tag.value = "glass"
|
43
43
|
@tag.should be_invalid
|
44
|
-
@tag.errors[:value][0].should == %{
|
44
|
+
@tag.errors[:value][0].should == %{"glass" not found in list: ["knife", "fork", "spoon"]}
|
45
45
|
end
|
46
46
|
|
47
47
|
it "should be valid even if cases are different" do
|
@@ -113,10 +113,15 @@ describe Tagtical::Taggable do
|
|
113
113
|
@taggable.should have_only_tag_values %w{Knitting Ruby Pottery}
|
114
114
|
end
|
115
115
|
|
116
|
+
it "should raise an error when saved with value not in possible_values" do
|
117
|
+
@taggable.craft_list << "not-in-list"
|
118
|
+
lambda { @taggable.save! }.should raise_error(ActiveRecord::RecordInvalid)
|
119
|
+
end
|
120
|
+
|
116
121
|
end
|
117
122
|
|
118
123
|
describe "#cascade_set_tag_list!" do
|
119
|
-
when_possible_values_specified(:values => %w{Knitting Ruby Pottery}, :klass => Tag::Skill) do
|
124
|
+
when_possible_values_specified(:values => %w{Knitting Ruby Pottery Basketball}, :klass => Tag::Skill) do
|
120
125
|
before do
|
121
126
|
@taggable.update_attributes!(:tag_list => "tree, train", :skill_list => "basketball", :craft_list => "pottery")
|
122
127
|
@taggable.reload
|
@@ -175,7 +180,7 @@ describe Tagtical::Taggable do
|
|
175
180
|
end
|
176
181
|
|
177
182
|
it "should not change the tags in skill" do
|
178
|
-
@taggable.skill_list.should have_same_elements ["
|
183
|
+
@taggable.skill_list.should have_same_elements ["Basketball", "Pottery"]
|
179
184
|
end
|
180
185
|
|
181
186
|
it "should have set the values at the tag level" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tagtical
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-09-30 00:00:00.000000000 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &2172699060 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - <=
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 3.0.5
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2172699060
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rspec
|
28
|
-
requirement: &
|
28
|
+
requirement: &2172698580 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - <=
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 2.6.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2172698580
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: sqlite3-ruby
|
39
|
-
requirement: &
|
39
|
+
requirement: &2172698100 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2172698100
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: mysql
|
50
|
-
requirement: &
|
50
|
+
requirement: &2172697620 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2172697620
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: jeweler
|
61
|
-
requirement: &
|
61
|
+
requirement: &2172697140 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2172697140
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rcov
|
72
|
-
requirement: &
|
72
|
+
requirement: &2172713800 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2172713800
|
81
81
|
description: Tagtical allows you do create subclasses for Tag and add additional functionality
|
82
82
|
in an STI fashion. For example. You could do Tag::Color.find_by_name('blue').to_rgb.
|
83
83
|
It also supports storing weights or relevance on the taggings.
|