db-mariadb 0.8.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da745fa5ee09cf5597517b05fed1addde79acd2806e7100478fc53c9bb17cb0a
4
- data.tar.gz: af66b7b339684d530a30c698554c8bf44c3db0190bf2d65c947d7fa2ba012cda
3
+ metadata.gz: 6f92a4fdce0f6c3eda8421059f94cf4126b6343a0d5ac5b811d770cab857248d
4
+ data.tar.gz: 3b3195d019149d21e7b7f0faf99eb8ed87c8b84fa609f44fd46898a820803507
5
5
  SHA512:
6
- metadata.gz: 28697c26a2fa1336a7902510fcf89815b1b8092ce9e109ba376321ea4ab12c66e19ef6c5bf9490a57259bc0452c3e9c70bebef62a8694f8e76388a793b6eb9c8
7
- data.tar.gz: de7b57100c80451e8192a7b0b4f59635fa2b7ee0ecac8c305c08be4cbb1fe0fc3f920d3d68d6d695856855759377175790760e75145fa22a7316b45991c26802
6
+ metadata.gz: 71ec49f4715f988cf51da9555a532d1cc2a1b2f6c3825f3d5066431eb37bafcbd7173efdf177655fbb1fdc5cc67530087584d7e5fee8bcdbc4b955adf12b59c2
7
+ data.tar.gz: 8559691086b66b53920e7789b19b711dfd568f5060e0d9e5cf1740c2e3622ffc9ab766e78eabc21d791c3d1c45e849cbb7e24b1f5708baadc59876d13e9a11e1
data/lib/.DS_Store CHANGED
Binary file
@@ -49,6 +49,10 @@ module DB
49
49
 
50
50
  def append_literal(value, buffer = String.new)
51
51
  case value
52
+ when Time, DateTime
53
+ append_string(value.utc.strftime('%Y-%m-%d %H:%M:%S'), buffer)
54
+ when Date
55
+ append_string(value.strftime('%Y-%m-%d'), buffer)
52
56
  when Numeric
53
57
  buffer << value.to_s
54
58
  when TrueClass
@@ -61,6 +61,7 @@ module DB
61
61
 
62
62
  DEFAULT_TYPES = {
63
63
  decimal: Types::Decimal,
64
+ boolean: Types::Boolean,
64
65
  tiny: Types::Integer,
65
66
  short: Types::Integer,
66
67
  long: Types::Integer,
@@ -74,7 +75,7 @@ module DB
74
75
  year: Types::Integer,
75
76
  newdate: Types::DateTime,
76
77
  bit: Types::Integer,
77
- json: JSON,
78
+ json: Types::JSON,
78
79
  newdecimal: Types::Decimal,
79
80
  enum: Types::Symbol,
80
81
  set: Types::Integer,
@@ -105,12 +106,24 @@ module DB
105
106
  :extension, :pointer,
106
107
  )
107
108
 
109
+ def boolean?
110
+ self[:length] == 1 && (self[:type] == :tiny || self[:type] == :long)
111
+ end
112
+
108
113
  def name
109
114
  self[:name]
110
115
  end
111
116
 
112
117
  def type
113
- self[:type]
118
+ if boolean?
119
+ :boolean
120
+ else
121
+ self[:type]
122
+ end
123
+ end
124
+
125
+ def inspect
126
+ "\#<#{self.class} name=#{self.name} type=#{self.type} length=#{self[:length]}>"
114
127
  end
115
128
  end
116
129
  end
@@ -113,7 +113,7 @@ module DB
113
113
  results = []
114
114
 
115
115
  self.each do |row|
116
- results << yield row
116
+ results << yield(row)
117
117
  end
118
118
 
119
119
  return results
@@ -29,33 +29,56 @@ module DB
29
29
  module Types
30
30
  module Integer
31
31
  def self.parse(string)
32
- Integer(string)
32
+ Integer(string) if string
33
+ end
34
+ end
35
+
36
+ module Boolean
37
+ def self.parse(string)
38
+ case string
39
+ when '0'
40
+ false
41
+ when '1'
42
+ true
43
+ when nil
44
+ nil
45
+ else
46
+ Integer(string)
47
+ end
33
48
  end
34
49
  end
35
50
 
36
51
  module Decimal
37
52
  def self.parse(string)
38
- BigDecimal(string)
53
+ BigDecimal(string) if string
39
54
  end
40
55
  end
41
56
 
42
57
  module Float
43
58
  def self.parse(string)
44
- Float(string)
59
+ Float(string) if string
45
60
  end
46
61
  end
47
62
 
48
63
  module Symbol
49
64
  def self.parse(string)
50
- string.to_sym
65
+ string&.to_sym
51
66
  end
52
67
  end
53
68
 
54
69
  module DateTime
55
70
  def self.parse(string)
56
- parts = string.split(/[\-\s:]/)
57
-
58
- return Time.utc(*parts)
71
+ if string
72
+ parts = string.split(/[\-\s:]/)
73
+
74
+ return Time.utc(*parts)
75
+ end
76
+ end
77
+ end
78
+
79
+ module JSON
80
+ def self.parse(string)
81
+ ::JSON.parse(string, symbolize_names: true) if string
59
82
  end
60
83
  end
61
84
  end
@@ -20,6 +20,6 @@
20
20
 
21
21
  module DB
22
22
  module MariaDB
23
- VERSION = "0.8.2"
23
+ VERSION = "0.9.3"
24
24
  end
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: db-mariadb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-04 00:00:00.000000000 Z
11
+ date: 2021-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-module
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
- rubygems_version: 3.2.3
147
+ rubygems_version: 3.2.15
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: An event-driven interface for MariaDB and MySQL servers.