tagalong 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -18,3 +18,4 @@ tmp
18
18
  spec/debug.log
19
19
  *.sqlite3
20
20
  sunspot-solr.pid
21
+ *.sw[ponmlk]
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  [![Build Status](https://secure.travis-ci.org/cyphactor/tagalong.png?branch=master)](http://travis-ci.org/cyphactor/tagalong)
4
4
 
5
+ ![Logo](http://github.com/cyphactor/tagalong/raw/master/assets/tagalong.png)
6
+
5
7
  [Tagalong](http://github.com/cyphactor/tagalong) is a Rails tagging plugin that is intended to be clean, efficient, and simple. I have tried hard to keep the API slim and intelligable in terms of Object Oriented Programming. I focused heavily on this as I feel most other Rails tagging plugins seriously neglect OO in their APIs.
6
8
 
7
9
  The other key differentiation between [Tagalong](http://github.com/cyphactor/tagalong) and other tagging libraries is the relational database structure behind the scenes. This database structure allows [Tagalong](http://github.com/cyphactor/tagalong) to provide not only an Object Oriented API, but also a set of features that help differentiate it from other Rails tagging plugins.
Binary file
@@ -7,7 +7,7 @@ module Tagalong
7
7
  module ClassMethods
8
8
  def tagalong_taggable
9
9
  class_eval do
10
- has_many :tagalong_taggings, :class_name => 'Tagalong::TagalongTagging', :as => :taggable
10
+ has_many :tagalong_taggings, :class_name => 'Tagalong::TagalongTagging', :as => :taggable, :dependent => :destroy
11
11
  has_many :tagalong_tags, :class_name => 'Tagalong::TagalongTag', :through => :tagalong_taggings
12
12
  include Tagalong::Taggable::InstanceMethods
13
13
  end
@@ -7,7 +7,7 @@ module Tagalong
7
7
  module ClassMethods
8
8
  def tagalong_tagger
9
9
  class_eval do
10
- has_many :tagalong_tags, :class_name => 'Tagalong::TagalongTag', :as => :tagger
10
+ has_many :tagalong_tags, :class_name => 'Tagalong::TagalongTag', :as => :tagger, :dependent => :destroy
11
11
  include Tagalong::Tagger::InstanceMethods
12
12
  end
13
13
  end
@@ -1,3 +1,3 @@
1
1
  module Tagalong
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -37,6 +37,18 @@ describe "Taggable" do
37
37
  @contact.tags.should == ["doopty", "hoopty", "toopty"]
38
38
  end
39
39
  end
40
+
41
+ describe "dependent on destroy" do
42
+ let(:user) { User.create!(:name => "My Owner") }
43
+ let(:contact) { Contact.create!(:name => "My Taggable") }
44
+
45
+ it "removes the tagalong_taggings when destroyed" do
46
+ tag = user.tagalong_tags.create!(:name => "foo")
47
+ contact.tagalong_taggings.create!(:tagalong_tag_id => tag.id)
48
+ contact.destroy
49
+ expect(Tagalong::TagalongTagging.count).to be(0)
50
+ end
51
+ end
40
52
  end
41
53
 
42
54
  describe "Isolation" do
@@ -244,6 +244,26 @@ describe "Tagger" do
244
244
  @user.taggables_with("jackson_five").should == []
245
245
  end
246
246
  end
247
+
248
+ describe "dependent on destroy" do
249
+ let(:user) { User.create!(:name => "My Owner") }
250
+ let(:contact) { Contact.create!(:name => "My Taggable") }
251
+
252
+ it "removes the tagalong_taggings when destroyed" do
253
+ tag = user.tagalong_tags.create!(:name => "foo")
254
+ contact.tagalong_taggings.create!(:tagalong_tag_id => tag.id)
255
+ user.destroy
256
+ expect(Tagalong::TagalongTagging.count).to be(0)
257
+ end
258
+
259
+ it "removes the tagalong_tags when destroyed" do
260
+ tag = user.tagalong_tags.create!(:name => "foo")
261
+ contact.tagalong_taggings.create!(:tagalong_tag_id => tag.id)
262
+ user.destroy
263
+ expect(Tagalong::TagalongTag.count).to be(0)
264
+ end
265
+ end
266
+
247
267
  end
248
268
 
249
269
  describe "Isolation" do
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Tagalong::VERSION
17
17
 
18
- gem.add_dependency "activerecord"
18
+ gem.add_dependency "activerecord", ">= 3.0.0"
19
19
  gem.add_development_dependency "sqlite3"
20
20
  gem.add_development_dependency "rspec"
21
21
  gem.add_development_dependency "rake"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tagalong
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,22 +10,27 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-13 00:00:00.000000000 Z
13
+ date: 2013-04-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
17
- requirement: &70320501910940 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
21
21
  - !ruby/object:Gem::Version
22
- version: '0'
22
+ version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70320501910940
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 3.0.0
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: sqlite3
28
- requirement: &70320501910280 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: '0'
34
39
  type: :development
35
40
  prerelease: false
36
- version_requirements: *70320501910280
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: rspec
39
- requirement: &70320501909840 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: '0'
45
55
  type: :development
46
56
  prerelease: false
47
- version_requirements: *70320501909840
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: rake
50
- requirement: &70320501909340 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :development
57
72
  prerelease: false
58
- version_requirements: *70320501909340
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: sunspot_rails
61
- requirement: &70320501908900 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,10 +86,15 @@ dependencies:
66
86
  version: '0'
67
87
  type: :development
68
88
  prerelease: false
69
- version_requirements: *70320501908900
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
70
95
  - !ruby/object:Gem::Dependency
71
96
  name: sunspot_solr
72
- requirement: &70320501908460 !ruby/object:Gem::Requirement
97
+ requirement: !ruby/object:Gem::Requirement
73
98
  none: false
74
99
  requirements:
75
100
  - - ! '>='
@@ -77,10 +102,15 @@ dependencies:
77
102
  version: '0'
78
103
  type: :development
79
104
  prerelease: false
80
- version_requirements: *70320501908460
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
81
111
  - !ruby/object:Gem::Dependency
82
112
  name: sunspot_test
83
- requirement: &70320501907940 !ruby/object:Gem::Requirement
113
+ requirement: !ruby/object:Gem::Requirement
84
114
  none: false
85
115
  requirements:
86
116
  - - ! '>='
@@ -88,7 +118,12 @@ dependencies:
88
118
  version: '0'
89
119
  type: :development
90
120
  prerelease: false
91
- version_requirements: *70320501907940
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
92
127
  description: A Rails tagging plugin that makes sense.
93
128
  email:
94
129
  - cyphactor@gmail.com
@@ -99,11 +134,13 @@ extra_rdoc_files: []
99
134
  files:
100
135
  - .gitignore
101
136
  - .rvmrc
137
+ - .tagalong.gemspec.swp
102
138
  - .travis.yml
103
139
  - Gemfile
104
140
  - LICENSE
105
141
  - README.md
106
142
  - Rakefile
143
+ - assets/tagalong.png
107
144
  - lib/generators/tagalong/migration/migration_generator.rb
108
145
  - lib/generators/tagalong/migration/templates/active_record/migration.rb
109
146
  - lib/tagalong.rb
@@ -146,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
183
  version: '0'
147
184
  requirements: []
148
185
  rubyforge_project:
149
- rubygems_version: 1.8.16
186
+ rubygems_version: 1.8.25
150
187
  signing_key:
151
188
  specification_version: 3
152
189
  summary: A Rails tagging plugin that makes sense.