pg_conn 0.53.0 → 0.54.0
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.
- checksums.yaml +4 -4
- data/lib/pg_conn/version.rb +1 -1
- data/lib/pg_conn.rb +17 -9
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c5aa64f79bd6dd3ab976066e6a91973534baf9b7008bb3cf9b552b45fce72f11
|
|
4
|
+
data.tar.gz: 052e03a7abd3c26601cb5ca53cb3d25b82513991359662cdf021d7874a13218a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 787b706c85068e117d9f82ecb8d29cfbd3308d86a1d546c7d58aecf5416c279a44719de759002e75bc0add1628e775827527d508595d9269153cc5c863728b3d
|
|
7
|
+
data.tar.gz: ef4a94a3aa24b5b6d3acf85f8a6316e9bed68e54da0f5174332867be268171407c183c8838d8d60e1a9348ba9b4411c279f41ec66660eb3bf1cf7e4adb6c7ba7
|
data/lib/pg_conn/version.rb
CHANGED
data/lib/pg_conn.rb
CHANGED
|
@@ -686,23 +686,31 @@ module PgConn
|
|
|
686
686
|
r.each.to_a.map(&:to_h)
|
|
687
687
|
end
|
|
688
688
|
|
|
689
|
-
# Return a record as a OpenStruct object
|
|
690
|
-
#
|
|
691
|
-
# ruby symbol
|
|
692
|
-
|
|
693
|
-
|
|
689
|
+
# Return a record as a OpenStruct object or as a :klass object if present.
|
|
690
|
+
# It is an error if the query returns more than one record and it blows up
|
|
691
|
+
# if a column name is not a valid ruby symbol. The :klass argument should
|
|
692
|
+
# be a class derived from OpenStruct. Eg.
|
|
693
|
+
#
|
|
694
|
+
# class Person
|
|
695
|
+
# def name = first_name + " " + last_name
|
|
696
|
+
# end
|
|
697
|
+
# person = db.struct "persons", 42, klass: Person
|
|
698
|
+
# puts person.name => "Alice Brock"
|
|
699
|
+
#
|
|
700
|
+
def struct(*query, klass: OpenStruct)
|
|
701
|
+
klass.new(**record(parse_query *query))
|
|
694
702
|
end
|
|
695
703
|
|
|
696
704
|
# Like #struct but returns nil if no record was found
|
|
697
|
-
def struct?(*query)
|
|
705
|
+
def struct?(*query, klass: OpenStruct)
|
|
698
706
|
args = record?(parse_query *query)
|
|
699
707
|
return nil if args.nil?
|
|
700
|
-
|
|
708
|
+
klass.new(**args)
|
|
701
709
|
end
|
|
702
710
|
|
|
703
711
|
# Return an array of OpenStruct objects
|
|
704
|
-
def structs(*query)
|
|
705
|
-
records(parse_query *query).map { |record|
|
|
712
|
+
def structs(*query, klass: OpenStruct)
|
|
713
|
+
records(parse_query *query).map { |record| klass.new(**record) }
|
|
706
714
|
end
|
|
707
715
|
|
|
708
716
|
# Return a hash from the record id column to record (hash from column name
|