acts-as-taggable-on 2.0.6 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +9 -0
  5. data/CHANGELOG.md +35 -0
  6. data/Gemfile +2 -9
  7. data/Guardfile +5 -0
  8. data/{MIT-LICENSE → MIT-LICENSE.md} +1 -1
  9. data/README.md +297 -0
  10. data/Rakefile +9 -55
  11. data/UPGRADING +14 -0
  12. data/acts-as-taggable-on.gemspec +32 -0
  13. data/lib/acts-as-taggable-on/version.rb +4 -0
  14. data/lib/acts-as-taggable-on.rb +37 -4
  15. data/lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb +6 -6
  16. data/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +99 -45
  17. data/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +162 -45
  18. data/lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb +37 -0
  19. data/lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb +40 -15
  20. data/lib/acts_as_taggable_on/acts_as_taggable_on/related.rb +28 -18
  21. data/lib/acts_as_taggable_on/tag.rb +41 -16
  22. data/lib/acts_as_taggable_on/tag_list.rb +19 -14
  23. data/lib/acts_as_taggable_on/taggable.rb +102 -0
  24. data/lib/acts_as_taggable_on/{acts_as_tagger.rb → tagger.rb} +3 -3
  25. data/lib/acts_as_taggable_on/tagging.rb +12 -2
  26. data/lib/acts_as_taggable_on/tags_helper.rb +2 -2
  27. data/lib/acts_as_taggable_on/utils.rb +34 -0
  28. data/lib/generators/acts_as_taggable_on/migration/migration_generator.rb +9 -2
  29. data/lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb +3 -1
  30. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +333 -54
  31. data/spec/acts_as_taggable_on/tag_list_spec.rb +117 -61
  32. data/spec/acts_as_taggable_on/tag_spec.rb +111 -14
  33. data/spec/acts_as_taggable_on/taggable_spec.rb +330 -34
  34. data/spec/acts_as_taggable_on/tagger_spec.rb +62 -15
  35. data/spec/acts_as_taggable_on/tagging_spec.rb +2 -5
  36. data/spec/acts_as_taggable_on/tags_helper_spec.rb +16 -0
  37. data/spec/acts_as_taggable_on/utils_spec.rb +21 -0
  38. data/spec/database.yml.sample +4 -2
  39. data/spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb +22 -0
  40. data/spec/models.rb +28 -1
  41. data/spec/schema.rb +18 -0
  42. data/spec/spec_helper.rb +30 -7
  43. data/uninstall.rb +1 -0
  44. metadata +174 -57
  45. data/CHANGELOG +0 -25
  46. data/README.rdoc +0 -221
  47. data/VERSION +0 -1
  48. data/generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb +0 -7
  49. data/generators/acts_as_taggable_on_migration/templates/migration.rb +0 -29
  50. data/lib/acts_as_taggable_on/acts_as_taggable_on.rb +0 -53
  51. data/lib/acts_as_taggable_on/compatibility/Gemfile +0 -8
  52. data/lib/acts_as_taggable_on/compatibility/active_record_backports.rb +0 -17
  53. data/lib/acts_as_taggable_on/compatibility/postgresql.rb +0 -44
  54. data/spec/database.yml +0 -17
@@ -0,0 +1,21 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe ActsAsTaggableOn::Utils do
4
+ describe "like_operator" do
5
+ before(:each) do
6
+ clean_database!
7
+ TaggableModel.acts_as_taggable_on(:tags, :languages, :skills, :needs, :offerings)
8
+ @taggable = TaggableModel.new(:name => "Bob Jones")
9
+ end
10
+
11
+ it "should return 'ILIKE' when the adapter is PostgreSQL" do
12
+ TaggableModel.connection.stub(:adapter_name).and_return("PostgreSQL")
13
+ TaggableModel.send(:like_operator).should == "ILIKE"
14
+ end
15
+
16
+ it "should return 'LIKE' when the adapter is not PostgreSQL" do
17
+ TaggableModel.connection.stub(:adapter_name).and_return("MySQL")
18
+ TaggableModel.send(:like_operator).should == "LIKE"
19
+ end
20
+ end
21
+ end
@@ -3,15 +3,17 @@ sqlite3:
3
3
  database: acts_as_taggable_on.sqlite3
4
4
 
5
5
  mysql:
6
- adapter: mysql
6
+ adapter: mysql2
7
7
  hostname: localhost
8
8
  username: root
9
9
  password:
10
10
  database: acts_as_taggable_on
11
-
11
+ charset: utf8
12
+
12
13
  postgresql:
13
14
  adapter: postgresql
14
15
  hostname: localhost
15
16
  username: postgres
16
17
  password:
17
18
  database: acts_as_taggable_on
19
+ encoding: utf8
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ # Generators are not automatically loaded by Rails
4
+ require 'generators/acts_as_taggable_on/migration/migration_generator'
5
+
6
+ describe ActsAsTaggableOn::MigrationGenerator do
7
+ # Tell the generator where to put its output (what it thinks of as Rails.root)
8
+ destination File.expand_path("../../../../../tmp", __FILE__)
9
+
10
+ before do
11
+ prepare_destination
12
+ Rails::Generators.options[:rails][:orm] = :active_record
13
+ end
14
+ describe 'no arguments' do
15
+ before { run_generator }
16
+
17
+ describe 'db/migrate/acts_as_taggable_on_migration.rb' do
18
+ subject { file('db/migrate/acts_as_taggable_on_migration.rb') }
19
+ it { should be_a_migration }
20
+ end
21
+ end
22
+ end
data/spec/models.rb CHANGED
@@ -4,12 +4,22 @@ class TaggableModel < ActiveRecord::Base
4
4
  acts_as_taggable_on :skills
5
5
  acts_as_taggable_on :needs, :offerings
6
6
  has_many :untaggable_models
7
+
8
+ attr_reader :tag_list_submethod_called
9
+ def tag_list=v
10
+ @tag_list_submethod_called = true
11
+ super
12
+ end
7
13
  end
8
14
 
9
15
  class CachedModel < ActiveRecord::Base
10
16
  acts_as_taggable
11
17
  end
12
18
 
19
+ class OtherCachedModel < ActiveRecord::Base
20
+ acts_as_taggable_on :languages, :statuses, :glasses
21
+ end
22
+
13
23
  class OtherTaggableModel < ActiveRecord::Base
14
24
  acts_as_taggable_on :tags, :languages
15
25
  acts_as_taggable_on :needs, :offerings
@@ -26,6 +36,23 @@ class TaggableUser < ActiveRecord::Base
26
36
  acts_as_tagger
27
37
  end
28
38
 
39
+ class InheritingTaggableUser < TaggableUser
40
+ end
41
+
29
42
  class UntaggableModel < ActiveRecord::Base
30
43
  belongs_to :taggable_model
31
- end
44
+ end
45
+
46
+ class NonStandardIdTaggableModel < ActiveRecord::Base
47
+ primary_key = "an_id"
48
+ acts_as_taggable
49
+ acts_as_taggable_on :languages
50
+ acts_as_taggable_on :skills
51
+ acts_as_taggable_on :needs, :offerings
52
+ has_many :untaggable_models
53
+ end
54
+
55
+ class OrderedTaggableModel < ActiveRecord::Base
56
+ acts_as_ordered_taggable
57
+ acts_as_ordered_taggable_on :colours
58
+ end
data/spec/schema.rb CHANGED
@@ -21,6 +21,11 @@ ActiveRecord::Schema.define :version => 0 do
21
21
  t.column :type, :string
22
22
  end
23
23
 
24
+ create_table :non_standard_id_taggable_models, :primary_key => "an_id", :force => true do |t|
25
+ t.column :name, :string
26
+ t.column :type, :string
27
+ end
28
+
24
29
  create_table :untaggable_models, :force => true do |t|
25
30
  t.column :taggable_model_id, :integer
26
31
  t.column :name, :string
@@ -32,6 +37,14 @@ ActiveRecord::Schema.define :version => 0 do
32
37
  t.column :cached_tag_list, :string
33
38
  end
34
39
 
40
+ create_table :other_cached_models, :force => true do |t|
41
+ t.column :name, :string
42
+ t.column :type, :string
43
+ t.column :cached_language_list, :string
44
+ t.column :cached_status_list, :string
45
+ t.column :cached_glass_list, :string
46
+ end
47
+
35
48
  create_table :taggable_users, :force => true do |t|
36
49
  t.column :name, :string
37
50
  end
@@ -40,4 +53,9 @@ ActiveRecord::Schema.define :version => 0 do
40
53
  t.column :name, :string
41
54
  t.column :type, :string
42
55
  end
56
+
57
+ create_table :ordered_taggable_models, :force => true do |t|
58
+ t.column :name, :string
59
+ t.column :type, :string
60
+ end
43
61
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  $LOAD_PATH << "." unless $LOAD_PATH.include?(".")
2
+ require 'logger'
2
3
 
3
4
  begin
4
5
  require "rubygems"
@@ -13,11 +14,12 @@ begin
13
14
  Bundler.setup
14
15
  rescue Bundler::GemNotFound
15
16
  raise RuntimeError, "Bundler couldn't find some gems." +
16
- "Did you run `bundle install`?"
17
+ "Did you run \`bundlee install\`?"
17
18
  end
18
19
 
19
20
  Bundler.require
