acts-as-taggable-on 2.0.6 → 2.2.2

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.
Files changed (46) hide show
  1. data/.gitignore +8 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +9 -0
  4. data/CHANGELOG +10 -0
  5. data/Gemfile +2 -9
  6. data/Guardfile +5 -0
  7. data/README.rdoc +47 -63
  8. data/Rakefile +9 -55
  9. data/acts-as-taggable-on.gemspec +28 -0
  10. data/lib/acts-as-taggable-on/version.rb +4 -0
  11. data/lib/acts-as-taggable-on.rb +7 -3
  12. data/lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb +4 -4
  13. data/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +38 -43
  14. data/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +81 -30
  15. data/lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb +7 -3
  16. data/lib/acts_as_taggable_on/acts_as_taggable_on/related.rb +23 -15
  17. data/lib/acts_as_taggable_on/tag.rb +21 -12
  18. data/lib/acts_as_taggable_on/{acts_as_taggable_on.rb → taggable.rb} +6 -5
  19. data/lib/acts_as_taggable_on/tagging.rb +12 -2
  20. data/lib/acts_as_taggable_on/tags_helper.rb +2 -2
  21. data/lib/acts_as_taggable_on/utils.rb +34 -0
  22. data/lib/generators/acts_as_taggable_on/migration/migration_generator.rb +9 -2
  23. data/lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb +3 -1
  24. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +242 -54
  25. data/spec/acts_as_taggable_on/tag_list_spec.rb +4 -0
  26. data/spec/acts_as_taggable_on/tag_spec.rb +52 -13
  27. data/spec/acts_as_taggable_on/taggable_spec.rb +131 -35
  28. data/spec/acts_as_taggable_on/tagger_spec.rb +14 -0
  29. data/spec/acts_as_taggable_on/tagging_spec.rb +2 -5
  30. data/spec/acts_as_taggable_on/tags_helper_spec.rb +16 -0
  31. data/spec/acts_as_taggable_on/utils_spec.rb +21 -0
  32. data/spec/database.yml.sample +4 -2
  33. data/spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb +22 -0
  34. data/spec/models.rb +14 -1
  35. data/spec/schema.rb +13 -0
  36. data/spec/spec_helper.rb +27 -6
  37. data/uninstall.rb +1 -0
  38. metadata +136 -51
  39. data/VERSION +0 -1
  40. data/generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb +0 -7
  41. data/generators/acts_as_taggable_on_migration/templates/migration.rb +0 -29
  42. data/lib/acts_as_taggable_on/compatibility/Gemfile +0 -8
  43. data/lib/acts_as_taggable_on/compatibility/active_record_backports.rb +0 -17
  44. data/lib/acts_as_taggable_on/compatibility/postgresql.rb +0 -44
  45. data/spec/database.yml +0 -17
  46. /data/lib/acts_as_taggable_on/{acts_as_tagger.rb → tagger.rb} +0 -0
metadata CHANGED
@@ -1,55 +1,135 @@
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.2.2
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Michael Bleigh
13
9
  autorequire:
14
10
  bindir: bin
15
11
  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.
12
+ date: 2012-01-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &70356686875400 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70356686875400
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70356686901300 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '2.5'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70356686901300
36
+ - !ruby/object:Gem::Dependency
37
+ name: ammeter
38
+ requirement: &70356686900800 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.1.3
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70356686900800
47
+ - !ruby/object:Gem::Dependency
48
+ name: sqlite3
49
+ requirement: &70356686900420 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70356686900420
58
+ - !ruby/object:Gem::Dependency
59
+ name: mysql2
60
+ requirement: &70356686899780 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.3.7
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70356686899780
69
+ - !ruby/object:Gem::Dependency
70
+ name: pg
71
+ requirement: &70356686899280 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70356686899280
80
+ - !ruby/object:Gem::Dependency
81
+ name: guard
82
+ requirement: &70356686898580 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70356686898580
91
+ - !ruby/object:Gem::Dependency
92
+ name: guard-rspec
93
+ requirement: &70356686897920 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70356686897920
102
+ description: With ActsAsTaggableOn, you can tag a single model on several contexts,
103
+ such as skills, interests, and awards. It also provides other advanced functionality.
22
104
  email: michael@intridea.com
