buzzcore 0.6.1 → 0.6.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/VERSION +1 -1
- data/buzzcore.gemspec +2 -2
- data/lib/buzzcore/database_utils.rb +24 -0
- data/lib/buzzcore/extend_base_classes.rb +19 -5
- metadata +4 -4
data/VERSION
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.2
|
2
2
|
|
data/buzzcore.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{buzzcore}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["buzzware"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-07}
|
13
13
|
s.description = %q{buzzcore is the ruby core library developed and used by Buzzware Solutions.}
|
14
14
|
s.email = %q{contact@buzzware.com.au}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -79,7 +79,31 @@ module DatabaseUtils
|
|
79
79
|
#end
|
80
80
|
|
81
81
|
|
82
|
+
# remember to select id column
|
83
|
+
def self.process_rows(aTableName,aQuery)
|
84
|
+
rows = ActiveRecord::Base.connection.execute(aQuery).all_hashes
|
85
|
+
# rows to hash
|
86
|
+
rows.each do |r|
|
87
|
+
before = r.clone
|
88
|
+
yield(r) # modify r
|
89
|
+
r[:delete] = true if r == before
|
90
|
+
end
|
91
|
+
rows.delete_if {|r| r[:delete]}
|
92
|
+
rows.each do |r|
|
93
|
+
assigns = ''
|
94
|
+
r.keys.filter_exclude(['id']).each do |k|
|
95
|
+
assigns += ', ' unless assigns.empty?
|
96
|
+
assigns += "#{k} = '#{r[k]}'" # should do better escaping here for strings & numbers
|
97
|
+
end
|
98
|
+
ActiveRecord::Base.connection.execute("update `#{aTableName}` set #{assigns} where id=#{r['id']}")
|
99
|
+
end
|
100
|
+
end
|
82
101
|
|
102
|
+
def self.process_table(aTableName,aColumns,&block)
|
103
|
+
aColumns.map!(&:to_s)
|
104
|
+
aColumns << 'id' unless aColumns.include? 'id'
|
105
|
+
process_rows(aTableName,"select #{aColumns.join(',')} from `#{aTableName}`",&block)
|
106
|
+
end
|
83
107
|
|
84
108
|
end
|
85
109
|
|
@@ -103,14 +103,25 @@ String.class_eval do
|
|
103
103
|
aDefault
|
104
104
|
end
|
105
105
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
106
|
+
URLIZE_PATTERN_PS = /[ \\\(\)\[\]]/
|
107
|
+
URLIZE_EXTENSIONS = %w(html htm jpg jpeg png gif bmp mov avi mp3 zip pdf css js doc xdoc)
|
108
|
+
|
109
|
+
# aKeepExtensions may be an array of extensions to keep, or :none (will remove periods) or :all (any extension <= 4 chars)
|
110
|
+
def urlize(aSlashChar='+',aKeepExtensions=URLIZE_EXTENSIONS)
|
110
111
|
return self if self.empty?
|
111
|
-
result = self.gsub(URLIZE_PATTERN_PS,'-').downcase
|
112
|
+
result = self.gsub(URLIZE_PATTERN_PS,'-').downcase
|
113
|
+
ext = nil
|
114
|
+
if (aKeepExtensions!=:none) && last_dot = result.rindex('.')
|
115
|
+
if (ext_len = result.length-last_dot-1) <= 4 # preserve extension without dot if <= 4 chars long
|
116
|
+
ext = result[last_dot+1..-1]
|
117
|
+
ext = nil unless aKeepExtensions==:all || (aKeepExtensions.is_a?(Array) && aKeepExtensions.include?(ext))
|
118
|
+
result = result[0,last_dot] if ext
|
119
|
+
end
|
120
|
+
end
|
121
|
+
result = result.gsub(/[^a-z0-9\_\-+~\/]/,'').sub(/-+$/,'').sub(/^-+/,'')
|
112
122
|
result.gsub!('/',aSlashChar) unless aSlashChar=='/'
|
113
123
|
result.gsub!(/-{2,}/,'-')
|
124
|
+
result += '.'+ext if ext
|
114
125
|
result
|
115
126
|
end
|
116
127
|
|
@@ -159,6 +170,9 @@ String.class_eval do
|
|
159
170
|
crc
|
160
171
|
end
|
161
172
|
|
173
|
+
def has_tags?
|
174
|
+
index(/<[a-zA-Z\-:0-9]+(\b|>)/) && (index('/>') || index('</')) # contains an opening and closing tag
|
175
|
+
end
|
162
176
|
|
163
177
|
end
|
164
178
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buzzcore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 2
|
10
|
+
version: 0.6.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- buzzware
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-07 00:00:00 +08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|