20
21
  require File.expand_path('../../lib/acts-as-taggable-on', __FILE__)
22
+ require 'ammeter/init'
21
23
 
22
24
  unless [].respond_to?(:freq)
23
25
  class Array
@@ -29,14 +31,35 @@ unless [].respond_to?(:freq)
29
31
  end
30
32
  end
31
33
 
32
- ENV['DB'] ||= 'sqlite3'
33
-
34
+ # set adapter to use, default is sqlite3
35
+ # to use an alternative adapter run => rake spec DB='postgresql'
36
+ db_name = ENV['DB'] || 'sqlite3'
34
37
  database_yml = File.expand_path('../database.yml', __FILE__)
38
+
35
39
  if File.exists?(database_yml)
36
- active_record_configuration = YAML.load_file(database_yml)[ENV['DB']]
40
+ active_record_configuration = YAML.load_file(database_yml)
37
41
 
38
- ActiveRecord::Base.establish_connection(active_record_configuration)
42
+ ActiveRecord::Base.configurations = active_record_configuration
43
+ config = ActiveRecord::Base.configurations[db_name]
44
+
45
+ begin
46
+ ActiveRecord::Base.establish_connection(db_name)
47
+ ActiveRecord::Base.connection
48
+ rescue
49
+ case db_name
50
+ when /mysql/
51
+ ActiveRecord::Base.establish_connection(config.merge('database' => nil))
52
+ ActiveRecord::Base.connection.create_database(config['database'], {:charset => 'utf8', :collation => 'utf8_unicode_ci'})
53
+ when 'postgresql'
54
+ ActiveRecord::Base.establish_connection(config.merge('database' => 'postgres', 'schema_search_path' => 'public'))
55
+ ActiveRecord::Base.connection.create_database(config['database'], config.merge('encoding' => 'utf8'))
56
+ end
57
+
58
+ ActiveRecord::Base.establish_connection(config)
59
+ end
60
+
39
61
  ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
62
+ ActiveRecord::Base.default_timezone = :utc
40
63
 
41
64
  ActiveRecord::Base.silence do
42
65
  ActiveRecord::Migration.verbose = false
@@ -51,10 +74,10 @@ end
51
74
 
52
75
  def clean_database!
53
76
  models = [ActsAsTaggableOn::Tag, ActsAsTaggableOn::Tagging, TaggableModel, OtherTaggableModel, InheritingTaggableModel,
54
- AlteredInheritingTaggableModel, TaggableUser, UntaggableModel]
77
+ AlteredInheritingTaggableModel, TaggableUser, UntaggableModel, OrderedTaggableModel]
55
78
  models.each do |model|
56
79
  ActiveRecord::Base.connection.execute "DELETE FROM #{model.table_name}"
57
80
  end
58
81
  end
59
82
 
60
- clean_database!
83
+ clean_database!
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata CHANGED
@@ -1,55 +1,160 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: acts-as-taggable-on
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 2
7
- - 0
8
- - 6
9
- version: 2.0.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.4.0
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - Michael Bleigh
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2010-05-19 00:00:00 +02:00
18
- default_executable:
19
- dependencies: []
20
-
21
- description: With ActsAsTaggableOn, you could tag a single model on several contexts, such as skills, interests, and awards. It also provides other advanced functionality.
11
+ date: 2012-07-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2.6'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '2.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ammeter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.3
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: mysql2
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 0.3.7
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.3.7
83
+ - !ruby/object:Gem::Dependency
84
+ name: pg
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: With ActsAsTaggableOn, you can tag a single model on several contexts,
126
+ such as skills, interests, and awards. It also provides other advanced functionality.
22
127
  email: michael@intridea.com
23
128
  executables: []
24
-
25
129
  extensions: []
26
-
27
- extra_rdoc_files:
28
- - README.rdoc
29
- files:
30
- - CHANGELOG
130
+ extra_rdoc_files: []
131
+ files:
132
+ - .gitignore
133
+ - .rspec
134
+ - .travis.yml
135
+ - CHANGELOG.md
31
136
  - Gemfile
32
- - MIT-LICENSE
33
- - README.rdoc
137
+ - Guardfile
138
+ - MIT-LICENSE.md
139
+ - README.md
34
140
  - Rakefile
35
- - VERSION
36
- - generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb
37
- - generators/acts_as_taggable_on_migration/templates/migration.rb
141
+ - UPGRADING
142
+ - acts-as-taggable-on.gemspec
38
143
  - lib/acts-as-taggable-on.rb
39
- - lib/acts_as_taggable_on/acts_as_taggable_on.rb
144
+ - lib/acts-as-taggable-on/version.rb
40
145
  - lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb
41
146
  - lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb
42
147
  - lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
148
+ - lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb
43
149
  - lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
