rom-sql 2.3.0 → 2.4.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
- SHA1:
3
- metadata.gz: a1b126e654068572dfe518a3f20c6b9765e81034
4
- data.tar.gz: 24ca2db041cb3fa88c09a158108bac16eda8b59b
2
+ SHA256:
3
+ metadata.gz: 3c85bad1904593cc81ceecc277c2dd0bdebbe452815f366b55a016d9b4dc9e0c
4
+ data.tar.gz: 716ab6775db7fbcb1e7cf4fe88d109a8a9ee0c66ed905b6cb07a26926ee11c0f
5
5
  SHA512:
6
- metadata.gz: e9a57e3e5cda1c2935d983270e366535f934740ee0a0f20ed849c9be8bb4915c143324449726271e5d7b495a1db79f41ee4a389fbe73dceeb3ff5b02bfc0237f
7
- data.tar.gz: '0873247af106241abb709249a3a2bd4fcb8d11708cfbdeb6610cebd2d5175c1d279c136e920db767cc3ecf80882ba8972c252d64c75e9b713393b547edbb47ac'
6
+ metadata.gz: ebc1ab0de6e3a30be1d42b0c6abf8e162cefdbf7a8a9bf00eda79689c85b44353cb8b2a30b016f4f0b37ea75206677f67ec1a60833afc344ba898e6ee7fd5e7d
7
+ data.tar.gz: fbbd991e67b153dd2899159eb4c3ea6f1aae0682f0496bc1955c368479b78956e15076d41b2a96803791457f01b4ad2b0ed9fdf3161278456cb8386d83b9eb8f
@@ -1,3 +1,12 @@
1
+ ## v2.4.0 2018-02-18
2
+
3
+ ### Added
4
+
5
+ * Support for functions with `Any` return type (GustavoCaso)
6
+ * New `Relation#as_hash` method (GustavoCaso)
7
+
8
+ [Compare v2.3.0...v2.4.0](https://github.com/rom-rb/rom-sql/compare/v2.3.0...v2.4.0)
9
+
1
10
  ## v2.3.0 2017-11-17
2
11
 
3
12
  ### Added
@@ -62,7 +62,7 @@ module ROM
62
62
 
63
63
  # Upsert command
64
64
  #
65
- # The command beign called attempts to insert a record and
65
+ # The command being called attempts to insert a record and
66
66
  # if the inserted row would violate a unique constraint
67
67
  # updates the conflicting row (or silently does nothing).
68
68
  # A very important implementation detail is that the whole operation
@@ -23,6 +23,22 @@ module ROM
23
23
  ::ROM::SQL::Attribute.new(type(:string)).meta(sql_expr: expr)
24
24
  end
25
25
 
26
+ # Return a SQL function with value `Any`
27
+ #
28
+ # @example
29
+ # users.select { function(:count, :id).as(:total) }
30
+ #
31
+ # @param [Symbol] name SQL function
32
+ # @param [Symbol] attr
33
+ #
34
+ # @return [Rom::SQL::Function]
35
+ #
36
+ # @api public
37
+ def function(name, attr)
38
+ ::ROM::SQL::Function.new(::ROM::Types::Any, schema: schema).public_send(name, attr)
39
+ end
40
+ alias_method :f, :function
41
+
26
42
  # @api private
27
43
  def respond_to_missing?(name, include_private = false)
28
44
  super || type(name)
@@ -919,6 +919,24 @@ module ROM
919
919
  end
920
920
  end
921
921
 
922
+ # Returns hash with all tuples being
923
+ # the key of each the provided attribute
924
+ #
925
+ # @example default use primary_key
926
+ # users.as_hash
927
+ # # {1 => {id: 1, name: 'Jane'}}
928
+ #
929
+ # @example using other attribute
930
+ # users.as_hash(:name)
931
+ # # {'Jane' => {id: 1, name: 'Jane'}}
932
+ #
933
+ # @return [Hash]
934
+ #
935
+ # @api public
936
+ def as_hash(attribute = primary_key)
937
+ dataset.as_hash(attribute)
938
+ end
939
+
922
940
  private
923
941
 
924
942
  # Build a locking clause
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module SQL
3
- VERSION = '2.3.0'.freeze
3
+ VERSION = '2.4.0'.freeze
4
4
  end
5
5
  end
@@ -5,9 +5,10 @@ module ROM
5
5
  # Specialized wrap relation for SQL
6
6
  #
7
7
  # This type of relations is returned when using `Relation#wrap` and it uses
8
- # a join, unlike `Relation#combine`, which means a relation is restricted
9
- # only to tuples which have associated tuples. It should be used in cases
10
- # where you want to rely on this restriction.
8
+ # a join, unlike `Relation#combine` which makes separate queries. This
9
+ # means a relation is restricted only to tuples which have associated
10
+ # tuples, so it should be used in cases where you want to rely on this
11
+ # restriction.
11
12
  #
12
13
  # @api public
13
14
  class Wrap < Relation::Wrap
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-17 00:00:00.000000000 Z
11
+ date: 2018-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -239,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
239
  version: '0'
240
240
  requirements: []
241
241
  rubyforge_project:
242
- rubygems_version: 2.6.13
242
+ rubygems_version: 2.7.4
243
243
  signing_key:
244
244
  specification_version: 4
245
245
  summary: SQL databases support for ROM