pseudocephalopod 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -121
- data/Rakefile +5 -97
- data/lib/pseudocephalopod.rb +3 -78
- metadata +13 -101
- data/Gemfile +0 -20
- data/Gemfile.lock +0 -82
- data/lib/generators/pseudocephalopod/slug_migration/slug_migration_generator.rb +0 -24
- data/lib/generators/pseudocephalopod/slug_migration/templates/migration.erb +0 -12
- data/lib/generators/pseudocephalopod/slugs/slugs_generator.rb +0 -24
- data/lib/generators/pseudocephalopod/slugs/templates/migration.erb +0 -20
- data/lib/pseudocephalopod/active_record_methods.rb +0 -112
- data/lib/pseudocephalopod/caching.rb +0 -87
- data/lib/pseudocephalopod/finders.rb +0 -19
- data/lib/pseudocephalopod/memory_cache.rb +0 -29
- data/lib/pseudocephalopod/railtie.rb +0 -9
- data/lib/pseudocephalopod/scopes.rb +0 -13
- data/lib/pseudocephalopod/slug.rb +0 -36
- data/lib/pseudocephalopod/slug_history.rb +0 -41
- data/lib/pseudocephalopod/version.rb +0 -8
- data/pseudocephalopod.gemspec +0 -90
- data/test/caching_test.rb +0 -77
- data/test/helper.rb +0 -44
- data/test/is_sluggable_test.rb +0 -155
- data/test/model_definitions.rb +0 -19
- data/test/pseudocephalopod_test.rb +0 -27
- data/test/slug_history_test.rb +0 -86
data/test/model_definitions.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'reversible_data'
|
2
|
-
|
3
|
-
ReversibleData.in_memory!
|
4
|
-
|
5
|
-
# Define models here.
|
6
|
-
|
7
|
-
ReversibleData.add :slugs do |t|
|
8
|
-
t.string :scope
|
9
|
-
t.string :slug
|
10
|
-
t.integer :record_id
|
11
|
-
t.datetime :created_at
|
12
|
-
end
|
13
|
-
|
14
|
-
ReversibleData.add :users do |u|
|
15
|
-
u.string :name
|
16
|
-
u.string :address
|
17
|
-
u.string :cached_slug
|
18
|
-
u.timestamps
|
19
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class PseudocephalopodTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
class SlugScopeTest
|
6
|
-
cattr_accessor :slug_scope_key
|
7
|
-
self.slug_scope_key = "my-test-scope"
|
8
|
-
end
|
9
|
-
|
10
|
-
should 'return the correct counter versions' do
|
11
|
-
assert_equal 'awesome', Pseudocephalopod.with_counter('awesome')
|
12
|
-
assert_equal 'awesome', Pseudocephalopod.with_counter('awesome', 0)
|
13
|
-
assert_equal 'awesome', Pseudocephalopod.with_counter('awesome', -1)
|
14
|
-
assert_equal 'awesome--2', Pseudocephalopod.with_counter('awesome', 2)
|
15
|
-
assert_equal 'awesome--100', Pseudocephalopod.with_counter('awesome', 100)
|
16
|
-
end
|
17
|
-
|
18
|
-
should 'correct allow you to slug scope keys' do
|
19
|
-
assert_equal "my-test-scope", Pseudocephalopod.key_for_scope(SlugScopeTest)
|
20
|
-
assert_equal "my-test-scope", Pseudocephalopod.key_for_scope(SlugScopeTest.new)
|
21
|
-
assert_equal "my-test-scope", Pseudocephalopod.key_for_scope("my-test-scope")
|
22
|
-
assert_equal "", Pseudocephalopod.key_for_scope(nil)
|
23
|
-
assert_equal "1", Pseudocephalopod.key_for_scope(1)
|
24
|
-
assert_equal "awesome", Pseudocephalopod.key_for_scope(:awesome)
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/test/slug_history_test.rb
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class FakedModel
|
4
|
-
attr_reader :id
|
5
|
-
def self.slug_scope_key; "faked_models"; end
|
6
|
-
def initialize(id); @id = id; end
|
7
|
-
end
|
8
|
-
|
9
|
-
class SlugHistoryTest < Test::Unit::TestCase
|
10
|
-
with_tables :slugs, :users do
|
11
|
-
|
12
|
-
context 'for arbitrary models' do
|
13
|
-
|
14
|
-
setup do
|
15
|
-
@record_a = FakedModel.new(12)
|
16
|
-
@record_b = FakedModel.new(4)
|
17
|
-
Pseudocephalopod.record_slug(@record_a, "awesome")
|
18
|
-
Pseudocephalopod.record_slug(@record_b, "awesome-1")
|
19
|
-
Pseudocephalopod.record_slug(@record_a, "ninjas")
|
20
|
-
end
|
21
|
-
|
22
|
-
should 'let you lookup a given record id easily' do
|
23
|
-
assert Pseudocephalopod.last_known_slug_id(FakedModel, "felafel").blank?
|
24
|
-
assert Pseudocephalopod.last_known_slug_id(FakedModel, "ninjas-2").blank?
|
25
|
-
assert_equal 12, Pseudocephalopod.last_known_slug_id(FakedModel, "awesome")
|
26
|
-
assert_equal 4, Pseudocephalopod.last_known_slug_id(FakedModel, "awesome-1")
|
27
|
-
assert_equal 12, Pseudocephalopod.last_known_slug_id(FakedModel, "ninjas")
|
28
|
-
end
|
29
|
-
|
30
|
-
should 'let you return slug history for a given record'
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'on a specific record' do
|
35
|
-
|
36
|
-
should 'by default record slug history' do
|
37
|
-
setup_slugs!
|
38
|
-
user = User.create :name => "Bob"
|
39
|
-
assert_equal [], user.previous_slugs
|
40
|
-
user.update_attributes! :name => "Sal"
|
41
|
-
user.update_attributes! :name => "Red"
|
42
|
-
user.update_attributes! :name => "Jim"
|
43
|
-
assert_same_as_slug user, "red"
|
44
|
-
assert_same_as_slug user, "sal"
|
45
|
-
assert_same_as_slug user, "bob"
|
46
|
-
assert_same_as_slug user, "jim"
|
47
|
-
end
|
48
|
-
|
49
|
-
should 'let you reset history for a slug' do
|
50
|
-
setup_slugs!
|
51
|
-
user = User.create :name => "Bob"
|
52
|
-
user.update_attributes! :name => "Sal"
|
53
|
-
user.update_attributes! :name => "Red"
|
54
|
-
user.update_attributes! :name => "Jim"
|
55
|
-
assert_equal ["red", "sal", "bob"], user.previous_slugs
|
56
|
-
user.remove_slug_history!
|
57
|
-
assert_equal [], user.previous_slugs
|
58
|
-
assert_none_for_slug "red"
|
59
|
-
assert_none_for_slug "sal"
|
60
|
-
assert_none_for_slug "bob"
|
61
|
-
end
|
62
|
-
|
63
|
-
should 'let you disable recording of slug history' do
|
64
|
-
setup_slugs! :history => false
|
65
|
-
user = User.create(:name => "Bob")
|
66
|
-
assert !user.respond_to?(:previous_slugs)
|
67
|
-
user.update_attributes! :name => "Red"
|
68
|
-
assert_same_as_slug user, "red"
|
69
|
-
assert_different_to_slug user, "bob"
|
70
|
-
assert_none_for_slug "bob"
|
71
|
-
end
|
72
|
-
|
73
|
-
should 'remove slug history for a record by default on destroy' do
|
74
|
-
setup_slugs!
|
75
|
-
user = User.create :name => "Bob"
|
76
|
-
user.update_attributes! :name => "Sal"
|
77
|
-
user.update_attributes! :name => "Red"
|
78
|
-
user.update_attributes! :name => "Jim"
|
79
|
-
assert_equal ["red", "sal", "bob"], user.previous_slugs
|
80
|
-
user.destroy
|
81
|
-
assert_equal [], user.previous_slugs
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|