acts-as-taggable-on 3.5.0 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/spec.yml +95 -0
  3. data/.gitignore +2 -0
  4. data/Appraisals +12 -9
  5. data/CHANGELOG.md +212 -70
  6. data/CONTRIBUTING.md +13 -0
  7. data/Gemfile +2 -1
  8. data/README.md +128 -25
  9. data/acts-as-taggable-on.gemspec +2 -6
  10. data/db/migrate/1_acts_as_taggable_on_migration.rb +14 -8
  11. data/db/migrate/2_add_missing_unique_indices.rb +15 -9
  12. data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +9 -4
  13. data/db/migrate/4_add_missing_taggable_index.rb +8 -3
  14. data/db/migrate/5_change_collation_for_tag_names.rb +7 -2
  15. data/db/migrate/6_add_missing_indexes_on_taggings.rb +22 -0
  16. data/db/migrate/7_add_tenant_to_taggings.rb +16 -0
  17. data/gemfiles/activerecord_5.0.gemfile +21 -0
  18. data/gemfiles/activerecord_5.1.gemfile +21 -0
  19. data/gemfiles/activerecord_5.2.gemfile +21 -0
  20. data/gemfiles/activerecord_6.0.gemfile +21 -0
  21. data/gemfiles/activerecord_6.1.gemfile +23 -0
  22. data/lib/acts-as-taggable-on.rb +22 -14
  23. data/lib/acts_as_taggable_on/engine.rb +0 -1
  24. data/lib/acts_as_taggable_on/tag.rb +27 -23
  25. data/lib/acts_as_taggable_on/tag_list.rb +3 -13
  26. data/lib/acts_as_taggable_on/taggable/cache.rb +39 -35
  27. data/lib/acts_as_taggable_on/taggable/collection.rb +14 -9
  28. data/lib/acts_as_taggable_on/taggable/core.rb +59 -184
  29. data/lib/acts_as_taggable_on/taggable/ownership.rb +19 -8
  30. data/lib/acts_as_taggable_on/taggable/related.rb +1 -1
  31. data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
  32. data/lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb +111 -0
  33. data/lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb +70 -0
  34. data/lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb +82 -0
  35. data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +61 -0
  36. data/lib/acts_as_taggable_on/taggable/tagged_with_query.rb +16 -0
  37. data/lib/acts_as_taggable_on/taggable.rb +18 -1
  38. data/lib/acts_as_taggable_on/tagger.rb +12 -11
  39. data/lib/acts_as_taggable_on/tagging.rb +9 -14
  40. data/lib/acts_as_taggable_on/utils.rb +4 -5
  41. data/lib/acts_as_taggable_on/version.rb +1 -2
  42. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +14 -13
  43. data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +1 -1
  44. data/spec/acts_as_taggable_on/caching_spec.rb +55 -9
  45. data/spec/acts_as_taggable_on/{taggable/dirty_spec.rb → dirty_spec.rb} +28 -13
  46. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +28 -8
  47. data/spec/acts_as_taggable_on/tag_list_spec.rb +27 -1
  48. data/spec/acts_as_taggable_on/tag_spec.rb +31 -1
  49. data/spec/acts_as_taggable_on/taggable_spec.rb +40 -19
  50. data/spec/acts_as_taggable_on/tagger_spec.rb +2 -2
  51. data/spec/acts_as_taggable_on/tagging_spec.rb +87 -7
  52. data/spec/internal/app/models/altered_inheriting_taggable_model.rb +2 -0
  53. data/spec/internal/app/models/cached_model_with_array.rb +6 -0
  54. data/spec/internal/app/models/columns_override_model.rb +5 -0
  55. data/spec/internal/app/models/company.rb +1 -1
  56. data/spec/internal/app/models/inheriting_taggable_model.rb +2 -0
  57. data/spec/internal/app/models/market.rb +1 -1
  58. data/spec/internal/app/models/non_standard_id_taggable_model.rb +1 -1
  59. data/spec/internal/app/models/student.rb +2 -0
  60. data/spec/internal/app/models/taggable_model.rb +3 -0
  61. data/spec/internal/app/models/user.rb +1 -1
  62. data/spec/internal/config/database.yml.sample +4 -8
  63. data/spec/internal/db/schema.rb +23 -7
  64. data/spec/spec_helper.rb +0 -1
  65. data/spec/support/database.rb +5 -11
  66. metadata +27 -75
  67. data/.travis.yml +0 -40
  68. data/UPGRADING.md +0 -8
  69. data/gemfiles/activerecord_3.2.gemfile +0 -15
  70. data/gemfiles/activerecord_4.0.gemfile +0 -15
  71. data/gemfiles/activerecord_4.1.gemfile +0 -15
  72. data/gemfiles/activerecord_4.2.gemfile +0 -16
  73. data/lib/acts_as_taggable_on/compatibility.rb +0 -35
  74. data/lib/acts_as_taggable_on/tag_list_parser.rb +0 -21
  75. data/lib/acts_as_taggable_on/taggable/dirty.rb +0 -36
  76. data/spec/acts_as_taggable_on/tag_list_parser_spec.rb +0 -46
  77. data/spec/internal/app/models/models.rb +0 -90
