slugtastic 0.1.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.
Files changed (6) hide show
  1. data/Manifest +5 -0
  2. data/README.md +22 -0
  3. data/Rakefile +14 -0
  4. data/lib/slugtastic.rb +23 -0
  5. data/slugtastic.gemspec +29 -0
  6. metadata +59 -0
data/Manifest ADDED
@@ -0,0 +1,5 @@
1
+ Manifest
2
+ README.md
3
+ Rakefile
4
+ lib/slugtastic.rb
5
+ slugtastic.gemspec
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ Slugtastic
2
+ ==========
3
+
4
+ Simple gem for autogenerating permalink style slugs for your ActiveRecord models.
5
+
6
+ ## Install
7
+
8
+ Add this to your Gemfile:
9
+
10
+ gem "slugtastic"
11
+
12
+ And run `bundle install`
13
+
14
+ ## Usage
15
+
16
+ Usage is very simple. Just add the following to your model:
17
+
18
+ has_slug :slug, :from => :title
19
+
20
+ This will generate a slug string from the title atrribute and store it in the slug attribute unless the slug already contains a string. The slug is generated pre-validation so you can still use `validates_presence_of :slug`.
21
+
22
+ There are no extra options at present.
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('slugtastic', '0.1.1') do |p|
6
+ p.description = "A simple slug string generator for ActiveRecord. Will populate a slug attribute from another attribute."
7
+ p.url = "http://github.com/danbee/slugtastic"
8
+ p.author = "Dan Barber"
9
+ p.email = "danbee@gmail.com"
10
+ p.ignore_pattern = ["tmp/*", "script/*"]
11
+ p.development_dependencies = []
12
+ end
13
+
14
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
data/lib/slugtastic.rb ADDED
@@ -0,0 +1,23 @@
1
+ module Slugtastic
2
+ def self.included(base)
3
+ base.extend ClassMethods
4
+ end
5
+
6
+ def generate_slug(string)
7
+ string.downcase.gsub(/ /, '_').gsub(/[^a-z0-9\-_]/, '')
8
+ end
9
+
10
+ module ClassMethods
11
+
12
+ def has_slug(name, options = { :from => :title })
13
+ before_validation do |record|
14
+ self[name] = generate_slug(self[options[:from]]) if self[name].nil? or self[name].empty?
15
+ end
16
+ end
17
+
18
+ end
19
+ end
20
+
21
+ class ActiveRecord::Base
22
+ include Slugtastic
23
+ end
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{slugtastic}
5
+ s.version = "0.1.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = [%q{Dan Barber}]
9
+ s.date = %q{2011-10-04}
10
+ s.description = %q{A simple slug string generator for ActiveRecord. Will populate a slug attribute from another attribute.}
11
+ s.email = %q{danbee@gmail.com}
12
+ s.extra_rdoc_files = [%q{README.md}, %q{lib/slugtastic.rb}]
13
+ s.files = [%q{README.md}, %q{Rakefile}, %q{lib/slugtastic.rb}, %q{Manifest}, %q{slugtastic.gemspec}]
14
+ s.homepage = %q{http://github.com/danbee/slugtastic}
15
+ s.rdoc_options = [%q{--line-numbers}, %q{--inline-source}, %q{--title}, %q{Slugtastic}, %q{--main}, %q{README.md}]
16
+ s.require_paths = [%q{lib}]
17
+ s.rubyforge_project = %q{slugtastic}
18
+ s.rubygems_version = %q{1.8.6}
19
+ s.summary = %q{A simple slug string generator for ActiveRecord. Will populate a slug attribute from another attribute.}
20
+
21
+ if s.respond_to? :specification_version then
22
+ s.specification_version = 3
23
+
24
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
+ else
26
+ end
27
+ else
28
+ end
29
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: slugtastic
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dan Barber
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-04 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: A simple slug string generator for ActiveRecord. Will populate a slug
15
+ attribute from another attribute.
16
+ email: danbee@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files:
20
+ - README.md
21
+ - lib/slugtastic.rb
22
+ files:
23
+ - README.md
24
+ - Rakefile
25
+ - lib/slugtastic.rb
26
+ - Manifest
27
+ - slugtastic.gemspec
28
+ homepage: http://github.com/danbee/slugtastic
29
+ licenses: []
30
+ post_install_message:
31
+ rdoc_options:
32
+ - --line-numbers
33
+ - --inline-source
34
+ - --title
35
+ - Slugtastic
36
+ - --main
37
+ - README.md
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '1.2'
52
+ requirements: []
53
+ rubyforge_project: slugtastic
54
+ rubygems_version: 1.8.6
55
+ signing_key:
56
+ specification_version: 3
57
+ summary: A simple slug string generator for ActiveRecord. Will populate a slug attribute
58
+ from another attribute.
59
+ test_files: []