make_taggable 0.7.0 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.dummyrc +17 -0
  3. data/.github/workflows/ci.yml +140 -0
  4. data/.github/workflows/standard-ci.yml +27 -0
  5. data/.gitignore +2 -1
  6. data/CONTRIBUTING.md +5 -31
  7. data/README.md +20 -9
  8. data/Rakefile +2 -0
  9. data/gemfiles/rails_5.gemfile +9 -0
  10. data/gemfiles/rails_6.gemfile +9 -0
  11. data/gemfiles/rails_6_1.gemfile +9 -0
  12. data/gemfiles/rails_master.gemfile +9 -0
  13. data/lib/make_taggable.rb +1 -1
  14. data/lib/make_taggable/tag.rb +1 -1
  15. data/lib/make_taggable/version.rb +1 -1
  16. data/lib/tasks/setup_test_db.rake +5 -3
  17. data/make_taggable.gemspec +28 -16
  18. metadata +87 -248
  19. data/.github/workflows/mysql_tests.yml +0 -56
  20. data/.github/workflows/pg_tests.yml +0 -56
  21. data/.github/workflows/sqlite_tests.yml +0 -47
  22. data/.github/workflows/standardrb-check.yml +0 -37
  23. data/.standard.yml +0 -18
  24. data/.standard_todo.yml +0 -5
  25. data/LICENSE.txt +0 -21
  26. data/spec/dummy/README.md +0 -0
  27. data/spec/dummy/Rakefile +0 -6
  28. data/spec/dummy/app/assets/config/manifest.js +0 -2
  29. data/spec/dummy/app/channels/application_cable/channel.rb +0 -4
  30. data/spec/dummy/app/channels/application_cable/connection.rb +0 -4
  31. data/spec/dummy/app/controllers/application_controller.rb +0 -2
  32. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  33. data/spec/dummy/app/jobs/application_job.rb +0 -7
  34. data/spec/dummy/app/mailers/application_mailer.rb +0 -4
  35. data/spec/dummy/app/models/altered_inheriting_taggable_model.rb +0 -5
  36. data/spec/dummy/app/models/application_record.rb +0 -3
  37. data/spec/dummy/app/models/cached_model.rb +0 -3
  38. data/spec/dummy/app/models/cached_model_with_array.rb +0 -5
  39. data/spec/dummy/app/models/columns_override_model.rb +0 -5
  40. data/spec/dummy/app/models/company.rb +0 -15
  41. data/spec/dummy/app/models/concerns/.keep +0 -0
  42. data/spec/dummy/app/models/inheriting_taggable_model.rb +0 -4
  43. data/spec/dummy/app/models/market.rb +0 -2
  44. data/spec/dummy/app/models/non_standard_id_taggable_model.rb +0 -8
  45. data/spec/dummy/app/models/ordered_taggable_model.rb +0 -4
  46. data/spec/dummy/app/models/other_cached_model.rb +0 -3
  47. data/spec/dummy/app/models/other_taggable_model.rb +0 -4
  48. data/spec/dummy/app/models/student.rb +0 -4
  49. data/spec/dummy/app/models/taggable_model.rb +0 -14
  50. data/spec/dummy/app/models/taggable_model_with_json.rb +0 -6
  51. data/spec/dummy/app/models/untaggable_model.rb +0 -3
  52. data/spec/dummy/app/models/user.rb +0 -3
  53. data/spec/dummy/app/views/layouts/mailer.html.erb +0 -13
  54. data/spec/dummy/app/views/layouts/mailer.text.erb +0 -1
  55. data/spec/dummy/bin/rails +0 -4
  56. data/spec/dummy/bin/rake +0 -4
  57. data/spec/dummy/bin/setup +0 -33
  58. data/spec/dummy/config.ru +0 -5
  59. data/spec/dummy/config/application.rb +0 -13
  60. data/spec/dummy/config/boot.rb +0 -5
  61. data/spec/dummy/config/cable.yml +0 -10
  62. data/spec/dummy/config/credentials.yml.enc +0 -1
  63. data/spec/dummy/config/database.yml +0 -7
  64. data/spec/dummy/config/environment.rb +0 -5
  65. data/spec/dummy/config/environments/development.rb +0 -52
  66. data/spec/dummy/config/environments/production.rb +0 -105
  67. data/spec/dummy/config/environments/test.rb +0 -49
  68. data/spec/dummy/config/initializers/application_controller_renderer.rb +0 -8
  69. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  70. data/spec/dummy/config/initializers/cors.rb +0 -16
  71. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  72. data/spec/dummy/config/initializers/inflections.rb +0 -16
  73. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  74. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  75. data/spec/dummy/config/locales/en.yml +0 -33
  76. data/spec/dummy/config/master.key +0 -1
  77. data/spec/dummy/config/mysql_database.yml.ci +0 -8
  78. data/spec/dummy/config/pg_database.yml.ci +0 -8
  79. data/spec/dummy/config/puma.rb +0 -38
  80. data/spec/dummy/config/routes.rb +0 -3
  81. data/spec/dummy/config/spring.rb +0 -6
  82. data/spec/dummy/config/storage.yml +0 -34
  83. data/spec/dummy/db/migrate/020201119220853_create_taggable_models.rb +0 -8
  84. data/spec/dummy/db/migrate/020201119221037_create_columns_override_models.rb +0 -9
  85. data/spec/dummy/db/migrate/020201119221121_create_non_standard_id_taggable_models.rb +0 -8
  86. data/spec/dummy/db/migrate/020201119221228_create_untaggable_models.rb +0 -8
  87. data/spec/dummy/db/migrate/020201119221247_create_cached_models.rb +0 -9
  88. data/spec/dummy/db/migrate/020201119221314_create_other_cached_models.rb +0 -11
  89. data/spec/dummy/db/migrate/020201119221343_create_companies.rb +0 -7
  90. data/spec/dummy/db/migrate/020201119221416_create_users.rb +0 -7
  91. data/spec/dummy/db/migrate/020201119221434_create_other_taggable_models.rb +0 -8
  92. data/spec/dummy/db/migrate/020201119221507_create_ordered_taggable_models.rb +0 -8
  93. data/spec/dummy/db/migrate/020201119221530_create_cache_methods_injected_models.rb +0 -7
  94. data/spec/dummy/db/migrate/020201119221629_create_other_cached_with_array_models.rb +0 -11
  95. data/spec/dummy/db/migrate/020201119221746_create_taggable_model_with_jsons.rb +0 -9
  96. data/spec/dummy/lib/tasks/.keep +0 -0
  97. data/spec/dummy/log/.keep +0 -0
  98. data/spec/dummy/public/robots.txt +0 -1
  99. data/spec/dummy/storage/.keep +0 -0
  100. data/spec/dummy/test/channels/application_cable/connection_test.rb +0 -11
  101. data/spec/dummy/test/controllers/.keep +0 -0
  102. data/spec/dummy/test/fixtures/.keep +0 -0
  103. data/spec/dummy/test/fixtures/files/.keep +0 -0
  104. data/spec/dummy/test/integration/.keep +0 -0
  105. data/spec/dummy/test/mailers/.keep +0 -0
  106. data/spec/dummy/test/models/.keep +0 -0
  107. data/spec/dummy/test/test_helper.rb +0 -13
  108. data/spec/dummy/vendor/.keep +0 -0
  109. data/spec/make_taggable/acts_as_tagger_spec.rb +0 -112
  110. data/spec/make_taggable/caching_spec.rb +0 -123
  111. data/spec/make_taggable/default_parser_spec.rb +0 -45
  112. data/spec/make_taggable/dirty_spec.rb +0 -140
  113. data/spec/make_taggable/generic_parser_spec.rb +0 -13
  114. data/spec/make_taggable/make_taggable_spec.rb +0 -260
  115. data/spec/make_taggable/related_spec.rb +0 -93
  116. data/spec/make_taggable/single_table_inheritance_spec.rb +0 -220
  117. data/spec/make_taggable/tag_list_spec.rb +0 -169
  118. data/spec/make_taggable/tag_spec.rb +0 -135
  119. data/spec/make_taggable/taggable_spec.rb +0 -804
  120. data/spec/make_taggable/tagger_spec.rb +0 -149
  121. data/spec/make_taggable/tagging_spec.rb +0 -115
  122. data/spec/make_taggable/tags_helper_spec.rb +0 -43
  123. data/spec/make_taggable/utils_spec.rb +0 -22
  124. data/spec/make_taggable_spec.rb +0 -5
  125. data/spec/spec_helper.rb +0 -16
  126. data/spec/support/array.rb +0 -9
  127. data/spec/support/helpers.rb +0 -31