@@ -2,4 +2,10 @@ if using_postgresql?
2
2
  class CachedModelWithArray < ActiveRecord::Base
3
3
  acts_as_taggable
4
4
  end
5
+ if postgresql_support_json?
6
+ class TaggableModelWithJson < ActiveRecord::Base
7
+ acts_as_taggable
8
+ acts_as_taggable_on :skills
9
+ end
10
+ end
5
11
  end
@@ -0,0 +1,5 @@
1
+ class ColumnsOverrideModel < ActiveRecord::Base
2
+ def self.columns
3
+ super.reject { |c| c.name == 'ignored_column' }
4
+ end
5
+ end
@@ -12,4 +12,4 @@ class Company < ActiveRecord::Base
12
12
  super
13
13
  end
14
14
  end
15
- end
15
+ end
@@ -1,2 +1,4 @@
1
+ require_relative 'taggable_model'
2
+
1
3
  class InheritingTaggableModel < TaggableModel
2
4
  end
@@ -1,2 +1,2 @@
1
1
  class Market < ActsAsTaggableOn::Tag
2
- end
2
+ end
@@ -1,5 +1,5 @@
1
1
  class NonStandardIdTaggableModel < ActiveRecord::Base
2
- self.primary_key = 'an_id'
2
+ self.primary_key = :an_id
3
3
  acts_as_taggable
4
4
  acts_as_taggable_on :languages
5
5
  acts_as_taggable_on :skills
@@ -1,2 +1,4 @@
1
+ require_relative 'user'
2
+
1
3
  class Student < User
2
4
  end
@@ -3,9 +3,12 @@ class TaggableModel < ActiveRecord::Base
3
3
  acts_as_taggable_on :languages
4
4
  acts_as_taggable_on :skills
5
5
  acts_as_taggable_on :needs, :offerings
6
+ acts_as_taggable_tenant :tenant_id
7
+
6
8
  has_many :untaggable_models
7
9
 
8
10
  attr_reader :tag_list_submethod_called
11
+
9
12
  def tag_list=(v)
10
13
  @tag_list_submethod_called = true
11
14
  super
@@ -1,3 +1,3 @@
1
1
  class User < ActiveRecord::Base
2
2
  acts_as_tagger
3
- end
3
+ end
@@ -4,16 +4,12 @@ sqlite3:
4
4
 
5
5
  mysql:
6
6
  adapter: mysql2
7
- host: localhost
7
+ host: 127.0.0.1
8
8
  username: root
9
9
  password:
10
10
  database: acts_as_taggable_on
11
- charset: utf8
11
+ encoding: utf8
12
12
 
13
13
  postgresql:
14
- adapter: postgresql
15
- hostname: localhost
16
- username: postgres
17
- password:
18
- database: acts_as_taggable_on
19
- encoding: utf8
14
+ # Needs to be given as a URL to force connection via TCP
15
+ url: postgresql://postgres:postgres@127.0.0.1:5432/acts_as_taggable_on?encoding=utf8
@@ -1,28 +1,34 @@
1
1
  ActiveRecord::Schema.define version: 0 do
2
- create_table :tags, force: true do |t|
2
+ create_table ActsAsTaggableOn.tags_table, force: true do |t|
3
3
  t.string :name
4
4
  t.integer :taggings_count, default: 0
5
5
  t.string :type
6
6
  end
7
- add_index 'tags', ['name'], name: 'index_tags_on_name', unique: true
7
+ add_index ActsAsTaggableOn.tags_table, ['name'], name: 'index_tags_on_name', unique: true
8
8
 
9
- create_table :taggings, force: true do |t|
10
- t.references :tag
9
+ create_table ActsAsTaggableOn.taggings_table, force: true do |t|
10
+ t.integer :tag_id
11
11
 
12
12
  # You should make sure that the column created is
13
13
  # long enough to store the required class names.
14
- t.references :taggable, polymorphic: true
15
- t.references :tagger, polymorphic: true
14
+ t.string :taggable_type
15
+ t.integer :taggable_id
16
+
17
+ t.string :tagger_type
18
+ t.integer :tagger_id
16
19
 
17
20
  # Limit is created to prevent MySQL error on index
18
21
  # length for MyISAM table type: http://bit.ly/vgW2Ql
19
22
  t.string :context, limit: 128
20
23
 
24
+ t.string :tenant , limit: 128
25
+
21
26
  t.datetime :created_at
22
27
  end
23
- add_index 'taggings',
28
+ add_index ActsAsTaggableOn.taggings_table,
24
29
  ['tag_id', 'taggable_id', 'taggable_type', 'context', 'tagger_id', 'tagger_type'],
25
30
  unique: true, name: 'taggings_idx'
31
+ add_index ActsAsTaggableOn.taggings_table, :tag_id , name: 'index_taggings_on_tag_id'
26
32
 
27
33
  # above copied from
28
34
  # generators/acts_as_taggable_on/migration/migration_generator
@@ -30,6 +36,13 @@ ActiveRecord::Schema.define version: 0 do
30
36
  create_table :taggable_models, force: true do |t|
31
37
  t.column :name, :string
32
38
  t.column :type, :string
39
+ t.column :tenant_id, :integer
40
+ end
41
+
42
+ create_table :columns_override_models, force: true do |t|
43
+ t.column :name, :string
44
+ t.column :type, :string
45
+ t.column :ignored_column, :string
33
46
  end
34
47
 
35
48
  create_table :non_standard_id_taggable_models, primary_key: 'an_id', force: true do |t|
@@ -74,6 +87,9 @@ ActiveRecord::Schema.define version: 0 do
74
87
  t.column :type, :string
75
88
  end
76
89
 
90
+ create_table :cache_methods_injected_models, force: true do |t|
91
+ t.column :cached_tag_list, :string
92
+ end
77
93
 
78
94
  # Special cases for postgresql
79
95
  if using_postgresql?
data/spec/spec_helper.rb CHANGED
@@ -18,4 +18,3 @@ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
18
18
  RSpec.configure do |config|
19
19
  config.raise_errors_for_deprecations!
20
20
  end
21
-
@@ -10,16 +10,10 @@ if File.exist?(database_yml)
10
10
  ActiveRecord::Base.configurations = YAML.load_file(database_yml)
11
11
  ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), '../debug.log'))
12
12
  ActiveRecord::Base.logger.level = ENV['TRAVIS'] ? ::Logger::ERROR : ::Logger::DEBUG
13
- config = ActiveRecord::Base.configurations[db_name]
13
+ config = ActiveSupport::HashWithIndifferentAccess.new(ActiveRecord::Base.configurations[db_name])
14
14
 
15
15
  begin
16
- #activerecord 4 uses symbol
17
- #TODO, remove when activerecord 3 support is dropped
18
- if ActsAsTaggableOn::Utils.active_record4?
19
- ActiveRecord::Base.establish_connection(db_name.to_sym)
20
- else
21
- ActiveRecord::Base.establish_connection(db_name)
22
- end
16
+ ActiveRecord::Base.establish_connection(db_name.to_sym)
23
17
  ActiveRecord::Base.connection
