acts-as-taggable-on-fix 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/spec.yml +95 -0
  3. data/.gitignore +13 -0
  4. data/.rspec +2 -0
  5. data/Appraisals +19 -0
  6. data/CHANGELOG.md +350 -0
  7. data/CONTRIBUTING.md +57 -0
  8. data/Gemfile +12 -0
  9. data/Guardfile +5 -0
  10. data/LICENSE.md +20 -0
  11. data/README.md +580 -0
  12. data/Rakefile +21 -0
  13. data/acts-as-taggable-on.gemspec +32 -0
  14. data/db/migrate/1_acts_as_taggable_on_migration.rb +36 -0
  15. data/db/migrate/2_add_missing_unique_indices.rb +25 -0
  16. data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +19 -0
  17. data/db/migrate/4_add_missing_taggable_index.rb +14 -0
  18. data/db/migrate/5_change_collation_for_tag_names.rb +14 -0
  19. data/db/migrate/6_add_missing_indexes_on_taggings.rb +22 -0
  20. data/db/migrate/7_add_tenant_to_taggings.rb +16 -0
  21. data/gemfiles/activerecord_5.0.gemfile +21 -0
  22. data/gemfiles/activerecord_5.1.gemfile +21 -0
  23. data/gemfiles/activerecord_5.2.gemfile +21 -0
  24. data/gemfiles/activerecord_6.0.gemfile +21 -0
  25. data/gemfiles/activerecord_6.1.gemfile +23 -0
  26. data/lib/acts-as-taggable-on.rb +133 -0
  27. data/lib/acts_as_taggable_on.rb +6 -0
  28. data/lib/acts_as_taggable_on/default_parser.rb +79 -0
  29. data/lib/acts_as_taggable_on/engine.rb +4 -0
  30. data/lib/acts_as_taggable_on/generic_parser.rb +19 -0
  31. data/lib/acts_as_taggable_on/tag.rb +145 -0
  32. data/lib/acts_as_taggable_on/tag_list.rb +106 -0
  33. data/lib/acts_as_taggable_on/taggable.rb +119 -0
  34. data/lib/acts_as_taggable_on/taggable/cache.rb +90 -0
  35. data/lib/acts_as_taggable_on/taggable/collection.rb +183 -0
  36. data/lib/acts_as_taggable_on/taggable/core.rb +334 -0
  37. data/lib/acts_as_taggable_on/taggable/ownership.rb +136 -0
  38. data/lib/acts_as_taggable_on/taggable/related.rb +71 -0
  39. data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
  40. data/lib/acts_as_taggable_on/taggable/tagged_with_query.rb +16 -0
  41. data/lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb +111 -0
  42. data/lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb +70 -0
  43. data/lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb +82 -0
  44. data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +61 -0
  45. data/lib/acts_as_taggable_on/tagger.rb +89 -0
  46. data/lib/acts_as_taggable_on/tagging.rb +38 -0
  47. data/lib/acts_as_taggable_on/tags_helper.rb +15 -0
  48. data/lib/acts_as_taggable_on/utils.rb +37 -0
  49. data/lib/acts_as_taggable_on/version.rb +3 -0
  50. data/lib/tasks/tags_collate_utf8.rake +21 -0
  51. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +277 -0
  52. data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +112 -0
  53. data/spec/acts_as_taggable_on/caching_spec.rb +129 -0
  54. data/spec/acts_as_taggable_on/default_parser_spec.rb +47 -0
  55. data/spec/acts_as_taggable_on/dirty_spec.rb +142 -0
  56. data/spec/acts_as_taggable_on/generic_parser_spec.rb +14 -0
  57. data/spec/acts_as_taggable_on/related_spec.rb +99 -0
  58. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +231 -0
  59. data/spec/acts_as_taggable_on/tag_list_spec.rb +176 -0
  60. data/spec/acts_as_taggable_on/tag_spec.rb +355 -0
  61. data/spec/acts_as_taggable_on/taggable_spec.rb +821 -0
  62. data/spec/acts_as_taggable_on/tagger_spec.rb +153 -0
  63. data/spec/acts_as_taggable_on/tagging_spec.rb +143 -0
  64. data/spec/acts_as_taggable_on/tags_helper_spec.rb +45 -0
  65. data/spec/acts_as_taggable_on/utils_spec.rb +23 -0
  66. data/spec/internal/app/models/altered_inheriting_taggable_model.rb +5 -0
  67. data/spec/internal/app/models/cached_model.rb +3 -0
  68. data/spec/internal/app/models/cached_model_with_array.rb +11 -0
  69. data/spec/internal/app/models/columns_override_model.rb +5 -0
  70. data/spec/internal/app/models/company.rb +15 -0
  71. data/spec/internal/app/models/inheriting_taggable_model.rb +4 -0
  72. data/spec/internal/app/models/market.rb +2 -0
  73. data/spec/internal/app/models/non_standard_id_taggable_model.rb +8 -0
  74. data/spec/internal/app/models/ordered_taggable_model.rb +4 -0
  75. data/spec/internal/app/models/other_cached_model.rb +3 -0
  76. data/spec/internal/app/models/other_taggable_model.rb +4 -0
  77. data/spec/internal/app/models/student.rb +4 -0
  78. data/spec/internal/app/models/taggable_model.rb +16 -0
  79. data/spec/internal/app/models/untaggable_model.rb +3 -0
  80. data/spec/internal/app/models/user.rb +3 -0
  81. data/spec/internal/config/database.yml.sample +15 -0
  82. data/spec/internal/db/schema.rb +113 -0
  83. data/spec/spec_helper.rb +20 -0
  84. data/spec/support/0-helpers.rb +32 -0
  85. data/spec/support/array.rb +9 -0
  86. data/spec/support/database.rb +36 -0
  87. data/spec/support/database_cleaner.rb +21 -0
  88. metadata +259 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 738ae99c7be21e436e6975d384b965b34e0e92458502a1543987fb56a30f8600
