pg_conn 0.12.1 → 0.13.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pg_conn/version.rb +1 -1
- data/lib/pg_conn.rb +29 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30f37deaa02a7ce6c10c42be3b5432ac3e80c21fd82ec8a0d33d10cfc29ad904
|
4
|
+
data.tar.gz: b78696618951f214e39f5e075ad1d657e86d0d5dda691b5f9b081e51b45b40a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68bab843ada37c8214bd7281bda915a6ec509dd337b4cae40384308d60408bfdc7de4abd10eefc94123248d438db4f01942ba7bdc2fd4e17f3dd28096e07aaac
|
7
|
+
data.tar.gz: 1a64027e97471f53ab114f617de495be2f4adab7e64cd30cf63b91a9a698462cae13531b990c3f96241d008e7a343b7163bcde8bd1d0371efb1935a741215384
|
data/lib/pg_conn/version.rb
CHANGED
data/lib/pg_conn.rb
CHANGED
@@ -44,11 +44,11 @@ module PgConn
|
|
44
44
|
|
45
45
|
# Name of user
|
46
46
|
def user() @pg_connection.user end
|
47
|
-
alias_method :username, :user # Obsolete
|
47
|
+
alias_method :username, :user # Obsolete FIXME Is it?
|
48
48
|
|
49
49
|
# Name of database
|
50
50
|
def name() @pg_connection.db end
|
51
|
-
alias_method :database, :name # Obsolete
|
51
|
+
alias_method :database, :name # Obsolete FIXME Is it?
|
52
52
|
|
53
53
|
# Database manipulation methods: #exist?, #create, #drop, #list
|
54
54
|
attr_reader :rdbms
|
@@ -253,7 +253,7 @@ module PgConn
|
|
253
253
|
end
|
254
254
|
|
255
255
|
# Quote array as a parenthesis-enclosed list of identifiers
|
256
|
-
def quote_identifier_list(
|
256
|
+
def quote_identifier_list(identifiers) = "(#{identifiers.map { quote_identifier(_1) }.join(', ')})"
|
257
257
|
|
258
258
|
# Quote array as a parenthesis-enclosed list of literals
|
259
259
|
def quote_literal_list(values) = "(#{values.map { quote_literal(_1) }.join(', ')})"
|
@@ -547,6 +547,32 @@ module PgConn
|
|
547
547
|
end
|
548
548
|
end
|
549
549
|
|
550
|
+
# Insert record(s) in a table. Returns the id of the inserted record(s)
|
551
|
+
def insert(schema = nil, table, array_or_hash)
|
552
|
+
table = [schema, table].compact.join(".")
|
553
|
+
is_array = array_or_hash.is_a?(Array)
|
554
|
+
array = is_array ? array_or_hash : [array_or_hash]
|
555
|
+
identifiers = quote_identifier_list(array.first.keys)
|
556
|
+
literals = array.map { |hash| quote_literal_list(hash.values) }.join(", ")
|
557
|
+
method = (is_array ? :values : :value)
|
558
|
+
self.send method, %(insert into #{table} #{identifiers} values #{literals} returning id)
|
559
|
+
end
|
560
|
+
|
561
|
+
# Update record(s)
|
562
|
+
def update(schema = nil, table, expr, hash)
|
563
|
+
table = [schema, table].compact.join(".")
|
564
|
+
assignments = hash.map { |k,v| "#{k} = #{quote_literal(v)}" }.join(", ")
|
565
|
+
constraint = (expr.is_a?(String) ? expr : "id = #{quote_literal(expr)}")
|
566
|
+
exec %(update #{table} set #{assignments} where #{constraint})
|
567
|
+
end
|
568
|
+
|
569
|
+
# Delete record(s)
|
570
|
+
def delete(schema = nil, table, expr)
|
571
|
+
table = [schema, table].compact.join(".")
|
572
|
+
constraint = (expr.is_a?(String) ? expr : "id = #{quote_literal(expr)}")
|
573
|
+
exec %(delete from #{table} where #{constraint})
|
574
|
+
end
|
575
|
+
|
550
576
|
# Execute SQL statement(s) in a transaction and return the number of
|
551
577
|
# affected records (if any). Also sets #timestamp unless a transaction is
|
552
578
|
# already in progress. The +sql+ argument can be a command (String) or an
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_conn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|