mark_facets 0.1.9 → 0.2.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.
- data/lib/mark_facets/ruby/string.rb +91 -0
- metadata +5 -5
@@ -23,6 +23,97 @@ class String
|
|
23
23
|
|
24
24
|
alias_method :to_boolean, :to_bool
|
25
25
|
|
26
|
+
def methodize
|
27
|
+
m = self.dup
|
28
|
+
m.strip!
|
29
|
+
m.match(/([\?\=\!])$/)
|
30
|
+
punc = $1
|
31
|
+
m = m.underscore if m.respond_to?(:underscore)
|
32
|
+
m.downcase!
|
33
|
+
m = m[0..100] if m.length > 100
|
34
|
+
m.gsub!(/(\W)/, '_')
|
35
|
+
m.gsub!(/_+$/, '')
|
36
|
+
m.gsub!(/^[^a-z]+/, '')
|
37
|
+
[' ', '_', '?', '!', "="].each do |c|
|
38
|
+
m.squeeze!(c)
|
39
|
+
end
|
40
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if m.nil? || m == ''
|
41
|
+
return "#{m}#{punc}"
|
42
|
+
end
|
43
|
+
|
44
|
+
# def methodize
|
45
|
+
# x = self
|
46
|
+
#
|
47
|
+
# # if we get down to a nil or an empty string raise an exception!
|
48
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
49
|
+
#
|
50
|
+
# # get rid of the big stuff in the front/back
|
51
|
+
# x.strip!
|
52
|
+
#
|
53
|
+
# # if we get down to a nil or an empty string raise an exception!
|
54
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
55
|
+
#
|
56
|
+
# x = x.underscore
|
57
|
+
#
|
58
|
+
# # get rid of spaces and make the _
|
59
|
+
# x.gsub!(' ', '_')
|
60
|
+
# # get rid of everything that isn't 'safe' a-z, 0-9, ?, !, =, _
|
61
|
+
# x.gsub!(/([^ a-zA-Z0-9\_\?\!\=]+)/n, '_')
|
62
|
+
#
|
63
|
+
# # if we get down to a nil or an empty string raise an exception!
|
64
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
65
|
+
#
|
66
|
+
# # condense multiple 'safe' non a-z chars to just one.
|
67
|
+
# # ie. ___ becomes _ !!!! becomes ! etc...
|
68
|
+
# [' ', '_', '?', '!', "="].each do |c|
|
69
|
+
# x.squeeze!(c)
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
# # if we get down to a nil or an empty string raise an exception!
|
73
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
74
|
+
#
|
75
|
+
# #down case the whole thing
|
76
|
+
# x.downcase!
|
77
|
+
#
|
78
|
+
# # get rid of any characters at the beginning that aren't a-z
|
79
|
+
# while !x.match(/^[a-z]/)
|
80
|
+
# x.slice!(0)
|
81
|
+
#
|
82
|
+
# # if we get down to a nil or an empty string raise an exception!
|
83
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
84
|
+
# end
|
85
|
+
#
|
86
|
+
# # let's trim this bad boy down a bit now that we've cleaned it up, somewhat.
|
87
|
+
# # we should do this before cleaning up the end character, because it's possible to end up with a
|
88
|
+
# # bad char at the end if you trim too late.
|
89
|
+
# x = x[0..100] if x.length > 100
|
90
|
+
#
|
91
|
+
# # get rid of any characters at the end that aren't safe
|
92
|
+
# while !x.match(/[a-z0-9\?\!\=]$/)
|
93
|
+
# x.slice!(x.length - 1)
|
94
|
+
# # if we get down to a nil or an empty string raise an exception!
|
95
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
96
|
+
# end
|
97
|
+
#
|
98
|
+
# # if we get down to a nil or an empty string raise an exception!
|
99
|
+
# raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
100
|
+
#
|
101
|
+
# # let's get rid of characters that don't belong in the 'middle' of the method.
|
102
|
+
# orig_middle = x[1..(x.length - 2)]
|
103
|
+
# n_middle = orig_middle.dup
|
104
|
+
#
|
105
|
+
# ['?', '!', "="].each do |c|
|
106
|
+
# n_middle.gsub!(c, "_")
|
107
|
+
# end
|
108
|
+
#
|
109
|
+
# # the previous gsub can leave us with multiple underscores that need cleaning up.
|
110
|
+
# n_middle.squeeze!("_")
|
111
|
+
#
|
112
|
+
# x.gsub!(orig_middle, n_middle)
|
113
|
+
# x.gsub!("_=", "=")
|
114
|
+
# x
|
115
|
+
# end
|
116
|
+
|
26
117
|
class << self
|
27
118
|
|
28
119
|
RANDOM_CHARS = [('A'..'H').to_a, ('J'..'N').to_a, ('P'..'T').to_a, ('W'..'Z').to_a, ('3'..'9').to_a].flatten
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mark_facets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- markbates
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-04-22 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -70,7 +70,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
70
|
requirements:
|
71
71
|
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
hash:
|
73
|
+
hash: 428702734687293533
|
74
74
|
segments:
|
75
75
|
- 0
|
76
76
|
version: "0"
|
@@ -79,14 +79,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
hash:
|
82
|
+
hash: 428702734687293533
|
83
83
|
segments:
|
84
84
|
- 0
|
85
85
|
version: "0"
|
86
86
|
requirements: []
|
87
87
|
|
88
88
|
rubyforge_project: magrathea
|
89
|
-
rubygems_version: 1.
|
89
|
+
rubygems_version: 1.6.2
|
90
90
|
signing_key:
|
91
91
|
specification_version: 3
|
92
92
|
summary: mark_facets
|