ruby_extensions 1.0.0 → 1.0.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/lib/m_class.rb +10 -1
- data/lib/m_logger.rb +19 -2
- data/lib/m_string.rb +93 -17
- data/lib/ruby_extensions.rb +2 -1
- data/lib/tasks/rubyforge_config.yml +1 -1
- metadata +3 -2
data/lib/m_class.rb
CHANGED
data/lib/m_logger.rb
CHANGED
@@ -9,12 +9,29 @@ class Logger
|
|
9
9
|
end
|
10
10
|
}
|
11
11
|
end
|
12
|
+
|
13
|
+
j = 5
|
14
|
+
5.times do |i|
|
15
|
+
lbs = ""
|
16
|
+
ast = ""
|
17
|
+
j.times { lbs << "\n"}
|
18
|
+
(j * 5).times { ast << "*"}
|
19
|
+
class_eval %{
|
20
|
+
def debug_#{i+1}(progname = nil, &block)
|
21
|
+
progname = format_progname(progname)
|
22
|
+
mess = "\n#{ast}#{lbs}\#{progname}#{lbs}#{ast}"
|
23
|
+
debug(mess, &block)
|
24
|
+
end
|
25
|
+
}
|
26
|
+
j = j - 1
|
27
|
+
end
|
12
28
|
|
13
29
|
def format_message(severity, timestamp, progname, msg)
|
14
30
|
# Check for characters at the start of the message string indicating special formatting
|
15
31
|
# Make the typical case as efficient as possible
|
16
32
|
if not msg[0..1] == '$@'
|
17
|
-
|
33
|
+
pid = (defined?(ENABLE_PIDS_IN_LOGS) and ENABLE_PIDS_IN_LOGS) ? "(#{$$}) " : ''
|
34
|
+
return "#{pid}[#{severity}]\t#{timestamp}\t#{msg}\n"
|
18
35
|
end
|
19
36
|
format = msg[2..2]
|
20
37
|
msg = msg[3..-1]
|
@@ -35,4 +52,4 @@ class Logger
|
|
35
52
|
progname
|
36
53
|
end
|
37
54
|
|
38
|
-
end
|
55
|
+
end
|
data/lib/m_string.rb
CHANGED
@@ -1,5 +1,81 @@
|
|
1
|
+
require 'active_support'
|
1
2
|
class String
|
2
3
|
|
4
|
+
include ActiveSupport::CoreExtensions::String::Inflections
|
5
|
+
|
6
|
+
def methodize
|
7
|
+
x = self
|
8
|
+
|
9
|
+
# if we get down to a nil or an empty string raise an exception!
|
10
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
11
|
+
|
12
|
+
# get rid of the big stuff in the front/back
|
13
|
+
x.strip!
|
14
|
+
|
15
|
+
# if we get down to a nil or an empty string raise an exception!
|
16
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
17
|
+
|
18
|
+
x = x.underscore
|
19
|
+
|
20
|
+
# get rid of spaces and make the _
|
21
|
+
x.gsub!(' ', '_')
|
22
|
+
# get rid of everything that isn't 'safe' a-z, 0-9, ?, !, =, _
|
23
|
+
x.gsub!(/([^ a-zA-Z0-9\_\?\!\=]+)/n, '_')
|
24
|
+
|
25
|
+
# if we get down to a nil or an empty string raise an exception!
|
26
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
27
|
+
|
28
|
+
# condense multiple 'safe' non a-z chars to just one.
|
29
|
+
# ie. ___ becomes _ !!!! becomes ! etc...
|
30
|
+
[' ', '_', '?', '!', "="].each do |c|
|
31
|
+
x.squeeze!(c)
|
32
|
+
end
|
33
|
+
|
34
|
+
# if we get down to a nil or an empty string raise an exception!
|
35
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
36
|
+
|
37
|
+
#down case the whole thing
|
38
|
+
x.downcase!
|
39
|
+
|
40
|
+
# get rid of any characters at the beginning that aren't a-z
|
41
|
+
while !x.match(/^[a-z]/)
|
42
|
+
x.slice!(0)
|
43
|
+
|
44
|
+
# if we get down to a nil or an empty string raise an exception!
|
45
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
46
|
+
end
|
47
|
+
|
48
|
+
# let's trim this bad boy down a bit now that we've cleaned it up, somewhat.
|
49
|
+
# we should do this before cleaning up the end character, because it's possible to end up with a
|
50
|
+
# bad char at the end if you trim too late.
|
51
|
+
x = x[0..100] if x.length > 100
|
52
|
+
|
53
|
+
# get rid of any characters at the end that aren't safe
|
54
|
+
while !x.match(/[a-z0-9\?\!\=]$/)
|
55
|
+
x.slice!(x.length - 1)
|
56
|
+
# if we get down to a nil or an empty string raise an exception!
|
57
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
58
|
+
end
|
59
|
+
|
60
|
+
# if we get down to a nil or an empty string raise an exception!
|
61
|
+
raise NameError.new("#{self} cannot be converted to a valid method name!") if x.nil? || x == ''
|
62
|
+
|
63
|
+
# let's get rid of characters that don't belong in the 'middle' of the method.
|
64
|
+
orig_middle = x[1..(x.length - 2)]
|
65
|
+
n_middle = orig_middle.dup
|
66
|
+
|
67
|
+
['?', '!', "="].each do |c|
|
68
|
+
n_middle.gsub!(c, "_")
|
69
|
+
end
|
70
|
+
|
71
|
+
# the previous gsub can leave us with multiple underscores that need cleaning up.
|
72
|
+
n_middle.squeeze!("_")
|
73
|
+
|
74
|
+
x.gsub!(orig_middle, n_middle)
|
75
|
+
x.gsub!("_=", "=")
|
76
|
+
x
|
77
|
+
end
|
78
|
+
|
3
79
|
def starts_with?(x)
|
4
80
|
self.match(/^#{x}/) ? true : false
|
5
81
|
end
|
@@ -104,23 +180,23 @@ class String
|
|
104
180
|
self.replace(self.capitalize_all_words)
|
105
181
|
end
|
106
182
|
|
107
|
-
# remove_bad_chars!: any characters not in the allowed set will be removed
|
108
|
-
# squeeze: remove any repeated dash, underscore, period, comma characters
|
109
|
-
def remove_bad_chars
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
end
|
120
|
-
|
121
|
-
def remove_bad_chars!
|
122
|
-
|
123
|
-
end
|
183
|
+
# # remove_bad_chars!: any characters not in the allowed set will be removed
|
184
|
+
# # squeeze: remove any repeated dash, underscore, period, comma characters
|
185
|
+
# def remove_bad_chars
|
186
|
+
# #ic = Iconv.new('UTF-8//IGNORE', 'UTF-8') # ignore bytes you can't convert
|
187
|
+
# #str = ic.iconv(self + ' ')[0..-2]
|
188
|
+
# if !self.nil?
|
189
|
+
# x = self.gsub(/[^\s0-9\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\_\~\`\^\|\\ \{\}\[\]\’\“\” A-Za-z]/, '').to_s.gsub(/[\’]/, "'").to_s.gsub(/[\“]/, '"').to_s.gsub(/[\”]/, '"').squeeze(",").squeeze("-").squeeze("!").squeeze("*").squeeze("?")
|
190
|
+
#
|
191
|
+
# # now use the WhiteListHelper plugin to clean out html encodings
|
192
|
+
# white_list(x)
|
193
|
+
# end
|
194
|
+
#
|
195
|
+
# end
|
196
|
+
#
|
197
|
+
# def remove_bad_chars!
|
198
|
+
# self.replace(self.remove_bad_chars)
|
199
|
+
# end
|
124
200
|
|
125
201
|
# keep adding on to this whenever it becomes apparent that unsafe strings
|
126
202
|
# could get passed through into the database
|
data/lib/ruby_extensions.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'find'
|
2
|
-
path = File.join(RAILS_ROOT, "vendor", "plugins", "ruby_extensions", "lib")
|
2
|
+
path = File.dirname(__FILE__)#File.join(RAILS_ROOT, "vendor", "plugins", "ruby_extensions", "lib")
|
3
|
+
# puts "path = #{path}"
|
3
4
|
Find.find(path) do |f|
|
4
5
|
if FileTest.directory?(f) and f =~ /\.svn/
|
5
6
|
Find.prune
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ruby_extensions
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.0.1
|
7
|
+
date: 2007-10-19 00:00:00 -04:00
|
8
8
|
summary: ruby_extensions
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -26,6 +26,7 @@ autorequire:
|
|
26
26
|
- m_dir
|
27
27
|
- m_class
|
28
28
|
- m_array
|
29
|
+
- ruby_extensions
|
29
30
|
- m_string
|
30
31
|
- m_object
|
31
32
|
- m_math
|