sexy_to_param 0.0.1 → 0.0.3

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.
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
-