mongoid-slug 6.0.1 → 7.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.
- checksums.yaml +4 -4
- data/README.md +34 -3
- data/lib/mongoid/slug/criteria.rb +10 -6
- data/lib/mongoid/slug/index_builder.rb +2 -0
- data/lib/mongoid/slug/railtie.rb +2 -0
- data/lib/mongoid/slug/slug_id_strategy.rb +2 -0
- data/lib/mongoid/slug/unique_slug.rb +8 -9
- data/lib/mongoid/slug/version.rb +4 -2
- data/lib/mongoid/slug.rb +15 -10
- data/lib/mongoid_slug.rb +2 -0
- data/lib/tasks/mongoid_slug.rake +3 -1
- metadata +9 -168
- data/spec/models/alias.rb +0 -6
- data/spec/models/article.rb +0 -9
- data/spec/models/artist.rb +0 -8
- data/spec/models/artwork.rb +0 -10
- data/spec/models/author.rb +0 -15
- data/spec/models/author_polymorphic.rb +0 -15
- data/spec/models/book.rb +0 -12
- data/spec/models/book_polymorphic.rb +0 -12
- data/spec/models/caption.rb +0 -17
- data/spec/models/entity.rb +0 -11
- data/spec/models/friend.rb +0 -7
- data/spec/models/incorrect_slug_persistence.rb +0 -9
- data/spec/models/integer_id.rb +0 -9
- data/spec/models/magazine.rb +0 -7
- data/spec/models/page.rb +0 -9
- data/spec/models/page_localize.rb +0 -9
- data/spec/models/page_slug_localized.rb +0 -9
- data/spec/models/page_slug_localized_custom.rb +0 -10
- data/spec/models/page_slug_localized_history.rb +0 -9
- data/spec/models/partner.rb +0 -7
- data/spec/models/person.rb +0 -12
- data/spec/models/relationship.rb +0 -8
- data/spec/models/string_id.rb +0 -9
- data/spec/models/subject.rb +0 -7
- data/spec/models/without_slug.rb +0 -5
- data/spec/mongoid/criteria_spec.rb +0 -207
- data/spec/mongoid/index_builder_spec.rb +0 -105
- data/spec/mongoid/slug_spec.rb +0 -1175
- data/spec/shared/indexes.rb +0 -41
- data/spec/spec_helper.rb +0 -61
- data/spec/tasks/mongoid_slug_rake_spec.rb +0 -73
data/spec/shared/indexes.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
shared_context 'with an index' do |key|
|
2
|
-
if Mongoid::Compatibility::Version.mongoid3?
|
3
|
-
let(:index) { subject.index_options[key] }
|
4
|
-
let(:index_keys) { key }
|
5
|
-
let(:index_options) { index }
|
6
|
-
else
|
7
|
-
let(:index) { subject.index_specifications.detect { |spec| spec.key == key } }
|
8
|
-
let(:index_keys) { index.key }
|
9
|
-
let(:index_options) { index.options }
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
shared_examples 'has an index' do |key, options|
|
14
|
-
include_context 'with an index', key
|
15
|
-
|
16
|
-
it "has a #{[key, options].compact.join(', ')} index" do
|
17
|
-
expect(index).not_to be_nil
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'has the correct order of keys' do
|
21
|
-
expect(index_keys.keys).to eq key.keys
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'has the correct order of key values' do
|
25
|
-
expect(index_keys.values).to eq key.values
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'matches option values' do
|
29
|
-
options.each_pair do |name, value|
|
30
|
-
expect(index_options[name]).to eq(value)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
shared_examples 'does not have an index' do |key|
|
36
|
-
include_context 'with an index', key
|
37
|
-
|
38
|
-
it "does not have the #{key} index" do
|
39
|
-
expect(index).to be nil
|
40
|
-
end
|
41
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'bundler/setup'
|
2
|
-
|
3
|
-
require 'rspec'
|
4
|
-
require 'uuid'
|
5
|
-
require 'awesome_print'
|
6
|
-
require 'active_support'
|
7
|
-
require 'active_support/deprecation'
|
8
|
-
require 'mongoid'
|
9
|
-
require 'rspec/its'
|
10
|
-
require 'mongoid/compatibility'
|
11
|
-
|
12
|
-
require File.expand_path '../lib/mongoid/slug', __dir__
|
13
|
-
|
14
|
-
module Mongoid
|
15
|
-
module Slug
|
16
|
-
module UuidIdStrategy
|
17
|
-
def self.call(id)
|
18
|
-
id =~ /\A([0-9a-fA-F]){8}-(([0-9a-fA-F]){4}-){3}([0-9a-fA-F]){12}\z/
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def database_id
|
25
|
-
ENV['CI'] ? "mongoid_slug_#{Process.pid}" : 'mongoid_slug_test'
|
26
|
-
end
|
27
|
-
|
28
|
-
Mongoid.configure do |config|
|
29
|
-
config.connect_to database_id
|
30
|
-
end
|
31
|
-
|
32
|
-
%w[models shared].each do |dir|
|
33
|
-
Dir["./spec/#{dir}/*.rb"].each { |f| require f }
|
34
|
-
end
|
35
|
-
|
36
|
-
I18n.available_locales = %i[en nl]
|
37
|
-
|
38
|
-
RSpec.configure do |c|
|
39
|
-
c.raise_errors_for_deprecations!
|
40
|
-
|
41
|
-
c.before :all do
|
42
|
-
Mongoid.logger.level = Logger::INFO
|
43
|
-
Mongo::Logger.logger.level = Logger::INFO if Mongoid::Compatibility::Version.mongoid5_or_newer?
|
44
|
-
end
|
45
|
-
|
46
|
-
c.before(:each) do
|
47
|
-
Author.create_indexes
|
48
|
-
Book.create_indexes
|
49
|
-
AuthorPolymorphic.create_indexes
|
50
|
-
BookPolymorphic.create_indexes
|
51
|
-
Mongoid::IdentityMap.clear if defined?(Mongoid::IdentityMap)
|
52
|
-
end
|
53
|
-
|
54
|
-
c.after(:each) do
|
55
|
-
if Mongoid::Compatibility::Version.mongoid3? || Mongoid::Compatibility::Version.mongoid4?
|
56
|
-
Mongoid.default_session.drop
|
57
|
-
else
|
58
|
-
Mongoid::Clients.default.database.drop
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
describe 'mongoid_slug:set' do
|
5
|
-
before :all do
|
6
|
-
load File.expand_path('../../lib/tasks/mongoid_slug.rake', __dir__)
|
7
|
-
Rake::Task.define_task(:environment)
|
8
|
-
end
|
9
|
-
|
10
|
-
context 'when models parameter is passed' do
|
11
|
-
before :all do
|
12
|
-
UninitalizedSlugFirst = Class.new do
|
13
|
-
include Mongoid::Document
|
14
|
-
field :name, type: String
|
15
|
-
store_in collection: 'uninitalized_slug_first'
|
16
|
-
end
|
17
|
-
UninitalizedSlugSecond = Class.new do
|
18
|
-
include Mongoid::Document
|
19
|
-
field :name, type: String
|
20
|
-
store_in collection: 'uninitalized_slug_second'
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'goes though all documents of passed models and sets slug if not already set' do
|
25
|
-
uninitalized_slug1 = UninitalizedSlugFirst.create(name: 'uninitalized-slug1')
|
26
|
-
uninitalized_slug2 = UninitalizedSlugSecond.create(name: 'uninitalized-slug2')
|
27
|
-
|
28
|
-
UninitalizedSlugFirst.class_eval do
|
29
|
-
include Mongoid::Slug
|
30
|
-
slug :name
|
31
|
-
end
|
32
|
-
UninitalizedSlugSecond.class_eval do
|
33
|
-
include Mongoid::Slug
|
34
|
-
slug :name
|
35
|
-
end
|
36
|
-
|
37
|
-
expect(uninitalized_slug1.slugs).to be_nil
|
38
|
-
expect(uninitalized_slug2.slugs).to be_nil
|
39
|
-
|
40
|
-
Rake::Task['mongoid_slug:set'].reenable
|
41
|
-
Rake::Task['mongoid_slug:set'].invoke('UninitalizedSlugFirst')
|
42
|
-
|
43
|
-
expect(uninitalized_slug1.reload.slugs).to eq(['uninitalized-slug1'])
|
44
|
-
expect(uninitalized_slug2.reload.slugs).to be nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'when models parameter is not passed' do
|
49
|
-
before :all do
|
50
|
-
UninitalizedSlugThird = Class.new do
|
51
|
-
include Mongoid::Document
|
52
|
-
field :name, type: String
|
53
|
-
store_in collection: 'uninitalized_slug_third'
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'goes though all documents and sets slug if not already set' do
|
58
|
-
uninitalized_slug3 = UninitalizedSlugThird.create(name: 'uninitalized-slug3')
|
59
|
-
|
60
|
-
UninitalizedSlugThird.class_eval do
|
61
|
-
include Mongoid::Slug
|
62
|
-
slug :name
|
63
|
-
end
|
64
|
-
|
65
|
-
expect(uninitalized_slug3.slugs).to be_nil
|
66
|
-
|
67
|
-
Rake::Task['mongoid_slug:set'].reenable
|
68
|
-
Rake::Task['mongoid_slug:set'].invoke
|
69
|
-
|
70
|
-
expect(uninitalized_slug3.reload.slugs).to eq(['uninitalized-slug3'])
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|