db-mariadb 0.9.3 → 0.10.0

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: 6f92a4fdce0f6c3eda8421059f94cf4126b6343a0d5ac5b811d770cab857248d
4
- data.tar.gz: 3b3195d019149d21e7b7f0faf99eb8ed87c8b84fa609f44fd46898a820803507
3
+ metadata.gz: ab51802cd32f07df19ec06d20387a41b5ae0e75997cfdf401b39d5e640aafc9f
4
+ data.tar.gz: '0982b11fde892f31b985aefb50b07fa59f884e4622acf9c573bbc466ef7cd713'
5
5
  SHA512:
6
- metadata.gz: 71ec49f4715f988cf51da9555a532d1cc2a1b2f6c3825f3d5066431eb37bafcbd7173efdf177655fbb1fdc5cc67530087584d7e5fee8bcdbc4b955adf12b59c2
7
- data.tar.gz: 8559691086b66b53920e7789b19b711dfd568f5060e0d9e5cf1740c2e3622ffc9ab766e78eabc21d791c3d1c45e849cbb7e24b1f5708baadc59876d13e9a11e1
6
+ metadata.gz: e71f4a60ca3502e579dd65f6d969dc4e468badec1e875bb3cd55c6ec6fd776b97003a510511e933bb9543fcbd4906dedb870a68a0bc0b108a24cc889bb120f95
7
+ data.tar.gz: 29f11c2551d1ba41e4ae5438100763f81825072c7c84a7ded4567abd02581a944ba2c621f1a771fd81c0e7379570618e0818c9fafd6ee6f0e23a3c917dc930bf
checksums.yaml.gz.sig ADDED
@@ -0,0 +1 @@
1
+ ���b,l��`1,o��~��T-e�Z�^�[�j�P�L�_��~�����L�D]Āչ��T��|�.Ҏy��Sl.Ƚ��)�I~@��DSNM��A���!E���À,�a�����-� 0��x�}Ѭ�����/n����K�^�cx3馥���X�(��q��f��� �̑5�yMM��+~1���rgf�>���8������I��ˈ ד#`ثQ�y��mۈ��J�{�zd<�v��4:���WF/�0�q����s�����x���N��CaO��qJ���h�[Z9)�����5�yT�6����T�n��@3f���4�f�-����(�%�0�oX�;d�Ľ��V'Q�_�&D ���&�ɠN_�rE>.
@@ -41,6 +41,10 @@ module DB
41
41
  super
42
42
  end
43
43
 
44
+ def types
45
+ @native.types
46
+ end
47
+
44
48
  def append_string(value, buffer = String.new)
45
49
  buffer << "'" << @native.escape(value) << "'"
46
50
 
@@ -60,25 +60,35 @@ module DB
60
60
  ])
61
61
 
62
62
  DEFAULT_TYPES = {
63
- decimal: Types::Decimal,
64
- boolean: Types::Boolean,
65
- tiny: Types::Integer,
66
- short: Types::Integer,
67
- long: Types::Integer,
68
- float: Types::Float,
69
- double: Types::Float,
70
- timestamp: Types::DateTime,
71
- longlong: Types::Integer,
72
- int24: Types::Integer,
73
- date: Date,
74
- datetime: Types::DateTime,
75
- year: Types::Integer,
76
- newdate: Types::DateTime,
77
- bit: Types::Integer,
78
- json: Types::JSON,
79
- newdecimal: Types::Decimal,
80
- enum: Types::Symbol,
81
- set: Types::Integer,
63
+ # Pseudo types:
64
+ primary_key: Types::Integer.new('BIGINT AUTO_INCREMENT PRIMARY KEY'),
65
+ foreign_key: Types::Integer.new('BIGINT'),
66
+ text: Types::Text.new("TEXT"),
67
+ string: Types::Text.new("VARCHAR(255)"),
68
+
69
+ # Aliases
70
+ smallint: Types::Integer.new("SHORT"),
71
+ integer: Types::Integer.new("INTEGER"),
72
+ bigint: Types::Integer.new("LONG"),
73
+
74
+ # Native types:
75
+ decimal: Types::Decimal.new,
76
+ boolean: Types::Boolean.new,
77
+ tiny: Types::Integer.new("TINY"),
78
+ short: Types::Integer.new("SHORT"),
79
+ long: Types::Integer.new("LONG"),
80
+ float: Types::Float.new,
81
+ double: Types::Float.new("DOUBLE"),
82
+ timestamp: Types::DateTime.new("TIMESTAMP"),
83
+ date: Types::Date.new,
84
+ datetime: Types::DateTime.new("DATETIME"),
85
+ year: Types::Integer.new("YEAR"),
86
+ newdate: Types::DateTime.new("DATETIME"),
87
+ bit: Types::Integer.new("BIT"),
88
+ json: Types::JSON.new,
89
+ newdecimal: Types::Decimal.new,
90
+ enum: Types::Symbol.new,
91
+ set: Types::Integer.new("SET"),
82
92
  }