@@ -1,149 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Tagger" do
4
- before(:each) do
5
- @user = User.create
6
- @taggable = TaggableModel.create(name: "Bob Jones")
7
- end
8
-
9
- it "should have taggings" do
10
- @user.tag(@taggable, with: "ruby,scheme", on: :tags)
11
- expect(@user.owned_taggings.size).to eq(2)
12
- end
13
-
14
- it "should have tags" do
15
- @user.tag(@taggable, with: "ruby,scheme", on: :tags)
16
- expect(@user.owned_tags.size).to eq(2)
17
- end
18
-
19
- it "should scope objects returned by tagged_with by owners" do
20
- @taggable2 = TaggableModel.create(name: "Jim Jones")
21
- @taggable3 = TaggableModel.create(name: "Jane Doe")
22
-
23
- @user2 = User.new
24
- @user.tag(@taggable, with: "ruby, scheme", on: :tags)
25
- @user2.tag(@taggable2, with: "ruby, scheme", on: :tags)
26
- @user2.tag(@taggable3, with: "ruby, scheme", on: :tags)
27
-
28
- expect(TaggableModel.tagged_with(%w[ruby scheme], owned_by: @user).count).to eq(1)
29
- expect(TaggableModel.tagged_with(%w[ruby scheme], owned_by: @user2).count).to eq(2)
30
- end
31
-
32
- it "only returns objects tagged by owned_by when any is true" do
33
- @user2 = User.new
34
- @taggable2 = TaggableModel.create(name: "Jim Jones")
35
- @taggable3 = TaggableModel.create(name: "Jane Doe")
36
-
37
- @user.tag(@taggable, with: "ruby", on: :tags)
38
- @user.tag(@taggable2, with: "java", on: :tags)
39
- @user2.tag(@taggable3, with: "ruby", on: :tags)
40
-
41
- tags = TaggableModel.tagged_with(%w[ruby java], owned_by: @user, any: true)
42
- expect(tags).to include(@taggable, @taggable2)
43
- expect(tags.size).to eq(2)
44
- end
45
-
46
- it "only returns objects tagged by owned_by when exclude is true" do
47
- @user2 = User.new
48
- @taggable2 = TaggableModel.create(name: "Jim Jones")
49
- @taggable3 = TaggableModel.create(name: "Jane Doe")
50
-
51
- @user.tag(@taggable, with: "ruby", on: :tags)
52
- @user.tag(@taggable2, with: "java", on: :tags)
53
- @user2.tag(@taggable3, with: "java", on: :tags)
54
-
55
- tags = TaggableModel.tagged_with(%w[ruby], owned_by: @user, exclude: true)
56
- expect(tags).to eq([@taggable2])
57
- end
58
-
59
- it "should not overlap tags from different taggers" do
60
- @user2 = User.new
61
- expect(-> {
62
- @user.tag(@taggable, with: "ruby, scheme", on: :tags)
63
- @user2.tag(@taggable, with: "java, python, lisp, ruby", on: :tags)
64
- }).to change(MakeTaggable::Tagging, :count).by(6)
65
-
66
- [@user, @user2, @taggable].each(&:reload)
67
-
68
- expect(@user.owned_tags.map(&:name).sort).to eq(%w[ruby scheme].sort)
69
- expect(@user2.owned_tags.map(&:name).sort).to eq(%w[java python lisp ruby].sort)
70
-
71
- expect(@taggable.tags_from(@user).sort).to eq(%w[ruby scheme].sort)
72
- expect(@taggable.tags_from(@user2).sort).to eq(%w[java lisp python ruby].sort)
73
-
74
- expect(@taggable.all_tags_list.sort).to eq(%w[ruby scheme java python lisp].sort)
75
- expect(@taggable.all_tags_on(:tags).size).to eq(5)
76
- end
77
-
78
- it "should not lose tags from different taggers" do
79
- @user2 = User.create
80
- @user2.tag(@taggable, with: "java, python, lisp, ruby", on: :tags)
81
- @user.tag(@taggable, with: "ruby, scheme", on: :tags)
82
-
83
- expect(-> {
84
- @user2.tag(@taggable, with: "java, python, lisp", on: :tags)
85
- }).to change(MakeTaggable::Tagging, :count).by(-1)
86
-
87
- [@user, @user2, @taggable].each(&:reload)
88
-
89
- expect(@taggable.tags_from(@user).sort).to eq(%w[ruby scheme].sort)
90
- expect(@taggable.tags_from(@user2).sort).to eq(%w[java python lisp].sort)
91
-
92
- expect(@taggable.all_tags_list.sort).to eq(%w[ruby scheme java python lisp].sort)
93
- expect(@taggable.all_tags_on(:tags).length).to eq(5)
94
- end
95
-
96
- it "should not lose tags" do
97
- @user2 = User.create
98
-
99
- @user.tag(@taggable, with: "awesome", on: :tags)
100
- @user2.tag(@taggable, with: "awesome, epic", on: :tags)
101
-
102
- expect(-> {
103
- @user2.tag(@taggable, with: "epic", on: :tags)
104
- }).to change(MakeTaggable::Tagging, :count).by(-1)
105
-
106
- @taggable.reload
107
- expect(@taggable.all_tags_list).to include("awesome")
108
- expect(@taggable.all_tags_list).to include("epic")
109
- end
110
-
111
- it "should not lose tags" do
112
- @taggable.update(tag_list: "ruby")
113
- @user.tag(@taggable, with: "ruby, scheme", on: :tags)
114
-
115
- [@taggable, @user].each(&:reload)
116
- expect(@taggable.tag_list).to eq(%w[ruby])
117
- expect(@taggable.all_tags_list.sort).to eq(%w[ruby scheme].sort)
118
-
119
- expect(-> {
120
- @taggable.update(tag_list: "")
121
- }).to change(MakeTaggable::Tagging, :count).by(-1)
122
-
123
- expect(@taggable.tag_list).to be_empty
124
- expect(@taggable.all_tags_list.sort).to eq(%w[ruby scheme].sort)
125
- end
126
-
127
- it "is tagger" do
128
- expect(@user.is_tagger?).to be_truthy
129
- end
130
-
131
- it "should skip save if skip_save is passed as option" do
132
- expect(-> {
133
- @user.tag(@taggable, with: "epic", on: :tags, skip_save: true)
134
- }).to_not change(MakeTaggable::Tagging, :count)
135
- end
136
-
137
- it "should change tags order in ordered taggable" do
138
- @ordered_taggable = OrderedTaggableModel.create name: "hey!"
139
-
140
- @user.tag @ordered_taggable, with: "tag, tag1", on: :tags
141
- expect(@ordered_taggable.reload.tags_from(@user)).to eq(["tag", "tag1"])
142
-
143
- @user.tag @ordered_taggable, with: "tag2, tag1", on: :tags
144
- expect(@ordered_taggable.reload.tags_from(@user)).to eq(["tag2", "tag1"])
145
-
146
- @user.tag @ordered_taggable, with: "tag1, tag2", on: :tags
147
- expect(@ordered_taggable.reload.tags_from(@user)).to eq(["tag1", "tag2"])
148
- end
149
- end
@@ -1,115 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe MakeTaggable::Tagging do
4
- before(:each) do
5
- @tagging = MakeTaggable::Tagging.new
6
- end
7
-
8
- it "should not be valid with a invalid tag" do
9
- @tagging.taggable = TaggableModel.create(name: "Bob Jones")
10
- @tagging.tag = MakeTaggable::Tag.new(name: "")
11
- @tagging.context = "tags"
12
-
13
- expect(@tagging).to_not be_valid
14
-
15
- expect(@tagging.errors[:tag_id]).to eq(["can't be blank"])
16
- end
17
-
18
- it "should not create duplicate taggings" do
19
- @taggable = TaggableModel.create(name: "Bob Jones")
20
- @tag = MakeTaggable::Tag.create(name: "awesome")
21
-
22
- expect(-> {
23
- 2.times { MakeTaggable::Tagging.create(taggable: @taggable, tag: @tag, context: "tags") }
24
- }).to change(MakeTaggable::Tagging, :count).by(1)
25
- end
26
-
27
- it "should not delete tags of other records" do
28
- 6.times { TaggableModel.create(name: "Bob Jones", tag_list: "very, serious, bug") }
29
- expect(MakeTaggable::Tag.count).to eq(3)
30
- taggable = TaggableModel.first
31
- taggable.tag_list = "bug"
32
- taggable.save
33
-
34
- expect(taggable.tag_list).to eq(["bug"])
35
-
36
- another_taggable = TaggableModel.where("id != ?", taggable.id).sample
37
- expect(another_taggable.tag_list.sort).to eq(%w[very serious bug].sort)
38
- end
39
-
40
- it "should destroy unused tags after tagging destroyed" do
41
- previous_setting = MakeTaggable.remove_unused_tags
42
- MakeTaggable.remove_unused_tags = true
43
- MakeTaggable::Tag.destroy_all
44
- @taggable = TaggableModel.create(name: "Bob Jones")
45
- @taggable.update_attribute :tag_list, "aaa,bbb,ccc"
46
- @taggable.update_attribute :tag_list, ""
47
- expect(MakeTaggable::Tag.count).to eql(0)
48
- MakeTaggable.remove_unused_tags = previous_setting
49
- end
50
-
51
- describe "context scopes" do
52
- before do
53
- @tagging_2 = MakeTaggable::Tagging.new
54
- @tagging_3 = MakeTaggable::Tagging.new
55
-
56
- @tagger = User.new
57
- @tagger_2 = User.new
58
-
59
- @tagging.taggable = TaggableModel.create(name: "Black holes")
60
- @tagging.tag = MakeTaggable::Tag.create(name: "Physics")
61
- @tagging.tagger = @tagger
62
- @tagging.context = "Science"
63
- @tagging.save
64
-
65
- @tagging_2.taggable = TaggableModel.create(name: "Satellites")
66
- @tagging_2.tag = MakeTaggable::Tag.create(name: "Technology")
67
- @tagging_2.tagger = @tagger_2
68
- @tagging_2.context = "Science"
69
- @tagging_2.save
70
-
71
- @tagging_3.taggable = TaggableModel.create(name: "Satellites")
72
- @tagging_3.tag = MakeTaggable::Tag.create(name: "Engineering")
73
- @tagging_3.tagger = @tagger_2
74
- @tagging_3.context = "Astronomy"
75
- @tagging_3.save
76
- end
77
-
78
- describe ".owned_by" do
79
- it "should belong to a specific user" do
80
- expect(MakeTaggable::Tagging.owned_by(@tagger).first).to eq(@tagging)
81
- end
82
- end
83
-
84
- describe ".by_context" do
85
- it "should be found by context" do
86
- expect(MakeTaggable::Tagging.by_context("Science").length).to eq(2)
87
- end
88
- end
89
-
90
- describe ".by_contexts" do
91
- it "should find taggings by contexts" do
92
- expect(MakeTaggable::Tagging.by_contexts(["Science", "Astronomy"]).first).to eq(@tagging)
93
- expect(MakeTaggable::Tagging.by_contexts(["Science", "Astronomy"]).second).to eq(@tagging_2)
94
- expect(MakeTaggable::Tagging.by_contexts(["Science", "Astronomy"]).third).to eq(@tagging_3)
95
- expect(MakeTaggable::Tagging.by_contexts(["Science", "Astronomy"]).length).to eq(3)
96
- end
97
- end
98
-
99
- describe ".not_owned" do
100
- before do
101
- @tagging_4 = MakeTaggable::Tagging.new
102
- @tagging_4.taggable = TaggableModel.create(name: "Gravity")
103
- @tagging_4.tag = MakeTaggable::Tag.create(name: "Space")
104
- @tagging_4.context = "Science"
105
- @tagging_4.save
106
- end
107
-
108
- it "should found the taggings that do not have owner" do
109
- expect(MakeTaggable::Tagging.all.length).to eq(4)
110
- expect(MakeTaggable::Tagging.not_owned.length).to eq(1)
111
- expect(MakeTaggable::Tagging.not_owned.first).to eq(@tagging_4)
112
- end
113
- end
114
- end
115
- end
@@ -1,43 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe MakeTaggable::TagsHelper do
4
- before(:each) do
5
- @bob = TaggableModel.create(name: "Bob Jones", language_list: "ruby, php")
6
- @tom = TaggableModel.create(name: "Tom Marley", language_list: "ruby, java")
7
- @eve = TaggableModel.create(name: "Eve Nodd", language_list: "ruby, c++")
8
-
9
- @helper =
10
- class Helper
11
- include MakeTaggable::TagsHelper
12
- end.new
13
- end
14
-
15
- it "should yield the proper css classes" do
16
- tags = {}
17
-
18
- @helper.tag_cloud(TaggableModel.tag_counts_on(:languages), %w[sucky awesome]) do |tag, css_class|
19
- tags[tag.name] = css_class
20
- end
21
-
22
- expect(tags["ruby"]).to eq("awesome")
23
- expect(tags["java"]).to eq("sucky")
24
- expect(tags["c++"]).to eq("sucky")
25
- expect(tags["php"]).to eq("sucky")
26
- end
27
-
28
- it "should handle tags with zero counts (build for empty)" do
29
- MakeTaggable::Tag.create(name: "php")
30
- MakeTaggable::Tag.create(name: "java")
31
- MakeTaggable::Tag.create(name: "c++")
32
-
33
- tags = {}
34
-
35
- @helper.tag_cloud(MakeTaggable::Tag.all, %w[sucky awesome]) do |tag, css_class|
36
- tags[tag.name] = css_class
37
- end
38
-
39
- expect(tags["java"]).to eq("sucky")
40
- expect(tags["c++"]).to eq("sucky")
41
- expect(tags["php"]).to eq("sucky")
42
- end
43
- end
@@ -1,22 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe MakeTaggable::Utils do
4
- describe "#like_operator" do
5
- it "should return 'ILIKE' when the adapter is PostgreSQL" do
6
- allow(MakeTaggable::Utils.connection).to receive(:adapter_name) { "PostgreSQL" }
7
- expect(MakeTaggable::Utils.like_operator).to eq("ILIKE")
8
- end
9
-
10
- it "should return 'LIKE' when the adapter is not PostgreSQL" do
11
- allow(MakeTaggable::Utils.connection).to receive(:adapter_name) { "MySQL" }
12
- expect(MakeTaggable::Utils.like_operator).to eq("LIKE")
13
- end
14
- end
15
-
16
- describe "#sha_prefix" do
17
- it "should return a consistent prefix for a given word" do
18
- expect(MakeTaggable::Utils.sha_prefix("kittens")).to eq(MakeTaggable::Utils.sha_prefix("kittens"))
19
- expect(MakeTaggable::Utils.sha_prefix("puppies")).not_to eq(MakeTaggable::Utils.sha_prefix("kittens"))
20
- end
21
- end
22
- end
@@ -1,5 +0,0 @@
1
- RSpec.describe MakeTaggable do
2
- it "has a version number" do
3
- expect(MakeTaggable::VERSION).not_to be nil
4
- end
5
- end
data/spec/spec_helper.rb DELETED
@@ -1,16 +0,0 @@
1
- # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
3
-
4
- require_relative "../spec/dummy/config/environment"
5
-
6
- require "rspec/rails"
7
- require "rails"
8
-
9
- Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
10
-
11
- RSpec.configure do |config|
12
- config.fixture_path = "spec/fixtures"
13
- config.global_fixtures = :all
14
- config.use_transactional_fixtures = true
15
- config.infer_base_class_for_anonymous_controllers = true
16
- end
@@ -1,9 +0,0 @@
1
- unless [].respond_to?(:freq)
2
- class Array
3
- def freq
4
- k = Hash.new(0)
5
- each { |e| k[e] += 1 }
6
- k
7
- end
8
- end
9
- end
@@ -1,31 +0,0 @@
1
- def using_sqlite?
2
- MakeTaggable::Utils.connection && MakeTaggable::Utils.connection.adapter_name == "SQLite"
3
- end
4
-
5
- def supports_concurrency?
6
- !using_sqlite?
7
- end
8
-
9
- def using_postgresql?
10
- MakeTaggable::Utils.using_postgresql?
11
- end
12
-
13
- def postgresql_version
14
- if using_postgresql?
15
- MakeTaggable::Utils.connection.execute("SHOW SERVER_VERSION").first["server_version"].to_f
16
- else
17
- 0.0
18
- end
19
- end
20
-
21
- def postgresql_support_json?
22
- postgresql_version >= 9.2
23
- end
24
-
25
- def using_mysql?
26
- MakeTaggable::Utils.using_mysql?
27
- end
28
-
29
- def using_case_insensitive_collation?
30
- using_mysql? && MakeTaggable::Utils.connection.collation =~ /_ci\Z/
31
- end