23
105
  executables: []
24
-
25
106
  extensions: []
26
-
27
- extra_rdoc_files:
28
- - README.rdoc
29
- files:
107
+ extra_rdoc_files: []
108
+ files:
109
+ - .gitignore
110
+ - .rspec
111
+ - .travis.yml
30
112
  - CHANGELOG
31
113
  - Gemfile
114
+ - Guardfile
32
115
  - MIT-LICENSE
33
116
  - README.rdoc
34
117
  - 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
118
+ - acts-as-taggable-on.gemspec
38
119
  - lib/acts-as-taggable-on.rb
39
- - lib/acts_as_taggable_on/acts_as_taggable_on.rb
120
+ - lib/acts-as-taggable-on/version.rb
40
121
  - lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb
41
122
  - lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb
42
123
  - lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
43
124
  - lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
44
125
  - 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
126
  - lib/acts_as_taggable_on/tag.rb
50
127
  - lib/acts_as_taggable_on/tag_list.rb
128
+ - lib/acts_as_taggable_on/taggable.rb
129
+ - lib/acts_as_taggable_on/tagger.rb
51
130
  - lib/acts_as_taggable_on/tagging.rb
52
131
  - lib/acts_as_taggable_on/tags_helper.rb
132
+ - lib/acts_as_taggable_on/utils.rb
53
133
  - lib/generators/acts_as_taggable_on/migration/migration_generator.rb
54
134
  - lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb
55
135
  - rails/init.rb
@@ -61,43 +141,45 @@ files:
61
141
  - spec/acts_as_taggable_on/tagger_spec.rb
62
142
  - spec/acts_as_taggable_on/tagging_spec.rb
63
143
  - spec/acts_as_taggable_on/tags_helper_spec.rb
144
+ - spec/acts_as_taggable_on/utils_spec.rb
64
145
  - spec/bm.rb
65
- - spec/database.yml
66
146
  - spec/database.yml.sample
147
+ - spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb
67
148
  - spec/models.rb
68
149
  - spec/schema.rb
69
150
  - spec/spec_helper.rb
70
- has_rdoc: true
71
- homepage: http://github.com/mbleigh/acts-as-taggable-on
151
+ - uninstall.rb
152
+ homepage: ''
72
153
  licenses: []
73
-
74
154
  post_install_message:
75
- rdoc_options:
76
- - --charset=UTF-8
77
- require_paths:
155
+ rdoc_options: []
156
+ require_paths:
78
157
  - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- segments:
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ segments:
84
165
  - 0
85
- version: "0"
86
- required_rubygems_version: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- segments:
166
+ hash: -1793358145648125
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ segments:
91
174
  - 0
92
- version: "0"
175
+ hash: -1793358145648125
93
176
  requirements: []
94
-
95
177
  rubyforge_project:
96
- rubygems_version: 1.3.6
178
+ rubygems_version: 1.8.10
97
179
  signing_key:
98
180
  specification_version: 3
99
- summary: ActsAsTaggableOn is a tagging plugin for Rails that provides multiple tagging contexts on a single model.
100
- test_files:
181
+ summary: Advanced tagging for Rails.
182
+ test_files:
101
183
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
102
184
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
103
185
  - spec/acts_as_taggable_on/tag_list_spec.rb
@@ -106,7 +188,10 @@ test_files:
106
188
  - spec/acts_as_taggable_on/tagger_spec.rb
107
189
  - spec/acts_as_taggable_on/tagging_spec.rb
108
190
  - spec/acts_as_taggable_on/tags_helper_spec.rb
191
+ - spec/acts_as_taggable_on/utils_spec.rb
109
192
  - spec/bm.rb
193
+ - spec/database.yml.sample
194
+ - spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb
110
195
  - spec/models.rb
111
196
  - spec/schema.rb
112
197
  - spec/spec_helper.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 2.0.6
