sexy_to_param 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.3
data/lib/sexy_to_param.rb CHANGED
@@ -7,8 +7,12 @@ module SexyToParam
7
7
  def sexy_to_param(column = :slug)
8
8
  define_method(:to_param) {
9
9
  if id
10
- param_string = SexyToParam.escape(send(column))
11
- "#{id}-#{param_string}"
10
+ slug = send(column)
11
+ if slug.present?
12
+ "%s-%s" % [id ,SexyToParam.escape(slug)]
13
+ else
14
+ id.to_s
15
+ end
12
16
  end
13
17
  }
14
18
  end
@@ -0,0 +1,66 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{sexy_to_param}
8
+ s.version = "0.0.3"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = [%q{holysugar}]
12
+ s.date = %q{2011-10-12}
13
+ s.description = %q{methods when using to_param}
14
+ s.email = %q{holysugar@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.markdown"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.markdown",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "lib/sexy_to_param.rb",
29
+ "sexy_to_param.gemspec",
30
+ "spec/sexy_to_param_spec.rb",
31
+ "spec/spec_helper.rb"
32
+ ]
33
+ s.homepage = %q{http://github.com/holysugar/sexy_to_param}
34
+ s.licenses = [%q{MIT}]
35
+ s.require_paths = [%q{lib}]
36
+ s.rubygems_version = %q{1.8.6}
37
+ s.summary = %q{methods when using to_param}
38
+
39
+ if s.respond_to? :specification_version then
40
+ s.specification_version = 3
41
+
42
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<activerecord>, [">= 0"])
44
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
45
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
46
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
47
+ s.add_development_dependency(%q<rcov>, [">= 0"])
48
+ s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
49
+ else
50
+ s.add_dependency(%q<activerecord>, [">= 0"])
51
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
52
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
53
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
54
+ s.add_dependency(%q<rcov>, [">= 0"])
55
+ s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
56
+ end
57
+ else
58
+ s.add_dependency(%q<activerecord>, [">= 0"])
59
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
60
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
61
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
62
+ s.add_dependency(%q<rcov>, [">= 0"])
63
+ s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
64
+ end
65
+ end
66
+
@@ -15,6 +15,8 @@ describe Article do
15
15
  setup_db
16
16
  Article.create(:slug => "myslug", :title => "/About @twitter and #github")
17
17
  Article.create(:slug => "japanese", :title => "日本語")
18
+ Article.create(:slug => nil, :title => 'nilslug')
19
+
18
20
  }
19
21
  after(:all) { teardown_db }
20
22
 
@@ -25,13 +27,18 @@ describe Article do
25
27
  its(:to_param) { should == "1-myslug" }
26
28
  end
27
29
 
30
+ context "when slug is nil" do
31
+ subject { Article.find_by_title('nilslug') }
32
+ its(:to_param) { should == "3" }
33
+ end
34
+
28
35
  context "with column name option" do
29
36
  subject { ArticleUsingTitle.first }
30
37
  its(:to_param) { should == "1-About-twitter-and-github" }
31
38
  end
32
39
 
33
40
  context "needs to escape, such as Japanese letters" do
34
- subject { ArticleUsingTitle.last }
41
+ subject { ArticleUsingTitle.find_by_slug('japanese') }
35
42
  its(:to_param) { should == "2-%E6%97%A5%E6%9C%AC%E8%AA%9E" }
36
43
  end
37
44
 
metadata CHANGED
@@ -1,94 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sexy_to_param
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
4
5
  prerelease:
5
- version: 0.0.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - holysugar
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-13 00:00:00 +09:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-12 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: activerecord
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70154685238820 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70154685238820
25
+ - !ruby/object:Gem::Dependency
28
26
  name: rspec
29
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &70154685235580 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
29
+ requirements:
32
30
  - - ~>
33
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
34
32
  version: 2.3.0
35
33
  type: :development
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *70154685235580
36
+ - !ruby/object:Gem::Dependency
39
37
  name: bundler
40
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &70154685223500 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
40
+ requirements:
43
41
  - - ~>
44
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
45
43
  version: 1.0.0
46
44
  type: :development
47
45
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *70154685223500
47
+ - !ruby/object:Gem::Dependency
50
48
  name: jeweler
51
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &70154685221480 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
51
+ requirements:
54
52
  - - ~>
55
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
56
54
  version: 1.6.4
57
55
  type: :development
58
56
  prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
57
+ version_requirements: *70154685221480
58
+ - !ruby/object:Gem::Dependency
61
59
  name: rcov
62
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ requirement: &70154685218980 !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
68
66
  type: :development
69
67
  prerelease: false
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
68
+ version_requirements: *70154685218980
69
+ - !ruby/object:Gem::Dependency
72
70
  name: sqlite3-ruby
73
- requirement: &id006 !ruby/object:Gem::Requirement
71
+ requirement: &70154685213400 !ruby/object:Gem::Requirement
74
72
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
79
77
  type: :development
80
78
  prerelease: false
81
- version_requirements: *id006
79
+ version_requirements: *70154685213400
82
80
  description: methods when using to_param
83
81
  email: holysugar@gmail.com
84
82
  executables: []
85
-
86
83
  extensions: []
87
-
88
- extra_rdoc_files:
84
+ extra_rdoc_files:
89
85
  - LICENSE.txt
90
86
  - README.markdown
91
- files:
87
+ files:
92
88
  - .document
93
89
  - .rspec
94
90
  - Gemfile
@@ -98,38 +94,35 @@ files:
98
94
  - Rakefile
99
95
  - VERSION
100
96
  - lib/sexy_to_param.rb
97
+ - sexy_to_param.gemspec
101
98
  - spec/sexy_to_param_spec.rb
102
99
  - spec/spec_helper.rb
103
- has_rdoc: true
104
100
  homepage: http://github.com/holysugar/sexy_to_param
105
- licenses:
101
+ licenses:
106
102
  - MIT
107
103
  post_install_message:
108
104
  rdoc_options: []
109
-
110
- require_paths:
105
+ require_paths:
111
106
  - lib
112
- required_ruby_version: !ruby/object:Gem::Requirement
107
+ required_ruby_version: !ruby/object:Gem::Requirement
113
108
  none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- hash: 420315773723891091
118
- segments:
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ segments:
119
114
  - 0
120
- version: "0"
121
- required_rubygems_version: !ruby/object:Gem::Requirement
115
+ hash: -61747708282192080
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
117
  none: false
123
- requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
127
122
  requirements: []
128
-
129
123
  rubyforge_project:
130
- rubygems_version: 1.6.2
124
+ rubygems_version: 1.8.6
131
125
  signing_key:
132
126
  specification_version: 3
133
127
  summary: methods when using to_param
134
128
  test_files: []
135
-