83
93
 
84
94
  class Field < FFI::Struct
@@ -18,8 +18,6 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require 'ffi'
22
-
23
21
  require 'json'
24
22
  require 'bigdecimal'
25
23
 
@@ -27,14 +25,36 @@ module DB
27
25
  module MariaDB
28
26
  module Native
29
27
  module Types
30
- module Integer
31
- def self.parse(string)
28
+ class Text
29
+ def initialize(name = "TEXT")
30
+ @name = name
31
+ end
32
+
33
+ attr :name
34
+
35
+ def parse(string)
36
+ string
37
+ end
38
+ end
39
+
40
+ class Integer
41
+ def initialize(name = "INTEGER")
42
+ @name = name
43
+ end
44
+
45
+ attr :name
46
+
47
+ def parse(string)
32
48
  Integer(string) if string
33
49
  end
34
50
  end
35
51
 
36
- module Boolean
37
- def self.parse(string)
52
+ class Boolean
53
+ def name
54
+ "BOOLEAN"
55
+ end
56
+
57
+ def parse(string)
38
58
  case string
39
59
  when '0'
40
60
  false
@@ -48,26 +68,46 @@ module DB
48
68
  end
49
69
  end
50
70
 
51
- module Decimal
52
- def self.parse(string)
71
+ class Decimal
72
+ def name
73
+ "DECIMAL"
74
+ end
75
+
76
+ def parse(string)
53
77
  BigDecimal(string) if string
54
78
  end
55
79
  end
56
80
 
57
- module Float
58
- def self.parse(string)
81
+ class Float
82
+ def initialize(name = "FLOAT")
83
+ @name = name
84
+ end
85
+
86
+ attr :name
87
+
88
+ def parse(string)
59
89
  Float(string) if string
60
90
  end
61
91
  end
62
92
 
63
- module Symbol
64
- def self.parse(string)
93
+ class Symbol
94
+ def name
95
+ "ENUM"
96
+ end
97
+
98
+ def parse(string)
65
99
  string&.to_sym
66
100
  end
67
101
  end
68
102
 
69
- module DateTime
70
- def self.parse(string)
103
+ class DateTime
104
+ def initialize(name = "DATETIME")
105
+ @name = name
106
+ end
107
+
108
+ attr :name
109
+
110
+ def parse(string)
71
111
  if string
72
112
  parts = string.split(/[\-\s:]/)
73
113
 
@@ -76,8 +116,26 @@ module DB
76
116
  end
77
117
  end
78
118
 
79
- module JSON
80
- def self.parse(string)
119
+ class Date
120
+ def name
121
+ "DATE"
122
+ end
123
+
124
+ def parse(string)
125
+ if string
126
+ parts = string.split(/[\-\s:]/)
127
+
128
+ return Time.utc(*parts)
129
+ end
130
+ end
131
+ end
132
+
133
+ class JSON
134
+ def name
135
+ "JSON"
136
+ end
137
+
138
+ def parse(string)
81
139
  ::JSON.parse(string, symbolize_names: true) if string
82
140
  end
83
141
  end
@@ -20,6 +20,6 @@
20
20
 
21
21
  module DB
22
22
  module MariaDB
23
- VERSION = "0.9.3"
23
+ VERSION = "0.10.0"
24
24
  end
