dohruby 0.3.4 → 0.3.5
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/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"
|