@@ -1,7 +0,0 @@
1
- class ActsAsTaggableOnMigrationGenerator < Rails::Generator::Base
2
- def manifest
3
- record do |m|
4
- m.migration_template 'migration.rb', 'db/migrate', :migration_file_name => "acts_as_taggable_on_migration"
5
- end
6
- end
7
- end
@@ -1,29 +0,0 @@
1
- class ActsAsTaggableOnMigration < ActiveRecord::Migration
2
- def self.up
3
- create_table :tags do |t|
4
- t.column :name, :string
5
- end
6
-
7
- create_table :taggings do |t|
8
- t.column :tag_id, :integer
9
- t.column :taggable_id, :integer
10
- t.column :tagger_id, :integer
11
- t.column :tagger_type, :string
12
-
13
- # You should make sure that the column created is
14
- # long enough to store the required class names.
15
- t.column :taggable_type, :string
16
- t.column :context, :string
17
-
18
- t.column :created_at, :datetime
19
- end
20
-
21
- add_index :taggings, :tag_id
22
- add_index :taggings, [:taggable_id, :taggable_type, :context]
23
- end
24
-
25
- def self.down
26
- drop_table :taggings
27
- drop_table :tags
28
- end
29
- end
@@ -1,8 +0,0 @@
1
- source :gemcutter
2
-
3
- # Rails 2.3
4
- gem 'rails', '2.3.5'
5
- gem 'rspec', '1.3.0', :require => 'spec'
6
- gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
7
- gem 'mysql'
8
- gem 'pg'
@@ -1,17 +0,0 @@
1
- module ActsAsTaggableOn
2
- module ActiveRecord
3
- module Backports
4
- def self.included(base)
5
- base.class_eval do
6
- named_scope :where, lambda { |conditions| { :conditions => conditions } }
7
- named_scope :joins, lambda { |joins| { :joins => joins } }
8
- named_scope :group, lambda { |group| { :group => group } }
9
- named_scope :order, lambda { |order| { :order => order } }
10
- named_scope :select, lambda { |select| { :select => select } }
11
- named_scope :limit, lambda { |limit| { :limit => limit } }
12
- named_scope :readonly, lambda { |readonly| { :readonly => readonly } }
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,44 +0,0 @@
1
- module ActsAsTaggableOn
2
- module Taggable
3
- module PostgreSQL
4
- def self.included(base)
5
- base.send :include, ActsAsTaggableOn::Taggable::PostgreSQL::InstanceMethods
6
- base.extend ActsAsTaggableOn::Taggable::PostgreSQL::ClassMethods
7
-
8
- ActsAsTaggableOn::Tag.class_eval do
9
- def self.named(name)
10
- where(["name ILIKE ?", name])
11
- end
12
-
13
- def self.named_any(list)
14
- where(list.map { |tag| sanitize_sql(["name ILIKE ?", tag.to_s]) }.join(" OR "))
15
- end
16
-
17
- def self.named_like(name)
18
- where(["name ILIKE ?", "%#{name}%"])
19
- end
20
-
21
- def self.named_like_any(list)
22
- where(list.map { |tag| sanitize_sql(["name ILIKE ?", "%#{tag.to_s}%"]) }.join(" OR "))
23
- end
24
- end
25
- end
26
-
27
- module InstanceMethods
28
- end
29
-
30
- module ClassMethods
31
- # all column names are necessary for PostgreSQL group clause
32
- def grouped_column_names_for(*objects)
33
- object = objects.shift
34
- columns = object.column_names.map { |column| "#{object.table_name}.#{column}" }
35
- columns << objects.map do |object|
36
- "#{object.table_name}.created_at"
37
- end.flatten
38
-
39
- columns.flatten.join(", ")
40
- end
41
- end
42
- end
43
- end
44
- end
data/spec/database.yml DELETED
@@ -1,17 +0,0 @@
1
- sqlite3:
2
- adapter: sqlite3
3
- database: acts_as_taggable_on.sqlite3
4
-
5
- mysql:
6
- adapter: mysql
7
- hostname: localhost
8
- username: root
9
- password:
10
- database: acts_as_taggable_on
11
-
12
- postgresql:
13
- adapter: postgresql
14
- hostname: localhost
15
- username: postgres
16
- password:
17
- database: acts_as_taggable_on