4
+ data.tar.gz: 29cf4f12708b894b77ca154163d45031ba02e55ddcb7755e303022fb2d05e8fa
5
+ SHA512:
6
+ metadata.gz: 899334146c02d189a86723ba6a6827736fdf25156817c84effa6deca9b33308866a7000b68dabb6d4ebae35dc3523d58b5f956dab0930ac9bd3e197d736b3df7
7
+ data.tar.gz: b732dc3c553f923ab0628c7cb96639bb038cab52ac86c0a3ec10b3b03421f16b38e6674ed780f1b24009a75fc1e26ba9ab184724f1277a2a6edf8fa4829ee885
@@ -0,0 +1,95 @@
1
+ name: spec
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ continue-on-error: ${{ matrix.ruby == 'head' }}
9
+ env:
10
+ DB: ${{ matrix.db }}
11
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
12
+ strategy:
13
+ matrix:
14
+ ruby:
15
+ - 2.3
16
+ - 2.4
17
+ - 2.5
18
+ - 2.6
19
+ - 2.7
20
+ - 3.0
21
+ - head
22
+ gemfile:
23
+ - gemfiles/activerecord_5.0.gemfile
24
+ - gemfiles/activerecord_5.2.gemfile
25
+ - gemfiles/activerecord_5.1.gemfile
26
+ - gemfiles/activerecord_6.0.gemfile
27
+ - gemfiles/activerecord_6.1.gemfile
28
+ db:
29
+ - mysql
30
+ - postgresql
31
+ - sqlite3
32
+ exclude:
33
+ # Unfortunately, the mysql2 gem encounters a segfault in the ruby 2.3 environment:
34
+ - ruby: 2.3
35
+ db: mysql
36
+ # Exclude ActiveRecord 6.x for Ruby < 2.5
37
+ - ruby: 2.3
38
+ gemfile: gemfiles/activerecord_6.0.gemfile
39
+ - ruby: 2.3
40
+ gemfile: gemfiles/activerecord_6.1.gemfile
41
+ - ruby: 2.4
42
+ gemfile: gemfiles/activerecord_6.0.gemfile
43
+ - ruby: 2.4
44
+ gemfile: gemfiles/activerecord_6.1.gemfile
45
+ # Exclude ActiveRecord 5.x for Ruby >= 3.0
46
+ - ruby: 3.0
47
+ gemfile: gemfiles/activerecord_5.0.gemfile
48
+ - ruby: 3.0
49
+ gemfile: gemfiles/activerecord_5.1.gemfile
50
+ - ruby: 3.0
51
+ gemfile: gemfiles/activerecord_5.2.gemfile
52
+ - ruby: head
53
+ gemfile: gemfiles/activerecord_5.0.gemfile
54
+ - ruby: head
55
+ gemfile: gemfiles/activerecord_5.1.gemfile
56
+ - ruby: head
57
+ gemfile: gemfiles/activerecord_5.2.gemfile
58
+
59
+ services:
60
+ postgres:
61
+ image: postgres:10
62
+ env:
63
+ POSTGRES_USER: postgres
64
+ POSTGRES_DB: acts_as_taggable_on
65
+ POSTGRES_PASSWORD: postgres
66
+ ports: ['5432:5432']
67
+ options: >-
68
+ --health-cmd pg_isready
69
+ --health-interval 10s
70
+ --health-timeout 5s
71
+ --health-retries 5
72
+ mysql:
73
+ image: mysql:8
74
+ env:
75
+ MYSQL_ALLOW_EMPTY_PASSWORD: true
76
+ ports: ['3306:3306']
77
+ options: >-
78
+ --health-cmd "mysqladmin ping"
79
+ --health-interval 10s
80
+ --health-timeout 5s
81
+ --health-retries 5
82
+ steps:
83
+ - uses: actions/checkout@v2
84
+ - name: Set up Ruby
85
+ uses: ruby/setup-ruby@v1
86
+ with:
87
+ ruby-version: ${{ matrix.ruby }}
88
+ bundler-cache: true
89
+ - name: Create MySQL test database with utf8mb4 charset
90
+ if: ${{ matrix.db == 'mysql' }}
91
+ run: |
92
+ mysql -uroot --host=127.0.0.1 -e "CREATE DATABASE acts_as_taggable_on CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
93
+ - name: Build and test with Rake
94
+ run: |
95
+ bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ *.log
2
+ *.sqlite3
3
+ /pkg/*
4
+ .bundle
5
+ .ruby-version
6
+ spec/internal/config/database.yml
7
+ tmp*.sw?
8
+ *.sw?
9
+ tmp
10
+ *.gem
11
+ *.lock
12
+ *.iml
13
+ /.idea
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --backtrace
data/Appraisals ADDED
@@ -0,0 +1,19 @@
1
+ appraise 'activerecord-5.2' do
2
+ gem 'activerecord', '~> 5.2.0'
3
+ end
4
+
5
+ appraise 'activerecord-5.1' do
6
+ gem 'activerecord', "~> 5.1.1"
7
+ end
8
+
9
+ appraise 'activerecord-5.0' do
10
+ gem 'activerecord', "~> 5.0.3"
11
+ end
12
+
13
+ appraise 'activerecord-6.0' do
14
+ gem 'activerecord', "~> 6.0.0"
15
+ end
16
+
17
+ appraise 'activerecord-6.1' do
18
+ gem 'activerecord', "~> 6.1.0"
19
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,350 @@
1
+ Changes are below categorized as follows:
2
+ - Breaking Changes
3
+ - Features
4
+ - Fixes
5
+ - Performance
6
+ - Misc
7
+ - Documentation
8
+
9
+ Each change should fall into categories that would affect whether the release is major (breaking changes), minor (new behavior), or patch (bug fix). See [semver](http://semver.org/) and [pessimistic versioning](http://guides.rubygems.org/patterns/#pessimistic_version_constraint).
10
+
11
+ As such, _Breaking Changes_ are major. _Features_ would map to either major or minor. _Fixes_, _Performance_, and _Misc_ are either minor or patch, the difference being kind of fuzzy for the purposes of history. Adding _Documentation_ (including tests) would be patch level.
12
+
13
+ ### [v8.1.0) / 2021-06-19](https://github.com/mbleigh/acts-as-taggable-on/compare/v8.0.0...v8.1.0)
14
+ * Fixes
15
+ * [@ngouy Fix rollbackable tenant migrations](https://github.com/mbleigh/acts-as-taggable-on/pull/1038)
16
+ * [@ngouy Fix gem conflict with already existing tenant model](https://github.com/mbleigh/acts-as-taggable-on/pull/1037)
17
+
18
+ ### [v8.0.0) / 2021-06-07](https://github.com/mbleigh/acts-as-taggable-on/compare/v7.0.0...v8.0.0)
19
+ * Features
20
+ * [@lunaru Support tenants for taggings](https://github.com/mbleigh/acts-as-taggable-on/pull/1000)
21
+ * Fixes
22
+ * [@gr-eg Use none? instead of count.zero?](https://github.com/mbleigh/acts-as-taggable-on/pull/1030)
23
+
24
+ ### [v7.0.0) / 2020-12-31](https://github.com/mbleigh/acts-as-taggable-on/compare/v6.5.0...v7.0.0)
25
+ * Features
26
+ * [@kvokka Rails 6.1 support](https://github.com/mbleigh/acts-as-taggable-on/pull/1013)
27
+ * Fixes
28
+ * [@nbulaj Add support for Ruby 2.7 and it's kwargs](https://github.com/mbleigh/acts-as-taggable-on/pull/910)
29
+ * [@Andythurlow @endorfin case sensitivity fix for tagged_with](https://github.com/mbleigh/acts-as-taggable-on/pull/965)
30
+
31
+ ### [6.5.0 / 2019-11-07](https://github.com/mbleigh/acts-as-taggable-on/compare/v6.0.0...v6.5.0)
32
+
33
+ * Features
34
+ * [@mizukami234 @junmoka Make table names configurable](https://github.com/mbleigh/acts-as-taggable-on/pull/910)
35
+ * [@damianlegawiec Rails 6.0.0.beta1 support](https://github.com/mbleigh/acts-as-taggable-on/pull/937)
36
+ * Fixes
37
+ * [@tonyta Avoid overriding user-defined columns cache methods](https://github.com/mbleigh/acts-as-taggable-on/pull/911)
38
+ * [@hengwoon tags_count only need to join on the taggable's table if using STI](https://github.com/mbleigh/acts-as-taggable-on/pull/904)
39
+ * [@bduran82 Avoid unnecessary queries when finding or creating tags](https://github.com/mbleigh/acts-as-taggable-on/pull/839)
40
+ * [@iiwo simplify relation options syntax](https://github.com/mbleigh/acts-as-taggable-on/pull/940)
41
+ * Misc
42
+ * [@gssbzn Remove legacy code for an empty query and replace it with ` ActiveRecord::none`](https://github.com/mbleigh/acts-as-taggable-on/pull/906)
43
+ * [@iiwo remove unneeded spec case](https://github.com/mbleigh/acts-as-taggable-on/pull/941)
44
+ * Documentation
45
+ * [@tonyta Cleanup CHANGELOG.md formatting and references](https://github.com/mbleigh/acts-as-taggable-on/pull/913)
46
+
47
+ ### [6.0.0 / 2018-06-19](https://github.com/mbleigh/acts-as-taggable-on/compare/v5.0.0...v6.0.0)
48
+
49
+ * Breaking Changes
50
+ * [@Fodoj Drop support for Rails 4.2](https://github.com/mbleigh/acts-as-taggable-on/pull/887)
51
+
52
+ * Features
53
+ * [@CalvertYang Add support for uuid primary keys](https://github.com/mbleigh/acts-as-taggable-on/pull/898)
54
+ * [@Fodoj Support Rails 5.2](https://github.com/mbleigh/acts-as-taggable-on/pull/887)
55
+
56
+ * Fixes
57
+ * [@tekniklr matches_attribute was not being used in tag_match_type](https://github.com/mbleigh/acts-as-taggable-on/issues/869)
58
+
59
+ ### [5.0.0 / 2017-05-18](https://github.com/mbleigh/acts-as-taggable-on/compare/v4.0.0...v5.0.0)
60
+
61
+ * Breaking Changes
62
+ * [@seuros Drop support for old version of ActiveRecord and Ruby and prepare rel](https://github.com/mbleigh/acts-as-taggable-on/pull/828)
63
+
64
+ * Features
65
+ * [@rbritom Tagged with rewrite](https://github.com/mbleigh/acts-as-taggable-on/pull/829)
66
+ * [@fearenales Due to database collisions, retry finding or creating a tag](https://github.com/mbleigh/acts-as-taggable-on/pull/809)
67
+ * [@brilyuhns Add owner_tags method to taggable](https://github.com/mbleigh/acts-as-taggable-on/pull/771)
68
+ * [@brilyuhns upport array of contexts in owner_tags_on method](https://github.com/mbleigh/acts-as-taggable-on/pull/771)
69
+ * [@brilyuhns Add specs for owner_tags_on and owner_tags methods](https://github.com/mbleigh/acts-as-taggable-on/pull/771)
70
+
71
+ * Fixes
72
+ * [@rbritom bump ruby versions for travis](https://github.com/mbleigh/acts-as-taggable-on/pull/825)
73
+ * [@mnrk Fixed Rails 5.1 deprecation message, has_many needs String value for](https://github.com/mbleigh/acts-as-taggable-on/pull/813)
74
+ * [@ProGM ProGM Adding a test to demonstrate the bug](https://github.com/mbleigh/acts-as-taggable-on/pull/806)
75
+ * [@ProGM ProGM Ensure that `caching_tag_list_on?` is injected before using it](https://github.com/mbleigh/acts-as-taggable-on/pull/806)
76
+ * [@ProGM ProGM Fix insert query for postgresql. Move schema definition in schema.rb](https://github.com/mbleigh/acts-as-taggable-on/pull/806)
77
+ * [@amatsuda assigned but unused variable - any](https://github.com/mbleigh/acts-as-taggable-on/pull/787)
78
+ * [@gmcnaughton Fix incorrect call of 'self.class' on methods which are already class](https://github.com/mbleigh/acts-as-taggable-on/pull/782)
79
+ * [@gmcnaughton Fixed #712 (incompatibility with ActiveRecord::Sanitization#quoted_id)](https://github.com/mbleigh/acts-as-taggable-on/pull/782)
80
+ * [@arpitchauhan Guard against indexes already existing](https://github.com/mbleigh/acts-as-taggable-on/pull/779)
81
+ * [@arpitchauhan Rename migration to avoid conflicts](https://github.com/mbleigh/acts-as-taggable-on/pull/774)
82
+ * [@lukeasrodgers "Bugfix `TagList#concat` with non-duplicates."](https://github.com/mbleigh/acts-as-taggable-on/pull/729)
83
+ * [@fabn Revert "Added missed indexes."](https://github.com/mbleigh/acts-as-taggable-on/pull/709)
84
+
85
+ * Documentation
86
+ * [@logicminds Adds a table of contents to the readme and contributing files](https://github.com/mbleigh/acts-as-taggable-on/pull/803)
87
+ * [@ashishg-qburst Fix typo in README](https://github.com/mbleigh/acts-as-taggable-on/pull/800)
88
+ * [@praveenangyan Update README.md](https://github.com/mbleigh/acts-as-taggable-on/pull/798)
89
+ * [@colemerrick update finding tagged objects in readme](https://github.com/mbleigh/acts-as-taggable-on/pull/794)
90
+ * [@jaredbeck Help people upgrade to 4.0.0](https://github.com/mbleigh/acts-as-taggable-on/pull/784)
91
+ * [@vasinov Update README.md](https://github.com/mbleigh/acts-as-taggable-on/pull/776)
92
+
93
+ ### [4.0.0 / 2016-08-08](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.5.0...v4.0.0)
94
+
95
+ * Breaking Changes
96
+ * [@krzysiek1507 drop support for Ruby < 2](https://github.com/mbleigh/acts-as-taggable-on/pull/758)
97
+ * [@krzysiek1507 drop support for Rails < 4](https://github.com/mbleigh/acts-as-taggable-on/pull/757)
98
+
99
+ * Features
100
+ * [@jessieay Rails 5](https://github.com/mbleigh/acts-as-taggable-on/pull/763)
101
+
102
+ * Fixes
103
+ * [@rikettsie #623 collation parameter is ignored if it generates an exception](https://github.com/mbleigh/acts-as-taggable-on/pull/650)
104
+ * [@bwvoss References working parser in deprectation warning](https://github.com/mbleigh/acts-as-taggable-on/pull/659)
105
+ * [@jh125486 Updated tagging_contexts to include dynamic contexts](https://github.com/mbleigh/acts-as-taggable-on/pull/660)
106
+ * [@jh125486 Fixed wildcard test (postgres returning rows with unexpected order)](https://github.com/mbleigh/acts-as-taggable-on/pull/660)
107
+ * [@FlowerWrong Add rails 5.0.0 alpha support, not hack rails <5](https://github.com/mbleigh/acts-as-taggable-on/pull/673)
108
+ * [@ryanfox1985 Added missed indexes.](https://github.com/mbleigh/acts-as-taggable-on/pull/682)
109
+ * [@zapnap scope tags to specific tagging](https://github.com/mbleigh/acts-as-taggable-on/pull/697)
110
+ * [@amatsuda method redefined](https://github.com/mbleigh/acts-as-taggable-on/pull/715)
111
+ * [@klacointe Rails 5: Tagger is optional in Tagging relation](https://github.com/mbleigh/acts-as-taggable-on/pull/720)
112
+ * [@mark-jacobs Update clean! method to use case insensitive uniq! when strict_case_match false](https://github.com/mbleigh/acts-as-taggable-on/commit/90c86994b70a399b8b1cbc0ae88835e14d6aadfc)
113
+ * [@lukeasrodgers BugFix flackey time test](https://github.com/mbleigh/acts-as-taggable-on/pull/727)
114
+ * [@pcupueran Add rspec tests for context scopes for tagging_spec](https://github.com/mbleigh/acts-as-taggable-on/pull/740)
115
+ * [@emerson-h Remove existing selects from relation](https://github.com/mbleigh/acts-as-taggable-on/pull/743)
116
+ * [@keerthisiv fix issue with custom delimiter](https://github.com/mbleigh/acts-as-taggable-on/pull/748)
117
+ * [@priyank-gupta specify tag table name for mysql collation query](https://github.com/mbleigh/acts-as-taggable-on/pull/760)
118
+ * [@seuros Remove warning messages](https://github.com/mbleigh/acts-as-taggable-on/commit/cda08c764b07a18b8582b948d1c5b3910a376965)
119
+ * [@rbritom Fix migration, #references already adds index](https://github.com/mbleigh/acts-as-taggable-on/commit/95f743010954b6b738a6e8c17315112c878f7a81)
120
+ * [@rbritom Fix deprecation warning](https://github.com/mbleigh/acts-as-taggable-on/commit/62e4a6fa74ae3faed615683cd3ad5b5cdacf5c96)
121
+ * [@rbritom fix scope array arguments](https://github.com/mbleigh/acts-as-taggable-on/commit/a415a8d6367b2e91bd7e363589135f953929b8cc)
122
+ * [@seuros Remove more deprecations](https://github.com/mbleigh/acts-as-taggable-on/commit/05794170f64f8bf250b34d2d594e368721009278)
123
+ * [@lukeasrodgers Bugfix `TagList#concat` with non-duplicates.](https://github.com/mbleigh/acts-as-taggable-on/commit/2c6214f0ddf8c6440ab81eec04d1fbf9d97c8826)
124
+ * [@seuros clean! should return self.](https://github.com/mbleigh/acts-as-taggable-on/commit/c739422f56f8ff37e3f321235e74997422a1c980)
125
+ * [@rbritom renable appraisals](https://github.com/mbleigh/acts-as-taggable-on/commit/0ca1f1c5b059699c683a28b522e86a3d5cd7639e)
126
+ * [@rbritom remove index conditionally on up method.](https://github.com/mbleigh/acts-as-taggable-on/commit/9cc580e7f88164634eb10c8826e5b30ea0e00544)
127
+ * [@rbritom add index on down method . ](https://github.com/mbleigh/acts-as-taggable-on/pull/767)
128
+ * [@rbritom remove index conditionally on up method](https://github.com/mbleigh/acts-as-taggable-on/commit/9cc580e7f88164634eb10c8826e5b30ea0e00544)
129
+
130
+ * Documentation
131
+ * [@logicminds Adds table of contents using doctoc utility](https://github.com/mbleigh/acts-as-taggable-on/pull/803)
132
+ * [@jamesprior Changing ActsAsTaggable to ActsAsTaggableOn](https://github.com/mbleigh/acts-as-taggable-on/pull/637)
133
+ * [@markgandolfo Update README.md](https://github.com/mbleigh/acts-as-taggable-on/pull/645))
134
+ * [@snowblink Update release date for 3.5.0](https://github.com/mbleigh/acts-as-taggable-on/pull/647)
135
+ * [@AlexVPopov Update README.md](https://github.com/mbleigh/acts-as-taggable-on/pull/671)
136
+ * [@schnmudgal README.md, Improve documentation for Tag Ownership](https://github.com/mbleigh/acts-as-taggable-on/pull/706)
137
+
138
+ ### [3.5.0 / 2015-03-03](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.4.4...v3.5.0)
139
+
140
+ * Fixes
141
+ * [@rikettsie Fixed collation for MySql via rake rule or config parameter](https://github.com/mbleigh/acts-as-taggable-on/pull/634)
142
+
143
+ * Misc
144
+ * [@pcupueran Add rspec test for tagging_spec completeness]()
145
+
146
+ ### [3.4.4 / 2015-02-11](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.4.3...v3.4.4)
147
+
148
+ * Fixes
149
+ * [@d4rky-pl Add context constraint to find_related_* methods](https://github.com/mbleigh/acts-as-taggable-on/pull/629)
150
+
151
+ ### [3.4.3 / 2014-09-26](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.4.2...v3.4.3)
152
+
153
+ * Fixes
154
+ * [@warp clears column cache on reset_column_information resolves](https://github.com/mbleigh/acts-as-taggable-on/issues/621)
155
+
156
+ ### [3.4.2 / 2014-09-26](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.4.1...v3.4.2)
157
+
158
+ * Fixes
159
+ * [@stiff fixed tagged_with :any in postgresql](https://github.com/mbleigh/acts-as-taggable-on/pull/570)
160
+ * [@jerefrer fixed encoding in mysql](https://github.com/mbleigh/acts-as-taggable-on/pull/588)
161
+ * [@markedmondson Ensure taggings context aliases are maintained when joining multiple taggables](https://github.com/mbleigh/acts-as-taggable-on/pull/589)
162
+
163
+ ### [3.4.1 / 2014-09-01](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.4.0...v3.4.1)
164
+
165
+ * Fixes
166
+ * [@konukhov fix owned ordered taggable bug](https://github.com/mbleigh/acts-as-taggable-on/pull/585)
167
+
168
+ ### [3.4.0 / 2014-08-29](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.3.0...v3.4.0)
169
+
170
+ * Features
171
+ * [@ProGM Support for custom parsers for tags](https://github.com/mbleigh/acts-as-taggable-on/pull/579)
172
+ * [@lolaodelola #577 Popular feature](https://github.com/mbleigh/acts-as-taggable-on/pull/577)
173
+
174
+ * Fixes
175
+ * [@twalpole Update for rails edge (4.2)](https://github.com/mbleigh/acts-as-taggable-on/pull/583)
176
+
177
+ * Performance
178
+ * [@ashanbrown #584 Use pluck instead of select](https://github.com/mbleigh/acts-as-taggable-on/pull/584)
179
+
180
+ ### [3.3.0 / 2014-07-08](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.6...v3.3.0)
181
+
182
+ * Features
183
+ * [@felipeclopes #488 Support for `start_at` and `end_at` restrictions when selecting tags](https://github.com/mbleigh/acts-as-taggable-on/pull/488)
184
+
185
+ * Fixes
186
+ * [@tonytonyjan #560 Fix for `ActsAsTaggableOn.remove_unused_tags` doesn't work](https://github.com/mbleigh/acts-as-taggable-on/pull/560)
187
+ * [@TheLarkInn #555 Fix for `tag_cloud` helper to generate correct css tags](https://github.com/mbleigh/acts-as-taggable-on/pull/555)
188
+
189
+ * Performance
190
+ * [@pcai #556 Add back taggables index in the taggins table](https://github.com/mbleigh/acts-as-taggable-on/pull/556)
191
+
192
+ ### [3.2.6 / 2014-05-28](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.5...v3.2.6)
193
+
194
+ * Fixes
195
+ * [@seuros #548 Fix dirty marking when tags are not ordered](https://github.com/mbleigh/acts-as-taggable-on/issues/548)
196
+
197
+ * Misc
198
+ * [@seuros Remove actionpack dependency](https://github.com/mbleigh/acts-as-taggable-on/commit/5d20e0486c892fbe21af42fdcd79d0b6ebe87ed4)
199
+ * [@seuros #547 Add tests for update_attributes](https://github.com/mbleigh/acts-as-taggable-on/issues/547)
200
+
201
+ ### [3.2.5 / 2014-05-25](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.4...v3.2.5)
202
+
203
+ * Fixes
204
+ * [@seuros #546 Fix autoload bug. Now require engine file instead of autoloading it](https://github.com/mbleigh/acts-as-taggable-on/issues/546)
205
+
206
+ ### [3.2.4 / 2014-05-24](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.3...v3.2.4)
207
+
208
+ * Fixes
209
+ * [@seuros #544 Fix incorrect query generation related to `GROUP BY` SQL statement](https://github.com/mbleigh/acts-as-taggable-on/issues/544)
210
+
211
+ * Misc
212
+ * [@seuros #545 Remove `ammeter` development dependency](https://github.com/mbleigh/acts-as-taggable-on/pull/545)
213
+ * [@seuros #545 Deprecate `TagList.from` in favor of `TagListParser.parse`](https://github.com/mbleigh/acts-as-taggable-on/pull/545)
214
+ * [@seuros #543 Introduce lazy loading](https://github.com/mbleigh/acts-as-taggable-on/pull/543)
215
+ * [@seuros #541 Deprecate ActsAsTaggableOn::Utils](https://github.com/mbleigh/acts-as-taggable-on/pull/541)
216
+
217
+ ### [3.2.3 / 2014-05-16](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.2...v3.2.3)
218
+
219
+ * Fixes
220
+ * [@seuros #540 Fix for tags removal (it was affecting all records with the same tag)](https://github.com/mbleigh/acts-as-taggable-on/pull/540)
221
+ * [@akicho8 #535 Fix for `options` Hash passed to methods from being deleted by those methods](https://github.com/mbleigh/acts-as-taggable-on/pull/535)
222
+
223
+ ### [3.2.2 / 2014-05-07](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.1...v3.2.2)
224
+
225
+ * Breaking Changes
226
+ * [@seuros #526 Taggable models are not extended with ActsAsTaggableOn::Utils anymore](https://github.com/mbleigh/acts-as-taggable-on/pull/526)
227
+
228
+ * Fixes
229
+ * [@seuros #536 Add explicit conversion of tags to strings (when assigning tags)](https://github.com/mbleigh/acts-as-taggable-on/pull/536)
230
+
231
+ * Misc
232
+ * [@seuros #526 Delete outdated benchmark script](https://github.com/mbleigh/acts-as-taggable-on/pull/526)
233
+ * [@seuros #525 Fix tests so that they pass with MySQL](https://github.com/mbleigh/acts-as-taggable-on/pull/525)
234
+
235
+ ### [3.2.1 / 2014-05-06](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.2.0...v3.2.1)
236
+
237
+ * Misc
238
+ * [@seuros #523 Run tests loading only ActiveRecord (without the full Rails stack)](https://github.com/mbleigh/acts-as-taggable-on/pull/523)
239
+ * [@seuros #523 Remove activesupport dependency](https://github.com/mbleigh/acts-as-taggable-on/pull/523)
240
+ * [@seuros #523 Introduce database_cleaner in specs](https://github.com/mbleigh/acts-as-taggable-on/pull/523)
241
+ * [@seuros #520 Tag_list cleanup](https://github.com/mbleigh/acts-as-taggable-on/pull/520)
242
+
243
+ ### [3.2.0 / 2014-05-01](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.1.1...v3.2.0)
244
+
245
+ * Breaking Changes
246
+ * ActsAsTaggableOn::Tag is not extend with ActsAsTaggableOn::Utils anymore
247
+
248
+ * Features
249
+ * [@ches #413 Hook to support STI subclasses of Tag in save_tags](https://github.com/mbleigh/acts-as-taggable-on/pull/413)
250
+
251
+ * Fixes
252
+ * [@jdelStrother #515 Rename Compatibility methods to reduce chance of conflicts](https://github.com/mbleigh/acts-as-taggable-on/pull/515)
253
+ * [@seuros #512 fix for << method](https://github.com/mbleigh/acts-as-taggable-on/pull/512)
254
+ * [@sonots #510 fix IN subquery error for mysql](https://github.com/mbleigh/acts-as-taggable-on/pull/510)
255
+ * [@jonseaberg #499 fix for race condition when multiple processes try to add the same tag](https://github.com/mbleigh/acts-as-taggable-on/pull/499)
256
+ * [@leklund #496 Fix for distinct and postgresql json columns errors](https://github.com/mbleigh/acts-as-taggable-on/pull/496)
257
+ * [@thatbettina & @plexus #394 Multiple quoted tags](https://github.com/mbleigh/acts-as-taggable-on/pull/394)
258
+
259
+ * Performance
260
+
261
+ * Misc
262
+ * [@seuros #511 Rspec 3](https://github.com/mbleigh/acts-as-taggable-on/pull/511)
263
+
264
+ ### [3.1.0 / 2014-03-31](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.0.1...v3.1.0)
265
+
266
+ * Fixes
267
+ * [@mikehale #487 Match_all respects context](https://github.com/mbleigh/acts-as-taggable-on/pull/487)
268
+
269
+ * Performance
270
+ * [@dgilperez #390 Add taggings counter cache](https://github.com/mbleigh/acts-as-taggable-on/pull/390)
271
+
272
+ * Misc
273
+ * [@jonseaberg Add missing indexes to schema used in specs #474](https://github.com/mbleigh/acts-as-taggable-on/pull/474)
274
+ * [@seuros Specify Ruby >= 1.9.3 required in gemspec](https://github.com/mbleigh/acts-as-taggable-on/pull/502)
275
+ * [@kiasaki Add missing quotes to code example](https://github.com/mbleigh/acts-as-taggable-on/pull/501)
276
+
277
+ ### [3.1.0.rc1 / 2014-02-26](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.0.1...v3.1.0.rc1)
278
+
279
+ * Features
280
+ * [@Burkazoid #467 Add :order_by_matching_tag_count option](https://github.com/mbleigh/acts-as-taggable-on/pull/469)
281
+
282
+ * Fixes
283
+ * [@rafael #406 Dirty attributes not correctly derived](https://github.com/mbleigh/acts-as-taggable-on/pull/406)
284
+ * [@BenZhang #440 Did not respect strict_case_match](https://github.com/mbleigh/acts-as-taggable-on/pull/440)
285
+ * [@znz #456 Fix breaking encoding of tag](https://github.com/mbleigh/acts-as-taggable-on/pull/456)
286
+ * [@rgould #417 Let '.count' work when tagged_with is accompanied by a group clause](https://github.com/mbleigh/acts-as-taggable-on/pull/417)
287
+ * [@developer88 #461 Move 'Distinct' out of select string and use .uniq instead](https://github.com/mbleigh/acts-as-taggable-on/pull/461)
288
+ * [@gerard-leijdekkers #473 Fixed down migration index name](https://github.com/mbleigh/acts-as-taggable-on/pull/473)
289
+ * [@leo-souza #498 Use database's lower function for case-insensitive match](https://github.com/mbleigh/acts-as-taggable-on/pull/498)
290
+
291
+ * Misc
292
+ * [@billychan #463 Thread safe support](https://github.com/mbleigh/acts-as-taggable-on/pull/463)
293
+ * [@billychan #386 Add parse:true instructions to README](https://github.com/mbleigh/acts-as-taggable-on/pull/386)
294
+ * [@seuros #449 Improve README/UPGRADING/post install docs](https://github.com/mbleigh/acts-as-taggable-on/pull/449)
295
+ * [@seuros #452 Remove I18n deprecation warning in specs](https://github.com/mbleigh/acts-as-taggable-on/pull/452)
296
+ * [@seuros #453 Test against Ruby 2.1 on Travis CI](https://github.com/mbleigh/acts-as-taggable-on/pull/453)
297
+ * [@takashi #454 Clarify example in docs](https://github.com/mbleigh/acts-as-taggable-on/pull/454)
298
+
299
+ ### [3.0.1 / 2014-01-08](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.0.0...v3.0.1)
300
+
301
+ * Fixes
302
+ * [@rafael #406 Dirty attributes not correctly derived](https://github.com/mbleigh/acts-as-taggable-on/pull/406)
303
+ * [@BenZhang #440 Did not respect strict_case_match](https://github.com/mbleigh/acts-as-taggable-on/pull/440)
304
+ * [@znz #456 Fix breaking encoding of tag](https://github.com/mbleigh/acts-as-taggable-on/pull/456)
305
+
306
+ * Misc
307
+ * [@billychan #386 Add parse:true instructions to README](https://github.com/mbleigh/acts-as-taggable-on/pull/386)
308
+ * [@seuros #449 Improve README/UPGRADING/post install docs](https://github.com/mbleigh/acts-as-taggable-on/pull/449)
309
+ * [@seuros #452 Remove I18n deprecation warning in specs](https://github.com/mbleigh/acts-as-taggable-on/pull/452)
310
+ * [@seuros #453 Test against Ruby 2.1 on Travis CI](https://github.com/mbleigh/acts-as-taggable-on/pull/453)
311
+ * [@takashi #454 Clarify example in docs](https://github.com/mbleigh/acts-as-taggable-on/pull/454)
312
+
313
+ ### [3.0.0 / 2014-01-01](https://github.com/mbleigh/acts-as-taggable-on/compare/v2.4.1...v3.0.0)
314
+
315
+ * Breaking Changes
316
+ * No longer supports Ruby 1.8.
317
+
318
+ * Features
319
+ * Supports Rails 4.1.
320
+
321
+ * Misc (TODO: expand)
322
+ * [@zquestz #359](https://github.com/mbleigh/acts-as-taggable-on/pull/359)
323
+ * [@rsl #367](https://github.com/mbleigh/acts-as-taggable-on/pull/367)
324
+ * [@ktdreyer #383](https://github.com/mbleigh/acts-as-taggable-on/pull/383)
325
+ * [@cwoodcox #346](https://github.com/mbleigh/acts-as-taggable-on/pull/346)
326
+ * [@mrb #421](https://github.com/mbleigh/acts-as-taggable-on/pull/421)
327
+ * [@bf4 #430](https://github.com/mbleigh/acts-as-taggable-on/pull/430)
328
+ * [@sanemat #368](https://github.com/mbleigh/acts-as-taggable-on/pull/368)
329
+ * [@bf4 #343](https://github.com/mbleigh/acts-as-taggable-on/pull/343)
330
+ * [@marclennox #429](https://github.com/mbleigh/acts-as-taggable-on/pull/429)
331
+ * [@shekibobo #403](https://github.com/mbleigh/acts-as-taggable-on/pull/403)
332
+ * [@ches @ktdreyer #410](https://github.com/mbleigh/acts-as-taggable-on/pull/410)
333
+ * [@makaroni4 #371](https://github.com/mbleigh/acts-as-taggable-on/pull/371)
334
+ * [kenzai @davidstosik @awt #431](https://github.com/mbleigh/acts-as-taggable-on/pull/431)
335
+ * [@bf4 @joelcogen @shekibobo @aaronchi #438](https://github.com/mbleigh/acts-as-taggable-on/pull/438)
336
+ * [@seuros #442](https://github.com/mbleigh/acts-as-taggable-on/pull/442)
337
+ * [@bf4 #445](https://github.com/mbleigh/acts-as-taggable-on/pull/445)
338
+ * [@eagletmt #446](https://github.com/mbleigh/acts-as-taggable-on/pull/446)
339
+
340
+ ### 3.0.0.rc2 [changes](https://github.com/mbleigh/acts-as-taggable-on/compare/fork-v3.0.0.rc1...fork-v3.0.0.rc2)
341
+
342
+ ### 3.0.0.rc1 [changes](https://github.com/mbleigh/acts-as-taggable-on/compare/v2.4.1...fork-v3.0.0.rc1)
343
+
344
+ ### [2.4.1 / 2013-05-07](https://github.com/mbleigh/acts-as-taggable-on/compare/v2.4.0...v2.4.1)
345
+
346
+ * Features
347
+
348
+ * Fixes
349
+
350
+ * Misc