24
18
  rescue
25
19
  case db_name
@@ -34,9 +28,9 @@ if File.exist?(database_yml)
34
28
  ActiveRecord::Base.establish_connection(config)
35
29
  end
36
30
 
37
- load(File.dirname(__FILE__) + '/../internal/db/schema.rb')
38
- load(File.dirname(__FILE__) + '/../internal/app/models/models.rb')
31
+ require File.dirname(__FILE__) + '/../internal/db/schema.rb'
32
+ Dir[File.dirname(__dir__) + '/internal/app/models/*.rb'].each { |f| require f }
39
33
 
40
34
  else
41
35
  fail "Please create #{database_yml} first to configure your database. Take a look at: #{database_yml}.sample"
42
- end
36
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts-as-taggable-on
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-03 00:00:00.000000000 Z
12
+ date: 2021-06-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -17,62 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '3.2'
20
+ version: '5.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '5'
23
+ version: '6.2'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: '3.2'
30
+ version: '5.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '5'
34
- - !ruby/object:Gem::Dependency
35
- name: sqlite3
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- type: :development
42
- prerelease: false
43
- version_requirements: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- - !ruby/object:Gem::Dependency
49
- name: mysql2
50
- requirement: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.3.7
55
- type: :development
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.3.7
62
- - !ruby/object:Gem::Dependency
63
- name: pg
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
33
+ version: '6.2'
76
34
  - !ruby/object:Gem::Dependency
77
35
  name: rspec-rails
78
36
  requirement: !ruby/object:Gem::Requirement
@@ -152,9 +110,9 @@ executables: []
152
110
  extensions: []
153
111
  extra_rdoc_files: []
154
112
  files:
113
+ - ".github/workflows/spec.yml"
155
114
  - ".gitignore"
156
115
  - ".rspec"
157
- - ".travis.yml"
158
116
  - Appraisals
159
117
  - CHANGELOG.md
160
118
  - CONTRIBUTING.md
@@ -163,33 +121,38 @@ files:
163
121
  - LICENSE.md
164
122
  - README.md
165
123
  - Rakefile
166
- - UPGRADING.md
167
124
  - acts-as-taggable-on.gemspec
168
125
  - db/migrate/1_acts_as_taggable_on_migration.rb
169
126
  - db/migrate/2_add_missing_unique_indices.rb
170
127
  - db/migrate/3_add_taggings_counter_cache_to_tags.rb
171
128
  - db/migrate/4_add_missing_taggable_index.rb
172
129
  - db/migrate/5_change_collation_for_tag_names.rb
173
- - gemfiles/activerecord_3.2.gemfile
174
- - gemfiles/activerecord_4.0.gemfile
175
- - gemfiles/activerecord_4.1.gemfile
176
- - gemfiles/activerecord_4.2.gemfile
130
+ - db/migrate/6_add_missing_indexes_on_taggings.rb
131
+ - db/migrate/7_add_tenant_to_taggings.rb
132
+ - gemfiles/activerecord_5.0.gemfile
133
+ - gemfiles/activerecord_5.1.gemfile
134
+ - gemfiles/activerecord_5.2.gemfile
135
+ - gemfiles/activerecord_6.0.gemfile
136
+ - gemfiles/activerecord_6.1.gemfile
177
137
  - lib/acts-as-taggable-on.rb
178
138
  - lib/acts_as_taggable_on.rb
179
- - lib/acts_as_taggable_on/compatibility.rb
180
139
  - lib/acts_as_taggable_on/default_parser.rb
181
140
  - lib/acts_as_taggable_on/engine.rb
182
141
  - lib/acts_as_taggable_on/generic_parser.rb
183
142
  - lib/acts_as_taggable_on/tag.rb
184
143
  - lib/acts_as_taggable_on/tag_list.rb
185
- - lib/acts_as_taggable_on/tag_list_parser.rb
186
144
  - lib/acts_as_taggable_on/taggable.rb
187
145
  - lib/acts_as_taggable_on/taggable/cache.rb
