simple_taggable 0.0.2 → 1.0.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +11 -4
- data/lib/simple_taggable.rb +1 -3
- data/lib/simple_taggable/tag_list.rb +8 -1
- data/lib/simple_taggable/version.rb +1 -1
- data/spec/simple_taggable/tag_list_spec.rb +11 -0
- data/spec/simple_taggable_spec.rb +7 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10c09aad53d3b7bff5a795fad6baaacc97064b31
|
4
|
+
data.tar.gz: 8cce20273f943605e08d70fac5330d57147dddd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49519a37d7ab1a3d209c14d69b34e7fa0de120d8c1cade701f88570e3008967e2cc4687404d5b6f123a84be14b26f28b6f5426beddc3ad12391cb76f678feac4
|
7
|
+
data.tar.gz: a9a9ab96725bd43deda79278d3d5d8fd0e771639d7af5bfea0c8af859dd73f23dc77cce6b535a08b0ddc3d4e3b7d1e95ce4ae11c5f1667057f4b76350d68830f
|
data/.travis.yml
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
3
|
+
|
2
4
|
cache: bundler
|
5
|
+
|
3
6
|
rvm:
|
4
|
-
- 2.2
|
7
|
+
- 2.2
|
5
8
|
- 2.1
|
6
|
-
- 2.0
|
7
|
-
|
8
|
-
sudo: false
|
9
9
|
|
10
10
|
before_script:
|
11
11
|
- bundle exec rake test:copy_migrations
|
@@ -16,6 +16,13 @@ gemfile:
|
|
16
16
|
- gemfiles/rails_4.2.gemfile
|
17
17
|
- gemfiles/rails_edge.gemfile
|
18
18
|
|
19
|
+
matrix:
|
20
|
+
allow_failures:
|
21
|
+
- gemfile: gemfiles/rails_edge.gemfile
|
22
|
+
exclude:
|
23
|
+
- rvm: 2.1
|
24
|
+
gemfile: gemfiles/rails_edge.gemfile
|
25
|
+
|
19
26
|
notifications:
|
20
27
|
email:
|
21
28
|
on_success: change
|
data/lib/simple_taggable.rb
CHANGED
@@ -81,9 +81,7 @@ module SimpleTaggable
|
|
81
81
|
|
82
82
|
def tag_list=(tag_list)
|
83
83
|
case tag_list
|
84
|
-
when TagList
|
85
|
-
@tag_list = tag_list
|
86
|
-
when Array, String
|
84
|
+
when TagList, Array, String
|
87
85
|
@tag_list = SimpleTaggable::TagList.new(
|
88
86
|
tag_list,
|
89
87
|
filters: self.class.__tag_filters__,
|
@@ -30,7 +30,13 @@ module SimpleTaggable
|
|
30
30
|
@filters = filters.freeze
|
31
31
|
@converters = converters.freeze
|
32
32
|
|
33
|
-
tags.flatten.each
|
33
|
+
tags.flatten.each do |tag|
|
34
|
+
if tag.is_a?(TagList)
|
35
|
+
tag.each { |t| add(t) }
|
36
|
+
else
|
37
|
+
add(tag)
|
38
|
+
end
|
39
|
+
end
|
34
40
|
end
|
35
41
|
|
36
42
|
def add(*tags)
|
@@ -40,6 +46,7 @@ module SimpleTaggable
|
|
40
46
|
end
|
41
47
|
|
42
48
|
if @filters.all? { |filter| filter.call(self, tag) }
|
49
|
+
tag.freeze
|
43
50
|
@raw_data << tag
|
44
51
|
end
|
45
52
|
end
|
@@ -45,6 +45,17 @@ describe SimpleTaggable::TagList do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
+
describe "#to_a" do
|
49
|
+
it "returns deep copied Array" do
|
50
|
+
tag_list = SimpleTaggable::TagList.new("init1", "init2")
|
51
|
+
arr = tag_list.to_a
|
52
|
+
expect(arr).to eq ["init1", "init2"]
|
53
|
+
arr[0].gsub!(/init/, "converted")
|
54
|
+
expect(tag_list[0]).to eq "init1"
|
55
|
+
expect(arr[0]).to eq "converted1"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
48
59
|
describe "Index access" do
|
49
60
|
it "should return tag string" do
|
50
61
|
tag_list.add("Tag1")
|
@@ -75,7 +75,7 @@ describe SimpleTaggable do
|
|
75
75
|
class TagConvertedUser < User
|
76
76
|
add_tag_filter ->(tag_list, tag) { tag != "FILTERED" }
|
77
77
|
add_tag_converter ->(tag_list, tag) { tag.upcase }
|
78
|
-
add_tag_converter ->(tag_list, tag) { tag.gsub(/
|
78
|
+
add_tag_converter ->(tag_list, tag) { tag.gsub(/foo/i, "BAR") }
|
79
79
|
end
|
80
80
|
|
81
81
|
class InheritedUser < TagConvertedUser
|
@@ -84,6 +84,9 @@ describe SimpleTaggable do
|
|
84
84
|
add_tag_converter ->(tag_list, tag) { tag.downcase }
|
85
85
|
end
|
86
86
|
|
87
|
+
class InheritedUser2 < TagConvertedUser
|
88
|
+
end
|
89
|
+
|
87
90
|
it "use filter given add_tag_filter method, when initialize TagList" do
|
88
91
|
tag_filtered_user = TagFilteredUser.new(name: "jotaro")
|
89
92
|
tag_filtered_user.tag_list.add("Tag1", "FILTERED", "filtered")
|
@@ -97,6 +100,9 @@ describe SimpleTaggable do
|
|
97
100
|
end
|
98
101
|
|
99
102
|
it "inherit parent filters and converters" do
|
103
|
+
inherited_user = InheritedUser2.new(name: "jotaro")
|
104
|
+
inherited_user.tag_list.add("Tag1", "FOO")
|
105
|
+
expect(inherited_user.tag_list).to match_array SimpleTaggable::TagList.new("TAG1", "BAR")
|
100
106
|
end
|
101
107
|
end
|
102
108
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_taggable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- joker1007
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -204,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
204
|
version: '0'
|
205
205
|
requirements: []
|
206
206
|
rubyforge_project:
|
207
|
-
rubygems_version: 2.4.
|
207
|
+
rubygems_version: 2.4.8
|
208
208
|
signing_key:
|
209
209
|
specification_version: 4
|
210
210
|
summary: Hyper Simple tagging plugin for ActiveRecord
|