younker-string-extensions 0.0.2
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 +4 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -0
- data/lib/younker-string-extensions.rb +34 -0
- data/lib/younker-string-extensions/version.rb +7 -0
- data/younker-string-extensions.gemspec +21 -0
- metadata +73 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
# Monkey-patching String
|
3
|
+
class String
|
4
|
+
def make_url_friendly
|
5
|
+
# 1. Downcase string
|
6
|
+
# 2. Remove apostrophes so isn't changes to isnt
|
7
|
+
# 3. Replace any non-letter or non-number character with a space
|
8
|
+
# 4. Remove spaces from beginning and end of string
|
9
|
+
# 5. Replace groups of spaces with single hyphen
|
10
|
+
self.downcase.gsub(/'/, '').gsub(/[^A-Za-z0-9]+/, ' ').strip.gsub(/\ +/, '-')
|
11
|
+
end
|
12
|
+
|
13
|
+
# Stepping all over the native truncate()
|
14
|
+
def truncate(length = 100, truncate_string = "...")
|
15
|
+
# First regex truncates to the length, plus the rest of that word, if any.
|
16
|
+
# Second regex removes any trailing whitespace or punctuation (except ;).
|
17
|
+
# Unlike the regular truncate method, this avoids the problem with cutting
|
18
|
+
# in the middle of an entity ex.: truncate("this & that",9) => "this &am..."
|
19
|
+
# though it will not be the exact length.
|
20
|
+
|
21
|
+
return if self.blank?
|
22
|
+
l = length - truncate_string.length
|
23
|
+
self.length > length ? self[/\A.{#{l}}\w*\;?/m][/.*[\w\;]/m] + truncate_string : self
|
24
|
+
end
|
25
|
+
|
26
|
+
def strip_html
|
27
|
+
self.gsub(%r{</?[^>]+?>}, '')
|
28
|
+
end
|
29
|
+
|
30
|
+
def pluralize_if(boolean)
|
31
|
+
boolean ? self.pluralize : self
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "younker-string-extensions/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "younker-string-extensions"
|
7
|
+
s.version = Younker::String::Extensions::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Jason Younker"]
|
10
|
+
s.email = ["jason@ynkr.org"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Monkey patching string}
|
13
|
+
s.description = %q{Monkey patching string -- stuff that I find useful}
|
14
|
+
|
15
|
+
s.rubyforge_project = "younker-string-extensions"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: younker-string-extensions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Jason Younker
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-04-03 00:00:00 -07:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: Monkey patching string -- stuff that I find useful
|
23
|
+
email:
|
24
|
+
- jason@ynkr.org
|
25
|
+
executables: []
|
26
|
+
|
27
|
+
extensions: []
|
28
|
+
|
29
|
+
extra_rdoc_files: []
|
30
|
+
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- Rakefile
|
35
|
+
- lib/younker-string-extensions.rb
|
36
|
+
- lib/younker-string-extensions/version.rb
|
37
|
+
- younker-string-extensions.gemspec
|
38
|
+
has_rdoc: true
|
39
|
+
homepage: ""
|
40
|
+
licenses: []
|
41
|
+
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
|
45
|
+
require_paths:
|
46
|
+
- lib
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
hash: 3
|
53
|
+
segments:
|
54
|
+
- 0
|
55
|
+
version: "0"
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 3
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
version: "0"
|
65
|
+
requirements: []
|
66
|
+
|
67
|
+
rubyforge_project: younker-string-extensions
|
68
|
+
rubygems_version: 1.6.2
|
69
|
+
signing_key:
|
70
|
+
specification_version: 3
|
71
|
+
summary: Monkey patching string
|
72
|
+
test_files: []
|
73
|
+
|