hq-graphql 2.1.8 → 2.1.9

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: 2b3620be84fad5d620dfb18c0f51bd0cf726671b49320ec1910bd534ef31d569
4
- data.tar.gz: 8974a6d0e3aa4dd0ad5e1dd37b0802c8b70d428365abfdb3342da4fffe66a0cb
3
+ metadata.gz: 981f1e51c20c41befde482f0ab312887f597727265508b2f8b4290420c91e2e1
4
+ data.tar.gz: 3038b46301c4b612a99988ba7fe9aa66aadc401a7a8a4ea8a959b3e8c23e8743
5
5
  SHA512:
6
- metadata.gz: c67704e43e662552da1818d5f53fcd5acd3bb38da62fb556fac427d590bf002906e58a4a39d7141bc33f22c689c76c9fb1b33cf7b155f9590df0ea9ba8f056b6
7
- data.tar.gz: f82c433ab64e9e5d34cb62f51464811621242de62220294766107fe96ad75cbaa665b69a4c99042f5a063c9f22106c1a980dbeee037de3c3e7353c4dd2cd41d0
6
+ metadata.gz: 30e473198ed03eaf14a9a4c9730c2a5816f5914dc745ef1fe0acc0b8e16f6a0b9b1f80bb2861fcb7bec16a5a0860bca1197b54892450686e545ef04f4f141611
7
+ data.tar.gz: e4b0b57d5674e48fe75ec61de48cf484425b504500b1e201322650211856de5557da6353f95907d77bb41bf0b41ef52c0434349d805dc8b29fec27eb0182c57c
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  OneHQ GraphQL interface to [Ruby Graphql](https://github.com/rmosolgo/graphql-ruby).
4
4
 
5
- [![CircleCI](https://img.shields.io/circleci/project/github/OneHQ/hq-graphql.svg)](https://circleci.com/gh/OneHQ/hq-graphql/tree/master)
5
+ ![Test and Lint](https://github.com/OneHQ/hq-graphql/workflows/Test%20and%20Lint/badge.svg)
6
6
  [![GitHub tag](https://img.shields.io/github/tag/OneHQ/hq-graphql.svg)](https://github.com/OneHQ/hq-graphql)
7
7
 
8
8
  ## Configuration
@@ -80,6 +80,10 @@ module HQ
80
80
  end
81
81
  instance_eval(&block) if block
82
82
  end
83
+ when :has_one
84
+ field name, type, null: !auto_nil || !has_presence_validation?(association), klass: model_name do
85
+ extension FieldExtension::AssociationLoaderExtension, klass: klass
86
+ end
83
87
  else
84
88
  field name, type, null: !auto_nil || !association_required?(association), klass: model_name do
85
89
  extension FieldExtension::AssociationLoaderExtension, klass: klass
@@ -97,7 +101,11 @@ module HQ
97
101
  end
98
102
 
99
103
  def association_required?(association)
100
- !association.options[:optional] || model_klass.validators.any? do |validation|
104
+ !association.options[:optional] || has_presence_validation?(association)
105
+ end
106
+
107
+ def has_presence_validation?(association)
108
+ model_klass.validators.any? do |validation|
101
109
  next unless validation.class == ActiveRecord::Validations::PresenceValidator
102
110
  validation.attributes.any? { |a| a.to_s == association.name.to_s }
103
111
  end
@@ -15,6 +15,11 @@ module HQ
15
15
  add_reflection(name, scope, options, :belongs_to, block)
16
16
  end
17
17
 
18
+ def has_one(name, scope = nil, through: nil, **options, &block)
19
+ raise TypeError, "has_one through is unsupported" if through
20
+ add_reflection(name, scope, options, :has_one, block)
21
+ end
22
+
18
23
  def has_many(name, scope = nil, through: nil, **options, &block)
19
24
  raise TypeError, "has_many through is unsupported" if through
20
25
  add_reflection(name, scope, options, :has_many, block)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module HQ
4
4
  module GraphQL
5
- VERSION = "2.1.8"
5
+ VERSION = "2.1.9"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hq-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.8
4
+ version: 2.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Jones
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-22 00:00:00.000000000 Z
11
+ date: 2020-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -285,9 +285,9 @@ require_paths:
285
285
  - lib
286
286
  required_ruby_version: !ruby/object:Gem::Requirement
287
287
  requirements:
288
- - - ">="
288
+ - - "~>"
289
289
  - !ruby/object:Gem::Version
290
- version: '0'
290
+ version: '2.6'
291
291
  required_rubygems_version: !ruby/object:Gem::Requirement
292
292
  requirements:
293
293
  - - ">="