188
146
  - lib/acts_as_taggable_on/taggable/collection.rb
189
147
  - lib/acts_as_taggable_on/taggable/core.rb
190
- - lib/acts_as_taggable_on/taggable/dirty.rb
191
148
  - lib/acts_as_taggable_on/taggable/ownership.rb
192
149
  - lib/acts_as_taggable_on/taggable/related.rb
150
+ - lib/acts_as_taggable_on/taggable/tag_list_type.rb
151
+ - lib/acts_as_taggable_on/taggable/tagged_with_query.rb
152
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb
153
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb
154
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb
155
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb
193
156
  - lib/acts_as_taggable_on/tagger.rb
194
157
  - lib/acts_as_taggable_on/tagging.rb
195
158
  - lib/acts_as_taggable_on/tags_helper.rb
@@ -200,13 +163,12 @@ files:
200
163
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
201
164
  - spec/acts_as_taggable_on/caching_spec.rb
202
165
  - spec/acts_as_taggable_on/default_parser_spec.rb
166
+ - spec/acts_as_taggable_on/dirty_spec.rb
203
167
  - spec/acts_as_taggable_on/generic_parser_spec.rb
204
168
  - spec/acts_as_taggable_on/related_spec.rb
205
169
  - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
206
- - spec/acts_as_taggable_on/tag_list_parser_spec.rb
207
170
  - spec/acts_as_taggable_on/tag_list_spec.rb
208
171
  - spec/acts_as_taggable_on/tag_spec.rb
209
- - spec/acts_as_taggable_on/taggable/dirty_spec.rb
210
172
  - spec/acts_as_taggable_on/taggable_spec.rb
211
173
  - spec/acts_as_taggable_on/tagger_spec.rb
212
174
  - spec/acts_as_taggable_on/tagging_spec.rb
@@ -215,10 +177,10 @@ files:
215
177
  - spec/internal/app/models/altered_inheriting_taggable_model.rb
216
178
  - spec/internal/app/models/cached_model.rb
217
179
  - spec/internal/app/models/cached_model_with_array.rb
180
+ - spec/internal/app/models/columns_override_model.rb
218
181
  - spec/internal/app/models/company.rb
219
182
  - spec/internal/app/models/inheriting_taggable_model.rb
220
183
  - spec/internal/app/models/market.rb
221
- - spec/internal/app/models/models.rb
222
184
  - spec/internal/app/models/non_standard_id_taggable_model.rb
223
185
  - spec/internal/app/models/ordered_taggable_model.rb
224
186
  - spec/internal/app/models/other_cached_model.rb
@@ -238,15 +200,7 @@ homepage: https://github.com/mbleigh/acts-as-taggable-on
238
200
  licenses:
239
201
  - MIT
240
202
  metadata: {}
241
- post_install_message: |-
242
- When upgrading
243
-
244
- Re-run the migrations generator
245
-
246
- rake acts_as_taggable_on_engine:install:migrations
247
-
248
- This will create any new migrations and skip existing ones
249
- Version 3.5.0 has a migration for mysql adapter
203
+ post_install_message:
250
204
  rdoc_options: []
251
205
  require_paths:
252
206
  - lib
@@ -254,15 +208,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
254
208
  requirements:
255
209
  - - ">="
256
210
  - !ruby/object:Gem::Version
257
- version: 1.9.3
211
+ version: 2.3.7
258
212
  required_rubygems_version: !ruby/object:Gem::Requirement
259
213
  requirements:
260
214
  - - ">="
261
215
  - !ruby/object:Gem::Version
262
216
  version: '0'
263
217
  requirements: []
264
- rubyforge_project:
265
- rubygems_version: 2.4.5
218
+ rubygems_version: 3.0.3
266
219
  signing_key:
267
220
  specification_version: 4
268
221
  summary: Advanced tagging for Rails.
@@ -271,13 +224,12 @@ test_files:
271
224
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
272
225
  - spec/acts_as_taggable_on/caching_spec.rb
273
226
  - spec/acts_as_taggable_on/default_parser_spec.rb
