pg_conn 0.52.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4eb14bc0e0da731fe50455d9a2a7826da327d2ceb22d7a87b902fe0e5e2b38a8
4
- data.tar.gz: a7769e72c3477e973846dffb34946b5ff234c3810dc35ae9cd239cf95e5b3fb6
3
+ metadata.gz: c5aa64f79bd6dd3ab976066e6a91973534baf9b7008bb3cf9b552b45fce72f11
4
+ data.tar.gz: 052e03a7abd3c26601cb5ca53cb3d25b82513991359662cdf021d7874a13218a
5
5
  SHA512:
6
- metadata.gz: 55b80c0204381dc399d2edeeaddeb505c6b12f98fabf9ff81e7003deec55229a7c8db58b3bbb90a452532f90345df79a9d5e89faa654d94c010437d71750e57f
7
- data.tar.gz: 77fbabcf5e0eaf85b0bfe487b5f721dc7ee7b5cd7190cdfa32fafc9aa86a664f377f6557860c9a037329a24ae9e9d436e061daf95846863f2725876b5a7c3b0c
6
+ metadata.gz: 787b706c85068e117d9f82ecb8d29cfbd3308d86a1d546c7d58aecf5416c279a44719de759002e75bc0add1628e775827527d508595d9269153cc5c863728b3d
7
+ data.tar.gz: ef4a94a3aa24b5b6d3acf85f8a6316e9bed68e54da0f5174332867be268171407c183c8838d8d60e1a9348ba9b4411c279f41ec66660eb3bf1cf7e4adb6c7ba7
@@ -168,6 +168,12 @@ module PgConn
168
168
  end
169
169
  end
170
170
 
171
+ def update_serial(schema, table)
172
+ uid = "#{schema}.#{table}"
173
+ max_id = conn.value "select max(id) from #{uid}"
174
+ set_serial(schema, table, max_id)
175
+ end
176
+
171
177
  private
172
178
  def relation_exist_query(schema, relation, kind: nil)
173
179
  kind_sql_list = "'" + (kind.nil? ? %w(r f v m) : Array(kind).flatten).join("', '") + "'"
@@ -1,3 +1,3 @@
1
1
  module PgConn
2
- VERSION = "0.52.0"
2
+ VERSION = "0.54.0"
3
3
  end
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. It is an error if the query
690
- # returns more than one record. It blows up if a column name is not a valid
691
- # ruby symbol
692
- def struct(*query)
693
- OpenStruct.new(**record(parse_query *query))
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
- OpenStruct.new(**args)
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| OpenStruct.new(**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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_conn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.52.0
4
+ version: 0.54.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen