slugtastic 1.2.0 → 1.2.1
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 +7 -0
- data/CHANGELOG.md +4 -0
- data/lib/slugtastic/model_additions.rb +2 -1
- data/lib/slugtastic/version.rb +1 -1
- data/spec/slugtastic/model_additions_spec.rb +26 -11
- metadata +13 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 704240d3d16bf9fe3471f748b594694e451ad2fd
|
4
|
+
data.tar.gz: 158d286f398fcfa33234fc99356b8e4728816a0c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 93063ba1a143540d6ce7db8552c4e29031475dd0be8bac1833dcf3a0644a30404e9f27f16969d35a561806d1edb86e7bd7f6ea5abd1c14513c40d2c01b10a660
|
7
|
+
data.tar.gz: cfaf954291e13b2d8e9cc9a0cc080711189cc8dcaa23aa4f8a77ff7a3b1c54b5893ca365818427073bc3aad8163bf98c77991010530ff7780da108a3cfef5892
|
data/CHANGELOG.md
CHANGED
@@ -9,7 +9,8 @@ module Slugtastic
|
|
9
9
|
# class Article < ActiveRecord::Base
|
10
10
|
# has_slug :slug, :from => :title
|
11
11
|
# end
|
12
|
-
def has_slug name, options = {
|
12
|
+
def has_slug name, options = {}
|
13
|
+
options.reverse_merge!({ :from => :title })
|
13
14
|
before_validation do |record|
|
14
15
|
send("#{name}=", Slugtastic.generate_slug(send(options[:from]), options[:delimiter])) if send(name).nil? or send(name).blank?
|
15
16
|
end
|
data/lib/slugtastic/version.rb
CHANGED
@@ -1,30 +1,45 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
class
|
4
|
+
class BaseModel < SuperModel::Base
|
5
5
|
include ActiveModel::Validations::Callbacks
|
6
6
|
extend Slugtastic::ModelAdditions
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
end
|
8
|
+
|
9
|
+
class Model < BaseModel
|
10
|
+
attr_accessor :slug, :name
|
11
|
+
has_slug :slug, from: :name
|
12
|
+
end
|
13
|
+
|
14
|
+
class ModelDefault < BaseModel
|
15
|
+
attr_accessor :slug, :title
|
16
|
+
has_slug :slug
|
17
|
+
end
|
18
|
+
|
19
|
+
class ModelDelimiter < BaseModel
|
20
|
+
attr_accessor :slug, :title
|
21
|
+
has_slug :slug, delimiter: "_"
|
10
22
|
end
|
11
23
|
|
12
24
|
describe Slugtastic::ModelAdditions do
|
13
|
-
it "generates a slug from the
|
14
|
-
Model.create!(:
|
25
|
+
it "generates a slug from the name" do
|
26
|
+
Model.create!(:name => "A Simple Name").slug.should eq "a-simple-name"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "defaults to generating the slug from title" do
|
30
|
+
ModelDefault.create!(:title => "A Simple Title").slug.should eq "a-simple-title"
|
15
31
|
end
|
16
32
|
|
17
33
|
it "generates a slug from the title with delimiter substitutions" do
|
18
|
-
|
34
|
+
ModelDelimiter.create!(:title => "A Simple Title").slug.should eq "a_simple_title"
|
19
35
|
end
|
20
36
|
|
21
37
|
it "doesn't regenerate the slug if it already exists" do
|
22
|
-
model = Model.create!(:
|
23
|
-
model.slug.should eq "a-simple-
|
38
|
+
model = Model.create!(:name => "A Simple Name")
|
39
|
+
model.slug.should eq "a-simple-name"
|
24
40
|
|
25
41
|
model.title = "A new title"
|
26
42
|
model.save
|
27
|
-
model.slug.should eq "a-simple-
|
28
|
-
model.slug_2.should eq "a_simple_title"
|
43
|
+
model.slug.should eq "a-simple-name"
|
29
44
|
end
|
30
45
|
end
|
metadata
CHANGED
@@ -1,62 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slugtastic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dan Barber
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: supermodel
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
description: A simple slug string generator for ActiveRecord. Will populate a slug
|
@@ -86,27 +79,26 @@ files:
|
|
86
79
|
- spec/spec_helper.rb
|
87
80
|
homepage: ''
|
88
81
|
licenses: []
|
82
|
+
metadata: {}
|
89
83
|
post_install_message:
|
90
84
|
rdoc_options: []
|
91
85
|
require_paths:
|
92
86
|
- lib
|
93
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
88
|
requirements:
|
96
|
-
- -
|
89
|
+
- - '>='
|
97
90
|
- !ruby/object:Gem::Version
|
98
91
|
version: '0'
|
99
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
93
|
requirements:
|
102
|
-
- -
|
94
|
+
- - '>='
|
103
95
|
- !ruby/object:Gem::Version
|
104
96
|
version: '0'
|
105
97
|
requirements: []
|
106
98
|
rubyforge_project:
|
107
|
-
rubygems_version:
|
99
|
+
rubygems_version: 2.0.0
|
108
100
|
signing_key:
|
109
|
-
specification_version:
|
101
|
+
specification_version: 4
|
110
102
|
summary: A simple slug string generator for ActiveRecord.
|
111
103
|
test_files:
|
112
104
|
- spec/slugtastic/model_additions_spec.rb
|