From e5ca126c8a5448b461e363559d271011ac39832d Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Tue, 12 Feb 2013 17:36:34 +0000 Subject: [PATCH] Add model additions for slug delimiter substitution. --- lib/slugtastic/model_additions.rb | 2 +- lib/slugtastic/version.rb | 2 +- spec/slugtastic/model_additions_spec.rb | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/slugtastic/model_additions.rb b/lib/slugtastic/model_additions.rb index e64193c..788cd95 100644 --- a/lib/slugtastic/model_additions.rb +++ b/lib/slugtastic/model_additions.rb @@ -11,7 +11,7 @@ module Slugtastic # end def has_slug name, options = { :from => :title } before_validation do |record| - send("#{name}=", Slugtastic.generate_slug(send(options[:from]))) if send(name).nil? or send(name).blank? + send("#{name}=", Slugtastic.generate_slug(send(options[:from]), options[:delimiter])) if send(name).nil? or send(name).blank? end end diff --git a/lib/slugtastic/version.rb b/lib/slugtastic/version.rb index c8bb2db..d829a51 100644 --- a/lib/slugtastic/version.rb +++ b/lib/slugtastic/version.rb @@ -1,3 +1,3 @@ module Slugtastic - VERSION = "1.2.0-alpha" + VERSION = "1.2.0.alpha" end diff --git a/spec/slugtastic/model_additions_spec.rb b/spec/slugtastic/model_additions_spec.rb index b6e15b7..88c6e28 100644 --- a/spec/slugtastic/model_additions_spec.rb +++ b/spec/slugtastic/model_additions_spec.rb @@ -4,8 +4,9 @@ require 'spec_helper' class Model < SuperModel::Base include ActiveModel::Validations::Callbacks extend Slugtastic::ModelAdditions - attr_accessor :slug, :title + attr_accessor :slug, :slug_2, :title has_slug :slug, from: :title + has_slug :slug_2, from: :title, delimiter: "_" end describe Slugtastic::ModelAdditions do @@ -13,6 +14,10 @@ describe Slugtastic::ModelAdditions do Model.create!(:title => "A Simple Title").slug.should eq "a-simple-title" end + it "generates a slug from the title with delimiter substitutions" do + Model.create!(:title => "A Simple Title").slug_2.should eq "a_simple_title" + end + it "doesn't regenerate the slug if it already exists" do model = Model.create!(:title => "A Simple Title") model.slug.should eq "a-simple-title" @@ -20,5 +25,6 @@ describe Slugtastic::ModelAdditions do model.title = "A new title" model.save model.slug.should eq "a-simple-title" + model.slug_2.should eq "a_simple_title" end end