simple_taggable 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c69a510693e9c917617c5408dba08279c0677326
4
- data.tar.gz: da4e8a8171d6c26b80b3dc2bf49e73f03519625f
3
+ metadata.gz: 10c09aad53d3b7bff5a795fad6baaacc97064b31
4
+ data.tar.gz: 8cce20273f943605e08d70fac5330d57147dddd8
5
5
  SHA512:
6
- metadata.gz: 9b846d6ddc2913e1f4bedde0a419b8f75f7218275720af69b3ad9079f202d97c168b9a465fee8b9afff6f25faaf2ee29261a04c1cf369bb4c7a560dbf08664c7
7
- data.tar.gz: e7f643b9781a410dd4b0642389ded405e728286691eb1b4b29d35f7e3a77d4723ce4c978eec2030a094988ea390b3416adaa4a8fe97923f80cd46534242f137b
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.0
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
@@ -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 {|tag| add(tag) }
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
@@ -1,3 +1,3 @@
1
1
  module SimpleTaggable
2
- VERSION = "0.0.2"
2
+ VERSION = "1.0.0"
3
3
  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(/FOO/, "BAR") }
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.2
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: 2014-12-25 00:00:00.000000000 Z
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.5
207
+ rubygems_version: 2.4.8
208
208
  signing_key:
209
209
  specification_version: 4
210
210
  summary: Hyper Simple tagging plugin for ActiveRecord