slugtastic 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,7 @@
1
+ ## v1.2.0
2
+
3
+ * Added ability to substitute hyphen delimiter.
4
+
1
5
  ## v1.1.0
2
6
 
3
7
  * Slugs are now generated with `parameterize`.
@@ -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 = { :from => :title }
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
@@ -1,3 +1,3 @@
1
1
  module Slugtastic
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -1,30 +1,45 @@
1
1
  # encoding: utf-8
2
2
  require 'spec_helper'
3
3
 
4
- class Model < SuperModel::Base
4
+ class BaseModel < SuperModel::Base
5
5
  include ActiveModel::Validations::Callbacks
6
6
  extend Slugtastic::ModelAdditions
7
- attr_accessor :slug, :slug_2, :title
8
- has_slug :slug, from: :title
9
- has_slug :slug_2, from: :title, delimiter: "_"
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 title" do
14
- Model.create!(:title => "A Simple Title").slug.should eq "a-simple-title"
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
- Model.create!(:title => "A Simple Title").slug_2.should eq "a_simple_title"
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!(:title => "A Simple Title")
23
- model.slug.should eq "a-simple-title"
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-title"
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.0
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-02-12 00:00:00.000000000 Z
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: 1.8.23
99
+ rubygems_version: 2.0.0
108
100
  signing_key:
109
- specification_version: 3
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