make_taggable 0.7.4 → 1.0.0

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +79 -0
  3. data/CONTRIBUTING.md +65 -22
  4. data/LICENSE.md +18 -17
  5. data/README.md +73 -444
  6. data/UPGRADING.md +28 -2
  7. data/docs/caching.md +93 -0
  8. data/docs/configuration.md +108 -0
  9. data/docs/contexts.md +147 -0
  10. data/docs/database.md +106 -0
  11. data/docs/getting-started.md +114 -0
  12. data/docs/migrating-from-aato.md +67 -0
  13. data/docs/ownership.md +111 -0
  14. data/docs/parsers.md +109 -0
  15. data/docs/querying.md +163 -0
  16. data/docs/tag-clouds.md +74 -0
  17. data/lib/make_taggable/default_parser.rb +45 -32
  18. data/lib/make_taggable/engine.rb +6 -0
  19. data/lib/make_taggable/generic_parser.rb +30 -4
  20. data/lib/make_taggable/tag.rb +121 -19
  21. data/lib/make_taggable/tag_list.rb +77 -24
  22. data/lib/make_taggable/taggable/cache.rb +61 -11
  23. data/lib/make_taggable/taggable/collection.rb +102 -30
  24. data/lib/make_taggable/taggable/core.rb +154 -34
  25. data/lib/make_taggable/taggable/ownership.rb +82 -4
  26. data/lib/make_taggable/taggable/related.rb +66 -3
  27. data/lib/make_taggable/taggable/tag_list_type.rb +8 -0
  28. data/lib/make_taggable/taggable/tagged_with_query/all_tags_query.rb +10 -0
  29. data/lib/make_taggable/taggable/tagged_with_query/any_tags_query.rb +10 -0
  30. data/lib/make_taggable/taggable/tagged_with_query/exclude_tags_query.rb +10 -0
  31. data/lib/make_taggable/taggable/tagged_with_query/query_base.rb +15 -0
  32. data/lib/make_taggable/taggable/tagged_with_query.rb +17 -0
  33. data/lib/make_taggable/taggable.rb +34 -33
  34. data/lib/make_taggable/tagger.rb +73 -12
  35. data/lib/make_taggable/tagging.rb +30 -3
  36. data/lib/make_taggable/tags_helper.rb +22 -1
  37. data/lib/make_taggable/utils.rb +40 -5
  38. data/lib/make_taggable/version.rb +8 -1
  39. data/lib/make_taggable.rb +153 -8
  40. data/make_taggable.gemspec +13 -20
  41. metadata +50 -165
  42. data/.dummyrc +0 -17
  43. data/.github/workflows/ci.yml +0 -140
  44. data/.github/workflows/standard-ci.yml +0 -27
  45. data/.gitignore +0 -17
  46. data/.rspec +0 -3
  47. data/Appraisals +0 -15
  48. data/Gemfile +0 -16
  49. data/Rakefile +0 -13
  50. data/gemfiles/rails_5.gemfile +0 -9
  51. data/gemfiles/rails_6.gemfile +0 -9
  52. data/gemfiles/rails_6_1.gemfile +0 -9
  53. data/gemfiles/rails_master.gemfile +0 -9
  54. data/lib/tasks/setup_test_db.rake +0 -8