25
25
  end
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,43 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: db-mariadb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2021-05-30 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEhDCCAuygAwIBAgIBATANBgkqhkiG9w0BAQsFADA3MTUwMwYDVQQDDCxzYW11
14
+ ZWwud2lsbGlhbXMvREM9b3Jpb250cmFuc2Zlci9EQz1jby9EQz1uejAeFw0yMTA4
15
+ MTYwNjMzNDRaFw0yMjA4MTYwNjMzNDRaMDcxNTAzBgNVBAMMLHNhbXVlbC53aWxs
16
+ aWFtcy9EQz1vcmlvbnRyYW5zZmVyL0RDPWNvL0RDPW56MIIBojANBgkqhkiG9w0B
17
+ AQEFAAOCAY8AMIIBigKCAYEAyXLSS/cw+fXJ5e7hi+U/TeChPWeYdwJojDsFY1xr
18
+ xvtqbTTL8gbLHz5LW3QD2nfwCv3qTlw0qI3Ie7a9VMJMbSvgVEGEfQirqIgJXWMj
19
+ eNMDgKsMJtC7u/43abRKx7TCURW3iWyR19NRngsJJmaR51yGGGm2Kfsr+JtKKLtL
20
+ L188Wm3f13KAx7QJU8qyuBnj1/gWem076hzdA7xi1DbrZrch9GCRz62xymJlrJHn
21
+ 9iZEZ7AxrS7vokhMlzSr/XMUihx/8aFKtk+tMLClqxZSmBWIErWdicCGTULXCBNb
22
+ E/mljo4zEVKhlTWpJklMIhr55ZRrSarKFuW7en0+tpJrfsYiAmXMJNi4XAYJH7uL
23
+ rgJuJwSaa/dMz+VmUoo7VKtSfCoOI+6v5/z0sK3oT6sG6ZwyI47DBq2XqNC6tnAj
24
+ w+XmCywiTQrFzMMAvcA7rPI4F0nU1rZId51rOvvfxaONp+wgTi4P8owZLw0/j0m4
25
+ 8C20DYi6EYx4AHDXiLpElWh3AgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8E
26
+ BAMCBLAwHQYDVR0OBBYEFB6ZaeWKxQjGTI+pmz7cKRmMIywwMC4GA1UdEQQnMCWB
27
+ I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWB
28
+ I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEB
29
+ CwUAA4IBgQBVoM+pu3dpdUhZM1w051iw5GfiqclAr1Psypf16Tiod/ho//4oAu6T
30
+ 9fj3DPX/acWV9P/FScvqo4Qgv6g4VWO5ZU7z2JmPoTXZtYMunRAmQPFL/gSUc6aK
31
+ vszMHIyhtyzRc6DnfW2AiVOjMBjaYv8xXZc9bduniRVPrLR4J7ozmGLh4o4uJp7w
32
+ x9KCFaR8Lvn/r0oJWJOqb/DMAYI83YeN2Dlt3jpwrsmsONrtC5S3gOUle5afSGos
33
+ bYt5ocnEpKSomR9ZtnCGljds/aeO1Xgpn2r9HHcjwnH346iNrnHmMlC7BtHUFPDg
34
+ Ts92S47PTOXzwPBDsrFiq3VLbRjHSwf8rpqybQBH9MfzxGGxTaETQYOd6b4e4Ag6
35
+ y92abGna0bmIEb4+Tx9rQ10Uijh1POzvr/VTH4bbIPy9FbKrRsIQ24qDbNJRtOpE
36
+ RAOsIl+HOBTb252nx1kIRN5hqQx272AJCbCjKx8egcUQKffFVVCI0nye09v5CK+a
37
+ HiLJ8VOFx6w=
38
+ -----END CERTIFICATE-----
39
+ date: 2021-10-04 00:00:00.000000000 Z
12
40
  dependencies:
13
41
  - !ruby/object:Gem::Dependency
14
- name: ffi-module
42
+ name: async-io
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
- - - "~>"
45
+ - - ">="
18
46
  - !ruby/object:Gem::Version
19
- version: 0.3.0
47
+ version: '0'
20
48
  type: :runtime
21
49
  prerelease: false
22
50
  version_requirements: !ruby/object:Gem::Requirement
23
51
  requirements:
24
- - - "~>"
52
+ - - ">="
25
53
  - !ruby/object:Gem::Version
26
- version: 0.3.0
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
- name: async-io
56
+ name: ffi-module
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
- - - ">="
59
+ - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '0'
61
+ version: 0.3.0
34
62
  type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
- - - ">="
66
+ - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '0'
68
+ version: 0.3.0
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: async-rspec
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +95,7 @@ dependencies:
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: covered
98
+ name: bundler
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - ">="
@@ -81,7 +109,7 @@ dependencies:
81
109
  - !ruby/object:Gem::Version
82
110
  version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
- name: bundler
112
+ name: covered
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - ">="
@@ -114,7 +142,6 @@ executables: []
114
142
  extensions: []
115
143
  extra_rdoc_files: []
116
144
  files:
117
- - lib/.DS_Store
118
145
  - lib/db/mariadb.rb
119
146
  - lib/db/mariadb/adapter.rb
120
147
  - lib/db/mariadb/connection.rb
@@ -125,7 +152,7 @@ files:
125
152
  - lib/db/mariadb/native/result.rb
126
153
  - lib/db/mariadb/native/types.rb
127
154
  - lib/db/mariadb/version.rb
128
- homepage:
155
+ homepage: https://github.com/socketry/db-mariadb
129
156
  licenses:
130
157
  - MIT
131
158
  metadata: {}
@@ -144,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
171
  - !ruby/object:Gem::Version
145
172
  version: '0'
146
173
  requirements: []
147
- rubygems_version: 3.2.15
174
+ rubygems_version: 3.1.6
148
175
  signing_key:
149
176
  specification_version: 4
150
177
  summary: An event-driven interface for MariaDB and MySQL servers.
metadata.gz.sig ADDED
Binary file
data/lib/.DS_Store DELETED
Binary file