sluggable_finder 2.3.1 → 2.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -2
- data/Gemfile +4 -0
- data/Gemfile.lock +33 -0
- data/README.markdown +7 -6
- data/Rakefile +7 -34
- data/lib/sluggable_finder/version.rb +3 -0
- data/lib/sluggable_finder.rb +2 -2
- data/sluggable_finder.gemspec +19 -56
- data/spec/sluggable_finder_spec.rb +7 -6
- data/spec/spec_helper.rb +9 -1
- data/tasks/db.rake +3 -4
- metadata +87 -25
- data/VERSION.yml +0 -5
data/.gitignore
CHANGED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
sluggable_finder (2.3.2)
|
5
|
+
activerecord (<= 2.8.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activerecord (2.3.11)
|
11
|
+
activesupport (= 2.3.11)
|
12
|
+
activesupport (2.3.11)
|
13
|
+
diff-lcs (1.1.2)
|
14
|
+
rake (0.8.7)
|
15
|
+
rspec (2.6.0)
|
16
|
+
rspec-core (~> 2.6.0)
|
17
|
+
rspec-expectations (~> 2.6.0)
|
18
|
+
rspec-mocks (~> 2.6.0)
|
19
|
+
rspec-core (2.6.0)
|
20
|
+
rspec-expectations (2.6.0)
|
21
|
+
diff-lcs (~> 1.1.2)
|
22
|
+
rspec-mocks (2.6.0)
|
23
|
+
sqlite3 (1.3.3)
|
24
|
+
|
25
|
+
PLATFORMS
|
26
|
+
ruby
|
27
|
+
|
28
|
+
DEPENDENCIES
|
29
|
+
bundler (>= 1.0.0)
|
30
|
+
rake
|
31
|
+
rspec
|
32
|
+
sluggable_finder!
|
33
|
+
sqlite3
|
data/README.markdown
CHANGED
@@ -20,14 +20,15 @@ The plugin modifies to_param so it's transparent to link_to and url_for view hel
|
|
20
20
|
|
21
21
|
Slugs are created when a model is created. Subsequent changes to the source field will not modify the slug unless you specifically change the value of the slug field. This is because permalinks should never change.
|
22
22
|
|
23
|
-
Complete specs. To test, make sure you create an empty SQLite database
|
23
|
+
Complete specs. To test, make sure you create an empty SQLite database.
|
24
24
|
|
25
|
-
|
25
|
+
Run the following to load the test schema:
|
26
26
|
|
27
|
-
rake db:create
|
27
|
+
rake db:create
|
28
28
|
|
29
|
-
|
30
|
-
|
29
|
+
Now you can run the tests
|
30
|
+
|
31
|
+
rake spec
|
31
32
|
|
32
33
|
## SYNOPSIS:
|
33
34
|
|
@@ -69,7 +70,7 @@ If you're using Integer-like strings in your slug column, you can ignore integer
|
|
69
70
|
sluggable_finder :title, :allow_integer_ids => false
|
70
71
|
end
|
71
72
|
|
72
|
-
|
73
|
+
<h3 id="sti">Single Table Inheritance (STI)</h3>
|
73
74
|
|
74
75
|
Slug uniqueness will be checked accross all classes in STI models. If you want to scope by sub-class, use :ignore_sti
|
75
76
|
|
data/Rakefile
CHANGED
@@ -1,35 +1,9 @@
|
|
1
1
|
require 'rake'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
s.summary = %Q{Easy friendly URLs for your ActiveRecord models}
|
8
|
-
s.email = "ismaelct@gmail.com"
|
9
|
-
s.homepage = "http://github.com/ismasan/sluggable-finder"
|
10
|
-
s.description = %(This plugin allows models to generate a unique "slug" (url-enabled name) from any regular attribute. Add friendly URLs to your models with one line.)
|
11
|
-
s.authors = ["Ismael Celis"]
|
12
|
-
s.add_dependency 'activerecord', ">= 2.2.2"
|
13
|
-
end
|
14
|
-
rescue LoadError
|
15
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
16
|
-
end
|
17
|
-
|
18
|
-
require 'rake/rdoctask'
|
19
|
-
Rake::RDocTask.new do |rdoc|
|
20
|
-
rdoc.rdoc_dir = 'rdoc'
|
21
|
-
rdoc.title = 'sluggable_finder'
|
22
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
23
|
-
rdoc.rdoc_files.include('README*')
|
24
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
25
|
-
end
|
26
|
-
|
27
|
-
require 'rake/testtask'
|
28
|
-
Rake::TestTask.new(:test) do |t|
|
29
|
-
t.libs << 'lib' << 'test'
|
30
|
-
t.pattern = 'test/**/*_test.rb'
|
31
|
-
t.verbose = false
|
32
|
-
end
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
Bundler.setup
|
6
|
+
Bundler::GemHelper.install_tasks
|
33
7
|
|
34
8
|
begin
|
35
9
|
require 'rcov/rcovtask'
|
@@ -42,10 +16,9 @@ rescue LoadError
|
|
42
16
|
puts "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
43
17
|
end
|
44
18
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
t.spec_opts = %w{-f s -c -L mtime}
|
19
|
+
desc 'Run specs'
|
20
|
+
task :spec do
|
21
|
+
system "rspec spec/sluggable_finder_spec.rb"
|
49
22
|
end
|
50
23
|
|
51
24
|
load File.join(File.dirname(__FILE__), 'tasks', 'db.rake')
|
data/lib/sluggable_finder.rb
CHANGED
@@ -19,12 +19,12 @@ module SluggableFinder
|
|
19
19
|
ActiveRecord::Base.extend SluggableFinder::Orm::ClassMethods
|
20
20
|
# support for associations
|
21
21
|
a = ActiveRecord::Associations
|
22
|
-
|
22
|
+
Array(ActiveRecord::Associations::AssociationCollection.tap { |classes|
|
23
23
|
# detect http://dev.rubyonrails.org/changeset/9230
|
24
24
|
unless a::HasManyThroughAssociation.superclass == a::HasManyAssociation
|
25
25
|
classes << a::HasManyThroughAssociation
|
26
26
|
end
|
27
|
-
}.each do |klass|
|
27
|
+
}).each do |klass|
|
28
28
|
klass.send :include, SluggableFinder::Finder
|
29
29
|
klass.send :include, SluggableFinder::AssociationProxyFinder
|
30
30
|
klass.alias_method_chain :find, :slug
|
data/sluggable_finder.gemspec
CHANGED
@@ -1,64 +1,27 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path("../lib/sluggable_finder/version", __FILE__)
|
5
3
|
|
6
4
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.description
|
14
|
-
s.email = %q{ismaelct@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.markdown"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
".gitignore",
|
20
|
-
"History.txt",
|
21
|
-
"Manifest.txt",
|
22
|
-
"PostInstall.txt",
|
23
|
-
"README.markdown",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION.yml",
|
26
|
-
"lib/sluggable_finder.rb",
|
27
|
-
"lib/sluggable_finder/finder.rb",
|
28
|
-
"lib/sluggable_finder/orm.rb",
|
29
|
-
"script/console",
|
30
|
-
"script/destroy",
|
31
|
-
"script/generate",
|
32
|
-
"sluggable_finder.gemspec",
|
33
|
-
"spec/db/.gitignore",
|
34
|
-
"spec/log/.gitignore",
|
35
|
-
"spec/sluggable_finder_spec.rb",
|
36
|
-
"spec/spec.opts",
|
37
|
-
"spec/spec_helper.rb",
|
38
|
-
"tasks/db.rake",
|
39
|
-
"tasks/rspec.rake"
|
40
|
-
]
|
41
|
-
s.homepage = %q{http://github.com/ismasan/sluggable-finder}
|
42
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
43
|
-
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version = %q{1.3.7}
|
5
|
+
s.name = "sluggable_finder"
|
6
|
+
s.version = SluggableFinder::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ['Ismael Celis']
|
9
|
+
s.email = ['ismaelct@gmail.com']
|
10
|
+
s.homepage = "https://github.com/ismasan/sluggable-finder"
|
11
|
+
s.description = %q{This plugin allows models to generate a unique "slug" (url-enabled name) from any regular attribute. Add friendly URLs to your models with one line.}
|
45
12
|
s.summary = %q{Easy friendly URLs for your ActiveRecord models}
|
46
|
-
s.test_files = [
|
47
|
-
"spec/sluggable_finder_spec.rb",
|
48
|
-
"spec/spec_helper.rb"
|
49
|
-
]
|
50
13
|
|
51
|
-
|
52
|
-
|
53
|
-
|
14
|
+
s.required_rubygems_version = ">= 1.3.6"
|
15
|
+
s.rubyforge_project = "sluggable_finder"
|
16
|
+
|
17
|
+
s.add_development_dependency "bundler", ">= 1.0.0"
|
18
|
+
s.add_development_dependency "rspec"
|
19
|
+
s.add_development_dependency 'rake'
|
20
|
+
s.add_development_dependency 'sqlite3'
|
21
|
+
s.add_dependency 'activerecord', "<= 2.8.0"
|
54
22
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
s.add_dependency(%q<activerecord>, [">= 2.2.2"])
|
59
|
-
end
|
60
|
-
else
|
61
|
-
s.add_dependency(%q<activerecord>, [">= 2.2.2"])
|
62
|
-
end
|
23
|
+
s.files = `git ls-files`.split("\n")
|
24
|
+
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
25
|
+
s.require_path = 'lib'
|
63
26
|
end
|
64
27
|
|
@@ -1,17 +1,18 @@
|
|
1
|
-
|
1
|
+
# encoding: UTF-8
|
2
|
+
$KCODE = "UTF-8"
|
3
|
+
require File.dirname(File.expand_path(__FILE__)) + '/spec_helper'
|
2
4
|
|
3
5
|
ActiveRecord::Base.establish_connection(
|
4
|
-
|
5
|
-
|
6
|
-
:adapter => 'mysql',
|
6
|
+
:adapter =>'sqlite3',
|
7
|
+
:database => File.join(File.dirname(__FILE__),'db','test.db'),
|
7
8
|
:host => 'localhost',
|
8
|
-
:database => 'sluggable_finder_test',
|
9
|
+
:database => 'spec/db/sluggable_finder_test',
|
9
10
|
:user => 'root',
|
10
11
|
:password => ''
|
11
12
|
)
|
12
13
|
|
13
14
|
LOGGER = Logger.new(STDOUT)
|
14
|
-
ActiveRecord::Base.logger = LOGGER
|
15
|
+
# ActiveRecord::Base.logger = LOGGER
|
15
16
|
|
16
17
|
# A test Model according to test schema in db/test.db
|
17
18
|
#
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
# encoding: UTF-8
|
3
|
+
$KCODE = "UTF-8"
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'bundler'
|
7
|
+
Bundler.setup
|
8
|
+
|
1
9
|
begin
|
2
10
|
require 'spec'
|
3
11
|
rescue LoadError
|
4
12
|
require 'rubygems'
|
5
13
|
gem 'rspec'
|
6
|
-
require '
|
14
|
+
require 'rspec'
|
7
15
|
end
|
8
16
|
|
9
17
|
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
data/tasks/db.rake
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
db = {
|
3
|
-
|
4
|
-
|
5
|
-
:adapter => 'mysql',
|
3
|
+
:adapter=>'sqlite3',
|
4
|
+
:dbfile=> File.join(File.dirname(__FILE__),'..','spec','db','test.db'),
|
6
5
|
:host => 'localhost',
|
7
|
-
:database => 'sluggable_finder_test',
|
6
|
+
:database => 'spec/db/sluggable_finder_test',
|
8
7
|
:user => 'root',
|
9
8
|
:password => ''
|
10
9
|
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sluggable_finder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 2.3.
|
9
|
+
- 2
|
10
|
+
version: 2.3.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ismael Celis
|
@@ -15,44 +15,105 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-31 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
type: :development
|
23
|
+
name: bundler
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 23
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 0
|
34
|
+
- 0
|
35
|
+
version: 1.0.0
|
36
|
+
requirement: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
type: :development
|
39
|
+
name: rspec
|
23
40
|
prerelease: false
|
24
|
-
|
41
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
25
42
|
none: false
|
26
43
|
requirements:
|
27
44
|
- - ">="
|
28
45
|
- !ruby/object:Gem::Version
|
29
46
|
hash: 3
|
30
47
|
segments:
|
31
|
-
-
|
32
|
-
|
33
|
-
|
34
|
-
|
48
|
+
- 0
|
49
|
+
version: "0"
|
50
|
+
requirement: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
type: :development
|
53
|
+
name: rake
|
54
|
+
prerelease: false
|
55
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
version: "0"
|
64
|
+
requirement: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
type: :development
|
67
|
+
name: sqlite3
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 3
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
version: "0"
|
78
|
+
requirement: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
35
80
|
type: :runtime
|
36
|
-
|
81
|
+
name: activerecord
|
82
|
+
prerelease: false
|
83
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - <=
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 47
|
89
|
+
segments:
|
90
|
+
- 2
|
91
|
+
- 8
|
92
|
+
- 0
|
93
|
+
version: 2.8.0
|
94
|
+
requirement: *id005
|
37
95
|
description: This plugin allows models to generate a unique "slug" (url-enabled name) from any regular attribute. Add friendly URLs to your models with one line.
|
38
|
-
email:
|
96
|
+
email:
|
97
|
+
- ismaelct@gmail.com
|
39
98
|
executables: []
|
40
99
|
|
41
100
|
extensions: []
|
42
101
|
|
43
|
-
extra_rdoc_files:
|
44
|
-
|
102
|
+
extra_rdoc_files: []
|
103
|
+
|
45
104
|
files:
|
46
105
|
- .gitignore
|
106
|
+
- Gemfile
|
107
|
+
- Gemfile.lock
|
47
108
|
- History.txt
|
48
109
|
- Manifest.txt
|
49
110
|
- PostInstall.txt
|
50
111
|
- README.markdown
|
51
112
|
- Rakefile
|
52
|
-
- VERSION.yml
|
53
113
|
- lib/sluggable_finder.rb
|
54
114
|
- lib/sluggable_finder/finder.rb
|
55
115
|
- lib/sluggable_finder/orm.rb
|
116
|
+
- lib/sluggable_finder/version.rb
|
56
117
|
- script/console
|
57
118
|
- script/destroy
|
58
119
|
- script/generate
|
@@ -65,12 +126,12 @@ files:
|
|
65
126
|
- tasks/db.rake
|
66
127
|
- tasks/rspec.rake
|
67
128
|
has_rdoc: true
|
68
|
-
homepage:
|
129
|
+
homepage: https://github.com/ismasan/sluggable-finder
|
69
130
|
licenses: []
|
70
131
|
|
71
132
|
post_install_message:
|
72
|
-
rdoc_options:
|
73
|
-
|
133
|
+
rdoc_options: []
|
134
|
+
|
74
135
|
require_paths:
|
75
136
|
- lib
|
76
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -87,17 +148,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
148
|
requirements:
|
88
149
|
- - ">="
|
89
150
|
- !ruby/object:Gem::Version
|
90
|
-
hash:
|
151
|
+
hash: 23
|
91
152
|
segments:
|
92
|
-
-
|
93
|
-
|
153
|
+
- 1
|
154
|
+
- 3
|
155
|
+
- 6
|
156
|
+
version: 1.3.6
|
94
157
|
requirements: []
|
95
158
|
|
96
|
-
rubyforge_project:
|
159
|
+
rubyforge_project: sluggable_finder
|
97
160
|
rubygems_version: 1.3.7
|
98
161
|
signing_key:
|
99
162
|
specification_version: 3
|
100
163
|
summary: Easy friendly URLs for your ActiveRecord models
|
101
|
-
test_files:
|
102
|
-
|
103
|
-
- spec/spec_helper.rb
|
164
|
+
test_files: []
|
165
|
+
|