slugr 1.0.0 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e2de66420710615210b5fd7923da786c9341866d99dd4ea9a1261850bd0497f
4
- data.tar.gz: dc40bc7694faab6f0e55e59b66a8c42a54e0f3ee9d1a7522dd772cda284ae462
3
+ metadata.gz: d3b2dcf43275ed11bb0a8fffa27605e2496a9584e675ff855045a864874c5380
4
+ data.tar.gz: fb08717b97008e42db5fe20208ef43294f98f70fbc04e7a60c4ff5de15de2e71
5
5
  SHA512:
6
- metadata.gz: fb346faae81bd8318ac2af90d4a628a3c4b053c87e56cc5351f7ad5e16fb68f3a8924be9516d504fe9b98cc7b1b596285401f0e7cf9184fddf2540f7f55460d8
7
- data.tar.gz: a6fe9a61d2bc5acbee7c2c894db024ceda605f4309407f51a6217060c196cec7ce68553d872101c8fdced88311009df9d8365b87725b41a90a66ad5cbbf5eac5
6
+ metadata.gz: 0a20135210fd3dc0e75aa365c0e471613eb14f949662b14a8a771d4d8ec6e6a6462ebe20b696988138c4d32982c9310b357ce1072e6b1f97906e628192df749e
7
+ data.tar.gz: 59d2d6a50d0299214780d8a9b81a7e5033982b02da7d9c80cde9fd88fd46d876059dda411b304701dce256c5817abe73cf71e2aa90ea4c45e7327984b40db929
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Slugr
2
2
 
3
- Slugr is a gem to automatically create ActiveRecord object slugs for use in permalinks based on a title, name, headline, or some other unique and descriptive string field.
3
+ Slugr is a gem to automatically create ActiveRecord object slugs for use in permalinks based on a title, name, headline, or some other unique and descriptive string field. It also provides a slug convenience method to the String class.
4
4
 
5
5
  ## Installation
6
6
 
@@ -97,6 +97,15 @@ Slugr will do its best to normalize diacritics (accented characters) to its non
97
97
  artist = Artist.create(name: "Mötley Crüe") # slug: "motley-crue"
98
98
  ```
99
99
 
100
+ ### String extension
101
+
102
+ Slugr extends the String class with a slug method.
103
+
104
+ ```ruby
105
+ > "Côte d'Ivoire".slug
106
+ => "cote-divoire"
107
+ ```
108
+
100
109
  ## Development
101
110
 
102
111
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,18 +1,15 @@
1
1
  require "slugr/version"
2
+ require "string"
2
3
 
3
4
  module Slugr
4
5
 
5
6
  def self.included(base)
6
7
  base.extend(ClassMethods)
7
8
 
8
- def slug_for_string streng
9
- return streng.gsub(/('|’)/, '').mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').parameterize.to_s
10
- end
11
-
12
9
  def set_slug
13
10
  return if (streng = self.send(self.source).to_s).blank?
14
11
  return if only_set_slug_if_empty && self.send(self.target).present?
15
- self.send("#{self.target.to_s}=", slug_for_string(streng))
12
+ self.send("#{self.target.to_s}=", streng.to_s.slug)
16
13
  end
17
14
  end
18
15
 
@@ -1,3 +1,3 @@
1
1
  module Slugr
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -0,0 +1,7 @@
1
+ String.class_eval do
2
+
3
+ def slug
4
+ self.gsub(/('|’)/, '').unicode_normalize(:nfkd).gsub(/[^\x00-\x7F]/n,'').parameterize.to_s
5
+ end
6
+
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slugr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Edlund
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-29 00:00:00.000000000 Z
11
+ date: 2019-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -102,6 +102,7 @@ files:
102
102
  - bin/setup
103
103
  - lib/slugr.rb
104
104
  - lib/slugr/version.rb
105
+ - lib/string.rb
105
106
  - slugr.gemspec
106
107
  homepage: https://github.com/arcticleo/slugr
107
108
  licenses:
@@ -122,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
123
  - !ruby/object:Gem::Version
123
124
  version: '0'
124
125
  requirements: []
125
- rubyforge_project:
126
- rubygems_version: 2.7.6
126
+ rubygems_version: 3.0.3
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Smooth cruisin' permalink slugs for ActiveRecord objects.