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 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