graphql-constraint-directive 0.1.0 → 0.1.2

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: 8dcfe5cdd5be3929090d4d214b4119d0786208adad5c8380a75054333c60beda
4
- data.tar.gz: 9097cd0d2ad15d328a48df9b0b748c4abc748d8c1e12ee6d9efacc8384d6712c
3
+ metadata.gz: 46bdc345b3060ac6b9c965350a9c5f9928246bdeb1805975228f9f42f69f87e4
4
+ data.tar.gz: af01415fd405937df061bd4dcc47a2f8a97c34f7d9b50de4e6446426940dc52b
5
5
  SHA512:
6
- metadata.gz: c707dcfdc2c01efd25d8a1b4f874dae370f849e76754927222232ea708e2958b6e38ad7e90c6890b0eff189d5e81be2726e0dc8df2c94e028162626e87fcb65c
7
- data.tar.gz: 99c61e31f353c5e5b1bfa7c5e74862492a3c074a1ae4ea300d5d5ff734d93bf2120bce5667e2cf2b8775ca26a0cc1a8a04850ccd6e66c5c50c06fe41ab42e9a2
6
+ metadata.gz: 6955147fb378004d1887725a8872b66b8a6fbbb94e7d45c0c4b948c2a3e58763299690b1367572b05f189b6a35f3dc6971e58b831337a2d65324ce91b0ecf690
7
+ data.tar.gz: 453cf6b76b66e6b4fa2830f39cade3186737177b09102fa61a3ec235af8be098af4dfdd5a3baf6e25637afa7e84ae39999f2fb3cf3a43d2ff97ce9d19088c0ec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- graphql-constraint-directive (0.1.0)
4
+ graphql-constraint-directive (0.1.2)
5
5
  graphql (~> 2.0, < 3)
6
6
 
7
7
  GEM
@@ -53,6 +53,7 @@ GEM
53
53
 
54
54
  PLATFORMS
55
55
  arm64-darwin-21
56
+ x86_64-linux
56
57
 
57
58
  DEPENDENCIES
58
59
  byebug
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Graphql::Ruby::Constraint::Directive
1
+ # GraphQL::Constraint::Directive
2
2
 
3
3
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/graphql/ruby/constraint/directive`. To experiment with that code, run `bin/console` for an interactive prompt.
4
4
 
@@ -8,11 +8,11 @@ TODO: Delete this and the text above, and describe your gem
8
8
 
9
9
  Install the gem and add to the application's Gemfile by executing:
10
10
 
11
- $ bundle add graphql-ruby-constraint-directive
11
+ $ bundle add graphql-constraint-directive
12
12
 
13
13
  If bundler is not being used to manage dependencies, install the gem by executing:
14
14
 
15
- $ gem install graphql-ruby-constraint-directive
15
+ $ gem install graphql-constraint-directive
16
16
 
17
17
  ## Usage
18
18
 
@@ -10,21 +10,38 @@ module GraphQL
10
10
  LENGTH = { min_length: :minimum, max_length: :maximum }.freeze
11
11
 
12
12
  description "validate GraphQL fields"
13
- argument :max_length, Int, required: false, description: "validate max length"
14
- argument :min_length, Int, required: false, description: "validate min length"
13
+ argument :max_length, Int, required: false, description: "validate max length for String"
14
+ argument :min_length, Int, required: false, description: "validate min length for String"
15
15
  locations INPUT_FIELD_DEFINITION
16
16
 
17
17
  def initialize(owner, **arguments)
18
18
  super
19
- validates = validation_config(@arguments.keyword_arguments)
20
- owner.validates(validates)
19
+ owner.validates(validation_config)
21
20
  end
22
21
 
23
- def validation_config(arguments)
22
+ private
23
+
24
+ def validation_config
24
25
  {
25
- length: arguments.filter { |key, _| LENGTH.key?(key) }.transform_keys { |key| LENGTH[key] }
26
+ length: length_config
26
27
  }
27
28
  end
29
+
30
+ def length_config
31
+ filtered_args = arguments.keyword_arguments.filter { |key, _| LENGTH.key?(key) }
32
+
33
+ if owner_type != GraphQL::Types::String
34
+ raise ArgumentError, <<~MD
35
+ #{filtered_args.keys.join(", ")} in @constraint can't be attached to #{owner.graphql_name} because it has to be a String type.
36
+ MD
37
+ end
38
+
39
+ filtered_args.transform_keys { |key| LENGTH[key] }
40
+ end
41
+
42
+ def owner_type
43
+ owner.type.non_null? ? owner.type.of_type : owner.type
44
+ end
28
45
  end
29
46
  end
30
47
  end
@@ -3,7 +3,7 @@
3
3
  module GraphQL
4
4
  module Constraint
5
5
  module Directive
6
- VERSION = "0.1.0"
6
+ VERSION = "0.1.2"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql-constraint-directive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - MH4GF