tagtical 1.5.5 → 1.5.6
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 +6 -1
- data/spec/models.rb +3 -1
- data/spec/tagtical/tag_spec.rb +9 -0
- metadata +14 -14
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.
|
1
|
+
1.5.6
|
data/lib/tagtical/tag.rb
CHANGED
@@ -220,7 +220,11 @@ module Tagtical
|
|
220
220
|
case input
|
221
221
|
when self then input
|
222
222
|
when String, Symbol then new(sanitize(input), taggable_class)
|
223
|
-
when Hash
|
223
|
+
when Hash
|
224
|
+
input.map do |input, class_or_string|
|
225
|
+
class_key = class_or_string.is_a?(String) ? :class_name : :klass
|
226
|
+
new(sanitize(input), taggable_class, class_key => class_or_string)
|
227
|
+
end
|
224
228
|
when Array then input.map { |c| find(c, taggable_class) }.flatten
|
225
229
|
end
|
226
230
|
end
|
@@ -416,6 +420,7 @@ module Tagtical
|
|
416
420
|
end
|
417
421
|
|
418
422
|
def find_tag_class!
|
423
|
+
return ActiveSupport::Dependencies.constantize(@class_name) if @class_name
|
419
424
|
return Tagtical::Tag if base?
|
420
425
|
|
421
426
|
# Logic comes from ActiveRecord::Base#compute_type.
|
data/spec/models.rb
CHANGED
@@ -27,11 +27,13 @@ class NeedTag < Tagtical::Tag # Tag subclass ending in "Tag"
|
|
27
27
|
end
|
28
28
|
class Offering < Tagtical::Tag # Top level
|
29
29
|
end
|
30
|
+
class BarCraft < Tagtical::Tag
|
31
|
+
end
|
30
32
|
|
31
33
|
### END Tag Subclasses ###
|
32
34
|
|
33
35
|
class TaggableModel < ActiveRecord::Base
|
34
|
-
acts_as_taggable(:languages, :skills, {:crafts => Tag::FooCraft}, :needs, :offerings)
|
36
|
+
acts_as_taggable(:languages, :skills, {:crafts => Tag::FooCraft}, :needs, :offerings, {:styles => "BarCraft"})
|
35
37
|
has_many :untaggable_models
|
36
38
|
end
|
37
39
|
|
data/spec/tagtical/tag_spec.rb
CHANGED
@@ -356,6 +356,15 @@ describe Tagtical::Tag do
|
|
356
356
|
its(:klass) { should == Tag::Skill }
|
357
357
|
its(:scope_name) { should == :skills }
|
358
358
|
|
359
|
+
it "should be initialized by a class name if the name is provided" do
|
360
|
+
type = @klass.new("style", @taggable_model, :class_name => "BarCraft")
|
361
|
+
type.klass.should == BarCraft
|
362
|
+
end
|
363
|
+
|
364
|
+
it "should be able to provide class name through acts_as_taggable" do
|
365
|
+
@klass.cache["style"].first.klass.should == BarCraft
|
366
|
+
end
|
367
|
+
|
359
368
|
describe ".find" do
|
360
369
|
it "converts string into correct format" do
|
361
370
|
{"ClassNames" => "class_name", "photo_tags" => "photo", :photo => "photo"}.each do |input, result|
|
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.6
|
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: 2012-01-
|
12
|
+
date: 2012-01-25 00:00:00.000000000 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &2154913940 !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: *2154913940
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rspec
|
28
|
-
requirement: &
|
28
|
+
requirement: &2154913460 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2154913460
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: sqlite3-ruby
|
39
|
-
requirement: &
|
39
|
+
requirement: &2154912980 !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: *2154912980
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: mysql
|
50
|
-
requirement: &
|
50
|
+
requirement: &2154912500 !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: *2154912500
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: jeweler
|
61
|
-
requirement: &
|
61
|
+
requirement: &2154912020 !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: *2154912020
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rcov
|
72
|
-
requirement: &
|
72
|
+
requirement: &2154911540 !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: *2154911540
|
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.
|