@@ -1,140 +0,0 @@
1
- ---
2
- name: CI
3
-
4
- on:
5
- pull_request:
6
- branches:
7
- - '*'
8
- push:
9
- branches:
10
- - master
11
- jobs:
12
- # SQLITE
13
- sqlite:
14
- runs-on: ubuntu-latest
15
- strategy:
16
- matrix:
17
- ruby: ['2.6', '2.7', '3.0']
18
- gemfile:
19
- - rails_5
20
- - rails_6
21
- - rails_6_1
22
- - rails_master
23
- exclude:
24
- - ruby: '3.0'
25
- gemfile: rails_5
26
- # Rails 7 requires Ruby 2.7 or higher
27
- - ruby: '2.6'
28
- gemfile: rails_master
29
- env:
30
- BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
31
- BUNDLE_PATH_RELATIVE_TO_CWD: true
32
-
33
- steps:
34
- - uses: actions/checkout@v2
35
- - name: Set up Ruby ${{ matrix.ruby }}
36
- uses: ruby/setup-ruby@v1
37
- with:
38
- ruby-version: ${{ matrix.ruby }}
39
- bundler-cache: true
40
-
41
- - name: Run tests
42
- env:
43
- RAILS_ENV: test
44
- run: |
45
- bundle exec rake create_test_app
46
- bundle exec rake
47
-
48
-
49
- # MYSQL
50
- mysql:
51
- runs-on: ubuntu-latest
52
- strategy:
53
- matrix:
54
- ruby: ['2.6', '2.7', '3.0']
55
- gemfile:
56
- - rails_5
57
- - rails_6
58
- - rails_6_1
59
- - rails_master
60
- exclude:
61
- - ruby: '3.0'
62
- gemfile: rails_5
63
- # Rails 7 requires Ruby 2.7 or higher
64
- - ruby: '2.6'
65
- gemfile: rails_master
66
- env:
67
- BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
68
- BUNDLE_PATH_RELATIVE_TO_CWD: true
69
-
70
- services:
71
- mysql:
72
- image: mysql:8
73
- env:
74
- MYSQL_ROOT_PASSWORD: password
75
- MSQL_DATABASE: test
76
- ports: ['3306:3306']
77
- options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
78
-
79
- steps:
80
- - uses: actions/checkout@v2
81
- - name: Set up Ruby ${{ matrix.ruby }}
82
- uses: ruby/setup-ruby@v1
83
- with:
84
- ruby-version: ${{ matrix.ruby }}
85
- bundler-cache: true
86
-
87
- - name: Run tests
88
- env:
89
- DATABASE_URL: mysql2://root:password@127.0.0.1:3306/test
90
- RAILS_ENV: test
91
- run: |
92
- bundle exec rake create_test_app
93
- bundle exec rake
94
-
95
-
96
- # POSTGRES
97
- postgres:
98
- runs-on: ubuntu-latest
99
- strategy:
100
- matrix:
101
- ruby: ['2.6', '2.7', '3.0']
102
- gemfile:
103
- - rails_5
104
- - rails_6
105
- - rails_6_1
106
- - rails_master
107
- exclude:
108
- - ruby: '3.0'
109
- gemfile: rails_5
110
- # Rails 7 requires Ruby 2.7 or higher
111
- - ruby: '2.6'
112
- gemfile: rails_master
113
- env:
114
- BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
115
- BUNDLE_PATH_RELATIVE_TO_CWD: true
116
-
117
- services:
118
- postgres:
119
- image: postgres:12
120
- env:
121
- POSTGRES_USER: postgres
122
- POSTGRES_PASSWORD: password
123
- POSTGRES_DB: test
124
- ports: ['5432:5432']
125
-
126
- steps:
127
- - uses: actions/checkout@v2
128
- - name: Set up Ruby ${{ matrix.ruby }}
129
- uses: ruby/setup-ruby@v1
130
- with:
131
- ruby-version: ${{ matrix.ruby }}
132
- bundler-cache: true
133
-
134
- - name: Run tests
135
- env:
136
- DATABASE_URL: postgres://postgres:password@localhost:5432/test
137
- RAILS_ENV: test
138
- run: |
139
- bundle exec rake create_test_app
140
- bundle exec rake
@@ -1,27 +0,0 @@
1
- ---
2
- name: Standard Rb
3
-
4
- on:
5
- pull_request:
6
- branches:
7
- - '*'
8
- push:
9
- branches:
10
- - master
11
- jobs:
12
- # STANDARD RB
13
- standard:
14
- runs-on: ubuntu-latest
15
- strategy:
16
- matrix:
17
- ruby: ['3.0']
18
- steps:
19
- - uses: actions/checkout@v2
20
- - name: Set up Ruby ${{ matrix.ruby }}
21
- uses: ruby/setup-ruby@v1
22
- with:
23
- ruby-version: ${{ matrix.ruby }}
24
- bundler-cache: true
25
-
26
- - name: Run Standard Rb
27
- run: bundle exec standardrb --format progress
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- *.log
2
- *.sqlite3
3
- /pkg/*
4
- .bundle
5
- .ruby-version
6
- spec/internal/config/database.yml
7
- dummy
8
- spec/dummy
9
- tmp*.sw?
10
- *.sw?
11
- tmp
12
- *.gem
13
- *.lock
14
- *.iml
15
- /.idea
16
- spec/dummy/db/schema.rb
17
- spec/dummy/db/migrate/[!0]*
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/Appraisals DELETED
@@ -1,15 +0,0 @@
1
- appraise "rails-5" do
2
- gem "rails", "~> 5.2.0"
3
- end
4
-
5
- appraise "rails-6" do
6
- gem "rails", "~> 6.0.0"
7
- end
8
-
9
- appraise "rails-6-1" do
10
- gem "rails", "~> 6.1.0"
11
- end
12
-
13
- appraise "rails-master" do
14
- gem "rails", github: "rails/rails"
15
- end
data/Gemfile DELETED
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
-
4
- # Declare your gem's dependencies in noticed.gemspec.
5
- # Bundler will treat runtime dependencies like base dependencies, and
6
- # development dependencies will be added by default to the :development group.
7
- gemspec
8
-
9
- # Declare any dependencies that are still in development here instead of in
10
- # your gemspec. These might include edge Rails or gems from your path or
11
- # Git. Remember to move these dependencies to your gemspec before releasing
12
- # your gem to rubygems.org.
13
-
14
- # To use a debugger
15
- gem "byebug", group: [:development, :test]
16
- gem "listen", group: [:development, :test]
data/Rakefile DELETED
@@ -1,13 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rails/dummy/tasks"
3
-
4
- import "./lib/tasks/tags_collate_utf8.rake"
5
-
6
- APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
7
-
8
- require "rspec/core/rake_task"
9
- RSpec::Core::RakeTask.new(:spec)
10
-
11
- task default: :spec
12
-
13
- load "lib/tasks/setup_test_db.rake"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "byebug", group: [:development, :test]
6
- gem "listen", group: [:development, :test]
7
- gem "rails", "~> 5.2.0"
8
-
9
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "byebug", group: [:development, :test]
6
- gem "listen", group: [:development, :test]
7
- gem "rails", "~> 6.0.0"
8
-
9
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "byebug", group: [:development, :test]
6
- gem "listen", group: [:development, :test]
7
- gem "rails", "~> 6.1.0"
8
-
9
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "byebug", group: [:development, :test]
6
- gem "listen", group: [:development, :test]
7
- gem "rails", git: "https://github.com/rails/rails.git"
8
-
9
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- require "fileutils"
2
-
3
- desc "Create a test app"
4
- task :create_test_app do
5
- ENV["RAILS_ENV"] = "test"
6
- ENV["ENGINE"] = "make_taggable_engine"
7
- Rake::Task["dummy:app"].invoke
8
- end