227
+ - spec/acts_as_taggable_on/dirty_spec.rb
274
228
  - spec/acts_as_taggable_on/generic_parser_spec.rb
275
229
  - spec/acts_as_taggable_on/related_spec.rb
276
230
  - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
277
- - spec/acts_as_taggable_on/tag_list_parser_spec.rb
278
231
  - spec/acts_as_taggable_on/tag_list_spec.rb
279
232
  - spec/acts_as_taggable_on/tag_spec.rb
280
- - spec/acts_as_taggable_on/taggable/dirty_spec.rb
281
233
  - spec/acts_as_taggable_on/taggable_spec.rb
282
234
  - spec/acts_as_taggable_on/tagger_spec.rb
283
235
  - spec/acts_as_taggable_on/tagging_spec.rb
@@ -286,10 +238,10 @@ test_files:
286
238
  - spec/internal/app/models/altered_inheriting_taggable_model.rb
287
239
  - spec/internal/app/models/cached_model.rb
288
240
  - spec/internal/app/models/cached_model_with_array.rb
241
+ - spec/internal/app/models/columns_override_model.rb
289
242
  - spec/internal/app/models/company.rb
290
243
  - spec/internal/app/models/inheriting_taggable_model.rb
291
244
  - spec/internal/app/models/market.rb
292
- - spec/internal/app/models/models.rb
293
245
  - spec/internal/app/models/non_standard_id_taggable_model.rb
294
246
  - spec/internal/app/models/ordered_taggable_model.rb
295
247
  - spec/internal/app/models/other_cached_model.rb
