make_taggable 0.6.4 → 0.7.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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/.dummyrc +17 -0
  3. data/.github/workflows/ci.yml +132 -21
  4. data/.gitignore +4 -0
  5. data/Appraisals +4 -0
  6. data/CONTRIBUTING.md +5 -31
  7. data/README.md +61 -37
  8. data/Rakefile +3 -0
  9. data/UPGRADING.md +1 -1
  10. data/gemfiles/rails_6_1.gemfile +9 -0
  11. data/lib/make_taggable.rb +4 -4
  12. data/lib/make_taggable/tag.rb +1 -1
  13. data/lib/make_taggable/version.rb +1 -2
  14. data/lib/tasks/setup_test_db.rake +8 -0
  15. data/make_taggable.gemspec +28 -15
  16. metadata +85 -249
  17. data/.standard.yml +0 -18
  18. data/.standard_todo.yml +0 -5
  19. data/.travis.yml +0 -36
  20. data/LICENSE.txt +0 -21
  21. data/spec/dummy/README.md +0 -24
  22. data/spec/dummy/Rakefile +0 -6
  23. data/spec/dummy/app/assets/config/manifest.js +0 -2
  24. data/spec/dummy/app/channels/application_cable/channel.rb +0 -4
  25. data/spec/dummy/app/channels/application_cable/connection.rb +0 -4
  26. data/spec/dummy/app/controllers/application_controller.rb +0 -2
  27. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  28. data/spec/dummy/app/jobs/application_job.rb +0 -7
  29. data/spec/dummy/app/mailers/application_mailer.rb +0 -4
  30. data/spec/dummy/app/models/altered_inheriting_taggable_model.rb +0 -5
  31. data/spec/dummy/app/models/application_record.rb +0 -3
  32. data/spec/dummy/app/models/cached_model.rb +0 -3
  33. data/spec/dummy/app/models/cached_model_with_array.rb +0 -11
  34. data/spec/dummy/app/models/columns_override_model.rb +0 -5
  35. data/spec/dummy/app/models/company.rb +0 -15
  36. data/spec/dummy/app/models/concerns/.keep +0 -0
  37. data/spec/dummy/app/models/inheriting_taggable_model.rb +0 -4
  38. data/spec/dummy/app/models/market.rb +0 -2
  39. data/spec/dummy/app/models/non_standard_id_taggable_model.rb +0 -8
  40. data/spec/dummy/app/models/ordered_taggable_model.rb +0 -4
  41. data/spec/dummy/app/models/other_cached_model.rb +0 -3
  42. data/spec/dummy/app/models/other_taggable_model.rb +0 -4
  43. data/spec/dummy/app/models/student.rb +0 -4
  44. data/spec/dummy/app/models/taggable_model.rb +0 -14
  45. data/spec/dummy/app/models/untaggable_model.rb +0 -3
  46. data/spec/dummy/app/models/user.rb +0 -3
  47. data/spec/dummy/app/views/layouts/mailer.html.erb +0 -13
  48. data/spec/dummy/app/views/layouts/mailer.text.erb +0 -1
  49. data/spec/dummy/bin/rails +0 -4
  50. data/spec/dummy/bin/rake +0 -4
  51. data/spec/dummy/bin/setup +0 -33
  52. data/spec/dummy/config.ru +0 -5
  53. data/spec/dummy/config/application.rb +0 -19
  54. data/spec/dummy/config/boot.rb +0 -5
  55. data/spec/dummy/config/cable.yml +0 -10
  56. data/spec/dummy/config/credentials.yml.enc +0 -1
  57. data/spec/dummy/config/database.yml +0 -25
  58. data/spec/dummy/config/environment.rb +0 -5
  59. data/spec/dummy/config/environments/development.rb +0 -52
  60. data/spec/dummy/config/environments/production.rb +0 -105
  61. data/spec/dummy/config/environments/test.rb +0 -49
  62. data/spec/dummy/config/initializers/application_controller_renderer.rb +0 -8
  63. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  64. data/spec/dummy/config/initializers/cors.rb +0 -16
  65. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  66. data/spec/dummy/config/initializers/inflections.rb +0 -16
  67. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  68. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  69. data/spec/dummy/config/locales/en.yml +0 -33
  70. data/spec/dummy/config/master.key +0 -1
  71. data/spec/dummy/config/puma.rb +0 -38
  72. data/spec/dummy/config/routes.rb +0 -3
  73. data/spec/dummy/config/spring.rb +0 -6
  74. data/spec/dummy/config/storage.yml +0 -34
  75. data/spec/dummy/db/migrate/20201119220853_create_taggable_models.rb +0 -8
  76. data/spec/dummy/db/migrate/20201119221037_create_columns_override_models.rb +0 -9
  77. data/spec/dummy/db/migrate/20201119221121_create_non_standard_id_taggable_models.rb +0 -8
  78. data/spec/dummy/db/migrate/20201119221228_create_untaggable_models.rb +0 -8
  79. data/spec/dummy/db/migrate/20201119221247_create_cached_models.rb +0 -9
  80. data/spec/dummy/db/migrate/20201119221314_create_other_cached_models.rb +0 -11
  81. data/spec/dummy/db/migrate/20201119221343_create_companies.rb +0 -7
  82. data/spec/dummy/db/migrate/20201119221416_create_users.rb +0 -7
  83. data/spec/dummy/db/migrate/20201119221434_create_other_taggable_models.rb +0 -8
  84. data/spec/dummy/db/migrate/20201119221507_create_ordered_taggable_models.rb +0 -8
  85. data/spec/dummy/db/migrate/20201119221530_create_cache_methods_injected_models.rb +0 -7
  86. data/spec/dummy/db/migrate/20201119221629_create_other_cached_with_array_models.rb +0 -11
  87. data/spec/dummy/db/migrate/20201119221746_create_taggable_model_with_jsons.rb +0 -9
  88. data/spec/dummy/db/migrate/20201121222007_create_make_taggable_tags.make_taggable_engine.rb +0 -11
  89. data/spec/dummy/db/migrate/20201121222008_create_make_taggable_taggings.make_taggable_engine.rb +0 -13
  90. data/spec/dummy/db/migrate/20201121222009_change_tag_name_collation_mysql.make_taggable_engine.rb +0 -8
  91. data/spec/dummy/db/migrate/20201121222010_add_index_to_tags.make_taggable_engine.rb +0 -6
  92. data/spec/dummy/db/migrate/20201121222011_add_index_to_taggings.make_taggable_engine.rb +0 -13
  93. data/spec/dummy/db/schema.rb +0 -117
  94. data/spec/dummy/db/seeds.rb +0 -7
  95. data/spec/dummy/lib/tasks/.keep +0 -0
  96. data/spec/dummy/log/.keep +0 -0
  97. data/spec/dummy/public/robots.txt +0 -1
  98. data/spec/dummy/storage/.keep +0 -0
  99. data/spec/dummy/test/channels/application_cable/connection_test.rb +0 -11
  100. data/spec/dummy/test/controllers/.keep +0 -0
  101. data/spec/dummy/test/fixtures/.keep +0 -0
  102. data/spec/dummy/test/fixtures/files/.keep +0 -0
  103. data/spec/dummy/test/integration/.keep +0 -0
  104. data/spec/dummy/test/mailers/.keep +0 -0
  105. data/spec/dummy/test/models/.keep +0 -0
  106. data/spec/dummy/test/test_helper.rb +0 -13
  107. data/spec/dummy/vendor/.keep +0 -0
  108. data/spec/make_taggable/acts_as_tagger_spec.rb +0 -112
  109. data/spec/make_taggable/caching_spec.rb +0 -123
  110. data/spec/make_taggable/default_parser_spec.rb +0 -45
  111. data/spec/make_taggable/dirty_spec.rb +0 -140
  112. data/spec/make_taggable/generic_parser_spec.rb +0 -13
  113. data/spec/make_taggable/make_taggable_spec.rb +0 -260
  114. data/spec/make_taggable/related_spec.rb +0 -93
  115. data/spec/make_taggable/single_table_inheritance_spec.rb +0 -220
  116. data/spec/make_taggable/tag_list_spec.rb +0 -169
  117. data/spec/make_taggable/tag_spec.rb +0 -297
  118. data/spec/make_taggable/taggable_spec.rb +0 -804
  119. data/spec/make_taggable/tagger_spec.rb +0 -149
  120. data/spec/make_taggable/tagging_spec.rb +0 -115
  121. data/spec/make_taggable/tags_helper_spec.rb +0 -43
  122. data/spec/make_taggable/utils_spec.rb +0 -22
  123. data/spec/make_taggable_spec.rb +0 -5
  124. data/spec/spec_helper.rb +0 -18
  125. data/spec/support/array.rb +0 -9
  126. 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,18 +0,0 @@
1
- # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
3
-
4
- require_relative "../spec/dummy/config/environment"
5
- ActiveRecord::Migrator.migrations_paths = [File.expand_path("../spec/dummy/db/migrate", __dir__)]
6
- ActiveRecord::Migration.maintain_test_schema!
7
-
8
- require "rspec/rails"
9
- require "rails"
10
-
11
- Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
12
-
13
- RSpec.configure do |config|
14
- config.fixture_path = "spec/fixtures"
15
- config.global_fixtures = :all
16
- config.use_transactional_fixtures = true
17
- config.infer_base_class_for_anonymous_controllers = true
18
- 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