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 CHANGED
@@ -71,7 +71,7 @@ class Date
71
71
  end
72
72
 
73
73
  class DateTime
74
- SECONDS_IN_DAY = (24 * 60 * 60).freeze
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, SECONDS_IN_DAY)
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) * SECONDS_IN_DAY).to_i
99
+ ((self - other) * DOHRUBY_SECONDS_IN_DAY).to_i
100
+ end
101
+
102
+ def make_datetime
103
+ self
100
104
  end
101
105
  end
@@ -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
@@ -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)
@@ -10,6 +10,7 @@ class DohSocket
10
10
  attr_accessor :timeout
11
11
 
12
12
  def initialize(server, port)
13
+ #note -- this may hang -- should change to nonblocking also if you're going to use this
13
14
  @sock = TCPSocket.new(server, port)
14
15
  @timeout = 300
15
16
  end
@@ -6,4 +6,8 @@ def self.time_block
6
6
  return Time.now - start_time
7
7
  end
8
8
 
9
+ def self.seconds_to_days(seconds)
10
+ seconds.to_f / DateTime::DOHRUBY_SECONDS_IN_DAY.to_f
11
+ end
12
+
9
13
  end
@@ -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
- - 4
10
- version: 0.3.4
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-10-26 00:00:00 +13:00
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"