data/.travis.yml DELETED
@@ -1,40 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.1
5
- - 2.2
6
- - 2.0.0
7
- - 1.9.3
8
- - rbx-2
9
-
10
- env:
11
- - DB=sqlite3
12
- - DB=mysql
13
- - DB=postgresql
14
-
15
- gemfile:
16
- - gemfiles/activerecord_3.2.gemfile
17
- - gemfiles/activerecord_4.0.gemfile
18
- - gemfiles/activerecord_4.1.gemfile
19
-
20
- sudo: false
21
-
22
- bundler_args: '--without local_development --jobs 3 --retry 3'
23
-
24
- script: bundle exec rake
25
-
26
- matrix:
27
- fast_finish: true
28
- allow_failures:
29
- - gemfile: gemfiles/activerecord_edge.gemfile
30
- - rvm: rbx-2
31
- exclude:
32
- - rvm: 2.2
33
- gemfile: gemfiles/activerecord_3.2.gemfile
34
- - rvm: 1.9.3
35
- gemfile: gemfiles/activerecord_4.0.gemfile
36
- - rvm: 1.9.3
37
- gemfile: gemfiles/activerecord_4.1.gemfile
38
- - rvm: rbx-2
39
- gemfile: gemfiles/activerecord_3.2.gemfile
40
-
data/UPGRADING.md DELETED
@@ -1,8 +0,0 @@
1
- When upgrading
2
-
3
- Re-run the migrations generator
4
-
5
- rake acts_as_taggable_on_engine:install:migrations
6
-
7
- This will create any new migrations and skip existing ones
8
- Version 3.5.0 has a migration for mysql adapter
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", :github => "rails/rails", :branch => "3-2-stable"
6
-
7
- group :local_development do
8
- gem "guard"
9
- gem "guard-rspec"
10
- gem "appraisal"
11
- gem "rake"
12
- gem "byebug", :platform => :mri_21
13
- end
14
-
15
- gemspec :path => "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", :github => "rails/rails", :branch => "4-0-stable"
6
-
7
- group :local_development do
8
- gem "guard"
9
- gem "guard-rspec"
10
- gem "appraisal"
11
- gem "rake"
12
- gem "byebug", :platform => :mri_21
13
- end
14
-
15
- gemspec :path => "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", :github => "rails/rails", :branch => "4-1-stable"
6
-
7
- group :local_development do
8
- gem "guard"
9
- gem "guard-rspec"
10
- gem "appraisal"
11
- gem "rake"
12
- gem "byebug", :platform => :mri_21
13
- end
14
-
15
- gemspec :path => "../"
@@ -1,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "railties", :github => "rails/rails", :branch => "4-2-stable"
6
- gem "activerecord", :github => "rails/rails", :branch => "4-2-stable"
7
-
8
- group :local_development do
9
- gem "guard"
10
- gem "guard-rspec"
11
- gem "appraisal"
12
- gem "rake"
13
- gem "byebug", :platform => :mri_21
14
- end
15
-
16
- gemspec :path => "../"
@@ -1,35 +0,0 @@
1
- module ActsAsTaggableOn::Compatibility
2
- def has_many_with_taggable_compatibility(name, options = {}, &extention)
3
- if ActsAsTaggableOn::Utils.active_record4?
4
- scope, opts = build_taggable_scope_and_options(options)
5
- has_many(name, scope, opts, &extention)
6
- else
7
- has_many(name, options, &extention)
8
- end
9
- end
10
-
11
- def build_taggable_scope_and_options(opts)
12
- scope_opts, opts = parse_taggable_options(opts)
13
-
14
- unless scope_opts.empty?
15
- scope = -> {
16
- scope_opts.inject(self) { |result, hash| result.send(*hash) }
17
- }
18
- return [scope, opts]
19
- end
20
-
21
- [nil, opts]
22
- end
23
-
24
- def parse_taggable_options(opts)
25
- scope_opts = {}
26
- [:order, :having, :select, :group, :limit, :offset, :readonly].each do |o|
27
- scope_opts[o] = opts.delete o if opts[o]
28
- end
29
- scope_opts[:where] = opts.delete :conditions if opts[:conditions]
30
- scope_opts[:joins] = opts.delete :include if opts [:include]
31
- scope_opts[:distinct] = opts.delete :uniq if opts[:uniq]
32
-
33
- [scope_opts, opts]
34
- end
35
- end
@@ -1,21 +0,0 @@
1
- module ActsAsTaggableOn
2
- ##
3
- # Returns a new TagList using the given tag string.
4
- #
5
- # Example:
6
- # tag_list = ActsAsTaggableOn::TagListParser.parse("One , Two, Three")
7
- # tag_list # ["One", "Two", "Three"]
8
- module TagListParser
9
- class << self
10
- ## DEPRECATED
11
- def parse(string)
12
- ActiveRecord::Base.logger.warn <<WARNING
13
- ActsAsTaggableOn::TagListParser.parse is deprecated \
14
- and will be removed from v4.0+, use \
15
- ActsAsTaggableOn::TagListParser.new instead
16
- WARNING
17
- DefaultParser.new(string).parse
18
- end
19
- end
20
- end
21
- end
@@ -1,36 +0,0 @@
1
- module ActsAsTaggableOn::Taggable
2
- module Dirty
3
- def self.included(base)
4
- base.extend ActsAsTaggableOn::Taggable::Dirty::ClassMethods
5
-
6
- base.initialize_acts_as_taggable_on_dirty
7
- end
8
-
9
- module ClassMethods
10
- def initialize_acts_as_taggable_on_dirty
11
- tag_types.map(&:to_s).each do |tags_type|
12
- tag_type = tags_type.to_s.singularize
13
-
14
- class_eval <<-RUBY, __FILE__, __LINE__ + 1
15
- def #{tag_type}_list_changed?
16
- changed_attributes.include?("#{tag_type}_list")
17
- end
18
-
19
- def #{tag_type}_list_was
20
- changed_attributes.include?("#{tag_type}_list") ? changed_attributes["#{tag_type}_list"] : __send__("#{tag_type}_list")
21
- end
22
-
23
- def #{tag_type}_list_change
24
- [changed_attributes['#{tag_type}_list'], __send__('#{tag_type}_list')] if changed_attributes.include?("#{tag_type}_list")
25
- end
26
-
27
- def #{tag_type}_list_changes
28
- [changed_attributes['#{tag_type}_list'], __send__('#{tag_type}_list')] if changed_attributes.include?("#{tag_type}_list")
29
- end
30
- RUBY
31
-
32
- end
33
- end
34
- end
35
- end
36
- end