dohruby 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/doh/core/date.rb +7 -3
- data/lib/doh/core/string.rb +20 -0
- data/lib/doh/crypt.rb +1 -0
- data/lib/doh/crypt/3des.rb +21 -0
- data/lib/doh/mysql/current_date.rb +8 -0
- data/lib/doh/mysql/handle.rb +1 -1
- data/lib/doh/util/doh_socket.rb +1 -0
- data/lib/doh/util/time_util.rb +4 -0
- data/test/core/tc_string.rb +6 -0
- metadata +5 -6
data/lib/doh/core/date.rb
CHANGED
@@ -71,7 +71,7 @@ class Date
|
|
71
71
|
end
|
72
72
|
|
73
73
|
class DateTime
|
74
|
-
|
74
|
+
DOHRUBY_SECONDS_IN_DAY = (24 * 60 * 60).freeze
|
75
75
|
|
76
76
|
def self.zow
|
77
77
|
obj = now
|
@@ -87,7 +87,7 @@ class DateTime
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def add_seconds(seconds)
|
90
|
-
self + Rational(seconds,
|
90
|
+
self + Rational(seconds, DOHRUBY_SECONDS_IN_DAY)
|
91
91
|
end
|
92
92
|
|
93
93
|
def sub_seconds(seconds)
|
@@ -96,6 +96,10 @@ class DateTime
|
|
96
96
|
|
97
97
|
# subtract another DateTime object, return difference in seconds
|
98
98
|
def sub_dt(other)
|
99
|
-
((self - other) *
|
99
|
+
((self - other) * DOHRUBY_SECONDS_IN_DAY).to_i
|
100
|
+
end
|
101
|
+
|
102
|
+
def make_datetime
|
103
|
+
self
|
100
104
|
end
|
101
105
|
end
|
data/lib/doh/core/string.rb
CHANGED
@@ -76,4 +76,24 @@ class String
|
|
76
76
|
result
|
77
77
|
end
|
78
78
|
|
79
|
+
def hex_encode
|
80
|
+
bytes.to_a.collect do |byte|
|
81
|
+
"%02x" % byte
|
82
|
+
end.join
|
83
|
+
end
|
84
|
+
|
85
|
+
def hex_decode
|
86
|
+
byte_array = []
|
87
|
+
upcase.chars.each_slice(2) do |slice|
|
88
|
+
byte_array.push(hex_to_int(slice[0].getbyte(0))*16 + hex_to_int(slice[1].getbyte(0)))
|
89
|
+
end
|
90
|
+
byte_array.pack('c*')
|
91
|
+
end
|
92
|
+
|
93
|
+
private
|
94
|
+
def hex_to_int(byte)
|
95
|
+
return byte - 48 if byte < 60
|
96
|
+
return byte - 55
|
97
|
+
end
|
98
|
+
|
79
99
|
end
|
data/lib/doh/crypt.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'doh/crypt/3des'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
3
|
+
module DohCrypt
|
4
|
+
def self.encrypt3des(key, str)
|
5
|
+
des = OpenSSL::Cipher::Cipher.new('des-ede3')
|
6
|
+
des.encrypt
|
7
|
+
des.key = key
|
8
|
+
result = des.update(str)
|
9
|
+
result << des.final
|
10
|
+
result
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.decrypt3des(key, str)
|
14
|
+
des = OpenSSL::Cipher::Cipher.new('des-ede3')
|
15
|
+
des.decrypt
|
16
|
+
des.key = key
|
17
|
+
result = des.update(str)
|
18
|
+
result << des.final
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'doh/util/current_date'
|
2
2
|
require 'doh/mysql/db_date'
|
3
|
+
require 'doh/mysql/parse'
|
3
4
|
|
4
5
|
module DohDb
|
5
6
|
|
@@ -11,4 +12,11 @@ def self.current_datetime_db
|
|
11
12
|
Doh::current_datetime(DohDb::now)
|
12
13
|
end
|
13
14
|
|
15
|
+
def self.server_datetime
|
16
|
+
retval = DohDb::select_field("SELECT #{DohDb::current_datetime_db.to_sql}")
|
17
|
+
# if there is a fake datetime right now, will need to parse it
|
18
|
+
retval = DohDb::parse_datetime(retval) if retval.is_a?(String)
|
19
|
+
retval
|
20
|
+
end
|
21
|
+
|
14
22
|
end
|
data/lib/doh/mysql/handle.rb
CHANGED
@@ -48,7 +48,7 @@ class Handle
|
|
48
48
|
|
49
49
|
def update_hash(hash, table, primary_key_value, primary_key_name)
|
50
50
|
items = hash.keys.collect {|key| key + ' = ' + hash[key].to_sql}
|
51
|
-
query("UPDATE #{table} SET #{items.join(', ')} WHERE #{primary_key_name} = #{primary_key_value}")
|
51
|
+
query("UPDATE #{table} SET #{items.join(', ')} WHERE #{primary_key_name} = #{primary_key_value.to_sql}")
|
52
52
|
end
|
53
53
|
|
54
54
|
def insert(statement)
|
data/lib/doh/util/doh_socket.rb
CHANGED
data/lib/doh/util/time_util.rb
CHANGED
data/test/core/tc_string.rb
CHANGED
@@ -106,6 +106,12 @@ class TC_core_string < Test::Unit::TestCase
|
|
106
106
|
assert_equal("foo blah", " foo\t\t\t\tblah ".normalize_all_whitespace)
|
107
107
|
assert_equal("foo blah", "\r\n\t\t\tfoo\t\r\n \r\n\r\n\r\nblah\t\t\t\t".normalize_all_whitespace)
|
108
108
|
end
|
109
|
+
|
110
|
+
def test_hex_encode
|
111
|
+
assert_equal("smoeblah", "smoeblah".hex_encode.hex_decode)
|
112
|
+
assert_equal("", "".hex_encode.hex_decode)
|
113
|
+
end
|
114
|
+
|
109
115
|
end
|
110
116
|
|
111
117
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dohruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 27
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
8
|
+
- 5
|
9
|
+
version: 0.3.5
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Makani & Kem Mason
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-12-29 00:00:00 +13:00
|
19
18
|
default_executable:
|
20
19
|
dependencies: []
|
21
20
|
|
@@ -79,6 +78,8 @@ files:
|
|
79
78
|
- lib/doh/core/socket.rb
|
80
79
|
- lib/doh/core/string.rb
|
81
80
|
- lib/doh/core.rb
|
81
|
+
- lib/doh/crypt/3des.rb
|
82
|
+
- lib/doh/crypt.rb
|
82
83
|
- lib/doh/data/basic.rb
|
83
84
|
- lib/doh/data/bulk.rb
|
84
85
|
- lib/doh/data/catalog.rb
|
@@ -233,7 +234,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
234
|
requirements:
|
234
235
|
- - ">="
|
235
236
|
- !ruby/object:Gem::Version
|
236
|
-
hash: 3
|
237
237
|
segments:
|
238
238
|
- 0
|
239
239
|
version: "0"
|
@@ -242,7 +242,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
requirements:
|
243
243
|
- - ">="
|
244
244
|
- !ruby/object:Gem::Version
|
245
|
-
hash: 3
|
246
245
|
segments:
|
247
246
|
- 0
|
248
247
|
version: "0"
|