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 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"