parameterize 0.1.0 → 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.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  pkg/*
2
2
  *.gem
3
3
  .bundle
4
+ Gemfile.lock
data/README.md CHANGED
@@ -1,51 +1,66 @@
1
1
  # Parameterize
2
2
 
3
- _The simplest permalink/slug solution for ActiveRecord 3.0._
3
+ _The simplest permalink/slug solution for ActiveRecord >= 3.0._
4
4
 
5
5
  It uses ActiveSupport's `String#parameterize` to create the slug. There are no validations. No slug history. No extra tables or models.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- rails generate model User name:string param:string
10
-
11
- class User < ActiveRecord::Base
12
- parameterize :name
13
- end
14
-
15
- user = User.new :name => 'John Doe'
16
- user.valid?
17
- user.param = 'john-doe'
18
- user.to_param = 'john-doe'
9
+ ```ruby
10
+ # Gemfile
11
+ gem 'parameterize'
12
+ ```
13
+
14
+ ```
15
+ bundle install
16
+ rails generate model User name:string param:string
17
+ ```
18
+
19
+ ```ruby
20
+ # models/user.rb
21
+ class User < ActiveRecord::Base
22
+ parameterize :name
23
+ end
24
+
25
+ # elsewhere
26
+ user = User.new :name => 'John Doe'
27
+ user.valid?
28
+ user.param = 'john-doe'
29
+ user.to_param = 'john-doe'
30
+ ```
19
31
 
20
32
  ## Notes
21
33
 
22
34
  Validations **are not** included. I prefer to be able to customize my validations directly in the model. The most common validations you would add are:
23
35
 
24
- class Post < ActiveRecord::Base
25
- parameterize
26
- validates_presence_of :param
27
- validates_uniqueness_of :param
28
- end
36
+ ```ruby
37
+ class Post < ActiveRecord::Base
38
+ parameterize
39
+ validates_presence_of :param
40
+ validates_uniqueness_of :param
41
+ end
42
+ ```
29
43
 
30
44
  You could easily use [Babosa's](http://github.com/norman/babosa) #to_identifier or [Stringex's](http://github.com/rsl/stringex) #to_url instead of ActiveSupport's #parameterize by just aliasing the method you want to use:
31
45
 
32
- require 'babosa'
33
- class String
34
- alias :parameterize :to_identifier
35
- end
46
+ ```ruby
47
+ require 'babosa'
48
+ class String
49
+ alias :parameterize :to_identifier
50
+ end
51
+ ```
36
52
 
37
53
  There is also a Shoulda-style RSpec matcher available for use in your specs:
38
54
 
39
- # spec_helper.rb
40
- ...
41
- require 'parameterize/matcher'
42
- ...
43
-
44
- # post_spec.rb
45
- ...
46
- describe Post do
47
- it { should parameterize(:title) }
48
- end
55
+ ```ruby
56
+ # spec_helper.rb
57
+ require 'parameterize/matcher'
58
+
59
+ # post_spec.rb
60
+ describe Post do
61
+ it { should parameterize(:title) }
62
+ end
63
+ ```
49
64
 
50
65
  ## Copyright
51
66
 
data/lib/parameterize.rb CHANGED
@@ -4,6 +4,8 @@ require 'active_support/core_ext/string/inflections'
4
4
  module Parameterize
5
5
  # Adds a before validation filter for updating the param field
6
6
  # with the parameterized version of the given source field.
7
+ #
8
+ # @param [Symbol, String] source The field to parameterize
7
9
  def parameterize(source = :title)
8
10
  include InstanceMethods
9
11
 
@@ -14,15 +16,17 @@ module Parameterize
14
16
  end
15
17
 
16
18
  module InstanceMethods
19
+ # Overwrite #to_param to return the generated param.
17
20
  def to_param
18
21
  self.param
19
22
  end
20
23
 
24
+ protected
25
+
21
26
  # Updates the param field with the parameterized version of the source field.
22
27
  def update_param
23
28
  self.param = __send__(self.class.param_source_field).to_s.parameterize
24
29
  end
25
- protected :update_param
26
30
  end
27
31
  end
28
32
 
@@ -1,3 +1,3 @@
1
1
  module Parameterize
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/parameterize.gemspec CHANGED
@@ -9,14 +9,14 @@ Gem::Specification.new do |s|
9
9
  s.authors = %w(Pete Browne)
10
10
  s.email = %w(me@petebrowne.com)
11
11
  s.homepage = 'http://github.com/petebrowne/parameterize'
12
- s.summary = %{The simplest permalink/slug solution for ActiveRecord 3.0}
12
+ s.summary = %{The simplest permalink/slug solution for ActiveRecord >= 3.0}
13
13
  s.description = %{It uses ActiveSupport's String#parameterize to create the slug. There are no validations. No slug history. No extra tables or models.}
14
14
 
15
15
  s.rubyforge_project = 'parameterize'
16
16
 
17
- s.add_dependency 'activerecord', '~> 3.0.3'
18
- s.add_dependency 'activesupport', '~> 3.0.3'
19
- s.add_development_dependency 'rspec', '~> 2.4.0'
17
+ s.add_dependency 'activerecord', '~> 3.0'
18
+ s.add_dependency 'activesupport', '~> 3.0'
19
+ s.add_development_dependency 'rspec', '~> 2.6.0'
20
20
  s.add_development_dependency 'sqlite3-ruby', '~> 1.3.3'
21
21
 
22
22
  s.files = `git ls-files`.split("\n")
data/spec/spec_helper.rb CHANGED
@@ -1,31 +1,21 @@
1
- lib = File.expand_path('../../lib', __FILE__)
2
- $:.unshift(lib) unless $:.include?(lib)
3
-
4
1
  require 'rubygems'
5
2
  require 'bundler/setup'
6
- require 'rspec'
3
+ Bundler.require :default, :development
7
4
  require 'active_record'
8
- require 'parameterize'
9
5
  require 'parameterize/matcher'
10
6
 
11
- module ActiveRecord
12
- class Base
13
- extend Parameterize
14
- establish_connection :adapter => 'sqlite3', :database => ':memory:'
7
+ ActiveRecord::Base.extend Parameterize
8
+ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
9
+ ActiveRecord::Migration.verbose = false
10
+ ActiveRecord::Schema.define :version => 1 do
11
+ create_table :posts do |t|
12
+ t.string :title
13
+ t.string :param
15
14
  end
16
15
 
17
- Migration.verbose = false
18
-
19
- Schema.define(:version => 1) do
20
- create_table :posts do |t|
21
- t.string :title
22
- t.string :param
23
- end
24
-
25
- create_table :users do |t|
26
- t.string :name
27
- t.string :param
28
- end
16
+ create_table :users do |t|
17
+ t.string :name
18
+ t.string :param
29
19
  end
30
20
  end
31
21
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parameterize
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 25
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 1
8
- - 0
9
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Pete
@@ -15,8 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-01-29 00:00:00 -06:00
19
- default_executable:
19
+ date: 2011-07-19 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: activerecord
@@ -26,11 +26,11 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
+ hash: 7
29
30
  segments:
30
31
  - 3
31
32
  - 0
32
- - 3
33
- version: 3.0.3
33
+ version: "3.0"
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
@@ -41,11 +41,11 @@ dependencies:
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
+ hash: 7
44
45
  segments:
45
46
  - 3
46
47
  - 0
47
- - 3
48
- version: 3.0.3
48
+ version: "3.0"
49
49
  type: :runtime
50
50
  version_requirements: *id002
51
51
  - !ruby/object:Gem::Dependency
@@ -56,11 +56,12 @@ dependencies:
56
56
  requirements:
57
57
  - - ~>
58
58
  - !ruby/object:Gem::Version
59
+ hash: 23
59
60
  segments:
60
61
  - 2
61
- - 4
62
+ - 6
62
63
  - 0
63
- version: 2.4.0
64
+ version: 2.6.0
64
65
  type: :development
65
66
  version_requirements: *id003
66
67
  - !ruby/object:Gem::Dependency
@@ -71,6 +72,7 @@ dependencies:
71
72
  requirements:
72
73
  - - ~>
73
74
  - !ruby/object:Gem::Version
75
+ hash: 29
74
76
  segments:
75
77
  - 1
76
78
  - 3
@@ -90,7 +92,6 @@ extra_rdoc_files: []
90
92
  files:
91
93
  - .gitignore
92
94
  - Gemfile
93
- - Gemfile.lock
94
95
  - LICENSE
95
96
  - README.md
96
97
  - Rakefile
@@ -101,7 +102,6 @@ files:
101
102
  - parameterize.gemspec
102
103
  - spec/parameterize_spec.rb
103
104
  - spec/spec_helper.rb
104
- has_rdoc: true
105
105
  homepage: http://github.com/petebrowne/parameterize
106
106
  licenses: []
107
107
 
@@ -115,6 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
+ hash: 3
118
119
  segments:
119
120
  - 0
120
121
  version: "0"
@@ -123,16 +124,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
124
  requirements:
124
125
  - - ">="
125
126
  - !ruby/object:Gem::Version
127
+ hash: 3
126
128
  segments:
127
129
  - 0
128
130
  version: "0"
129
131
  requirements: []
130
132
 
131
133
  rubyforge_project: parameterize
132
- rubygems_version: 1.3.7
134
+ rubygems_version: 1.8.5
133
135
  signing_key:
134
136
  specification_version: 3
135
- summary: The simplest permalink/slug solution for ActiveRecord 3.0
137
+ summary: The simplest permalink/slug solution for ActiveRecord >= 3.0
136
138
  test_files:
137
139
  - spec/parameterize_spec.rb
138
140
  - spec/spec_helper.rb
data/Gemfile.lock DELETED
@@ -1,44 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- parameterize (0.1.0)
5
- activerecord (~> 3.0.3)
6
- activesupport (~> 3.0.3)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- activemodel (3.0.3)
12
- activesupport (= 3.0.3)
13
- builder (~> 2.1.2)
14
- i18n (~> 0.4)
15
- activerecord (3.0.3)
16
- activemodel (= 3.0.3)
17
- activesupport (= 3.0.3)
18
- arel (~> 2.0.2)
19
- tzinfo (~> 0.3.23)
20
- activesupport (3.0.3)
21
- arel (2.0.7)
22
- builder (2.1.2)
23
- diff-lcs (1.1.2)
24
- i18n (0.5.0)
25
- rspec (2.4.0)
26
- rspec-core (~> 2.4.0)
27
- rspec-expectations (~> 2.4.0)
28
- rspec-mocks (~> 2.4.0)
29
- rspec-core (2.4.0)
30
- rspec-expectations (2.4.0)
31
- diff-lcs (~> 1.1.2)
32
- rspec-mocks (2.4.0)
33
- sqlite3 (1.3.3)
34
- sqlite3-ruby (1.3.3)
35
- sqlite3 (>= 1.3.3)
36
- tzinfo (0.3.24)
37
-
38
- PLATFORMS
39
- ruby
40
-
41
- DEPENDENCIES
42
- parameterize!
43
- rspec (~> 2.4.0)
44
- sqlite3-ruby (~> 1.3.3)