44
150
  - lib/acts_as_taggable_on/acts_as_taggable_on/related.rb
45
- - lib/acts_as_taggable_on/acts_as_tagger.rb
46
- - lib/acts_as_taggable_on/compatibility/Gemfile
47
- - lib/acts_as_taggable_on/compatibility/active_record_backports.rb
48
- - lib/acts_as_taggable_on/compatibility/postgresql.rb
49
151
  - lib/acts_as_taggable_on/tag.rb
50
152
  - lib/acts_as_taggable_on/tag_list.rb
153
+ - lib/acts_as_taggable_on/taggable.rb
154
+ - lib/acts_as_taggable_on/tagger.rb
51
155
  - lib/acts_as_taggable_on/tagging.rb
52
156
  - lib/acts_as_taggable_on/tags_helper.rb
157
+ - lib/acts_as_taggable_on/utils.rb
53
158
  - lib/generators/acts_as_taggable_on/migration/migration_generator.rb
54
159
  - lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb
55
160
  - rails/init.rb
@@ -61,43 +166,52 @@ files:
61
166
  - spec/acts_as_taggable_on/tagger_spec.rb
62
167
  - spec/acts_as_taggable_on/tagging_spec.rb
63
168
  - spec/acts_as_taggable_on/tags_helper_spec.rb
169
+ - spec/acts_as_taggable_on/utils_spec.rb
64
170
  - spec/bm.rb
65
- - spec/database.yml
66
171
  - spec/database.yml.sample
172
+ - spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb
67
173
  - spec/models.rb
68
174
  - spec/schema.rb
69
175
  - spec/spec_helper.rb
70
- has_rdoc: true
71
- homepage: http://github.com/mbleigh/acts-as-taggable-on
176
+ - uninstall.rb
177
+ homepage: ''
72
178
  licenses: []
179
+ metadata: {}
180
+ post_install_message: |2+
181
+
182
+ ** acts-as-taggable-on version 2.4.0
183
+
184
+ Hello! This version is the first one released by me (@tilsammans),
185
+ a new maintainer on the project. It's been a while since the last
186
+ release and I am not 100% sure if any breaking changes have been
187
+ introduced. Please test your tagging functionality carefully.
73
188
 
74
- post_install_message:
75
- rdoc_options:
76
- - --charset=UTF-8
77
- require_paths:
189
+ From now on things should stabilize. Please check the project's
190
+ milestones and compatibilities stated in the readme. If you have
191
+ any questions, feel free to create an issue on github.
192
+
193
+ https://github.com/mbleigh/acts-as-taggable-on
194
+
195
+ rdoc_options: []
196
+ require_paths:
78
197
  - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
- version: "0"
86
- required_rubygems_version: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- segments:
91
- - 0
92
- version: "0"
198
+ required_ruby_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
93
208
  requirements: []
94
-
95
209
  rubyforge_project:
96
- rubygems_version: 1.3.6
210
+ rubygems_version: 2.0.0
97
211
  signing_key:
98
- specification_version: 3
99
- summary: ActsAsTaggableOn is a tagging plugin for Rails that provides multiple tagging contexts on a single model.
100
- test_files:
212
+ specification_version: 4
213
+ summary: Advanced tagging for Rails.
214
+ test_files:
101
215
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
102
216
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
103
217
  - spec/acts_as_taggable_on/tag_list_spec.rb
@@ -106,7 +220,10 @@ test_files:
106
220
  - spec/acts_as_taggable_on/tagger_spec.rb
107
221
  - spec/acts_as_taggable_on/tagging_spec.rb
108
222
  - spec/acts_as_taggable_on/tags_helper_spec.rb
223
+ - spec/acts_as_taggable_on/utils_spec.rb
109
224
  - spec/bm.rb
225
+ - spec/database.yml.sample
226
+ - spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb
110
227
  - spec/models.rb
111
228
  - spec/schema.rb
112
229
  - spec/spec_helper.rb
data/CHANGELOG DELETED
@@ -1,25 +0,0 @@
1
- == 2010-02-17
2
- * Converted the plugin to be compatible with Rails3
3
-
4
- == 2009-12-02
5
-
6
- * PostgreSQL is now supported (via morgoth)
7
-
8
- == 2008-07-17
9
-
10
- * Can now use a named_scope to find tags!
11
-
12
- == 2008-06-23
13
-
14
- * Can now find related objects of another class (tristanzdunn)
15
- * Removed extraneous down migration cruft (azabaj)
16
-
17
- == 2008-06-09
18
-
19
- * Added support for Single Table Inheritance
20
- * Adding gemspec and rails/init.rb for gemified plugin
21
-
22
- == 2007-12-12
23
-
24
- * Added ability to use dynamic tag contexts
25
- * Fixed missing migration generator