graphql-constraint-directive 0.1.0 → 0.1.1

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: ba3f526ee2124471f6dfc59db75677018871fb2166a056def33c4436ac77bf56
4
+ data.tar.gz: bcf163565e80cbc79b26ca429d540c7b0949281fe7fe2b86b5af3136b0b71932
5
5
  SHA512:
6
- metadata.gz: c707dcfdc2c01efd25d8a1b4f874dae370f849e76754927222232ea708e2958b6e38ad7e90c6890b0eff189d5e81be2726e0dc8df2c94e028162626e87fcb65c
7
- data.tar.gz: 99c61e31f353c5e5b1bfa7c5e74862492a3c074a1ae4ea300d5d5ff734d93bf2120bce5667e2cf2b8775ca26a0cc1a8a04850ccd6e66c5c50c06fe41ab42e9a2
6
+ metadata.gz: 917131726cb5381b676bd09c4c8e30a87a64b6bbc7674304396fd7da14979a7c6ee5243516d2a757f2bbd16809925c73eb083f027e9764f607f8666ab448826d
7
+ data.tar.gz: 4f91c444e0013e31250d3cb431f745b9fc3e947063c706739ab86915a19009fcd3b459e417bf4ba4df6de3f7a5a3ba439a81b64f58354cfacd4c981530089a39
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.1)
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
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "graphql"
4
- require "byebug"
5
4
 
6
5
  module GraphQL
7
6
  module Constraint
@@ -10,21 +9,34 @@ module GraphQL
10
9
  LENGTH = { min_length: :minimum, max_length: :maximum }.freeze
11
10
 
12
11
  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"
12
+ argument :max_length, Int, required: false, description: "validate max length for String"
13
+ argument :min_length, Int, required: false, description: "validate min length for String"
15
14
  locations INPUT_FIELD_DEFINITION
16
15
 
17
16
  def initialize(owner, **arguments)
18
17
  super
19
- validates = validation_config(@arguments.keyword_arguments)
20
- owner.validates(validates)
18
+ owner.validates(validation_config)
21
19
  end
22
20
 
23
- def validation_config(arguments)
21
+ private
22
+
23
+ def validation_config
24
24
  {
25
- length: arguments.filter { |key, _| LENGTH.key?(key) }.transform_keys { |key| LENGTH[key] }
25
+ length: length_config
26
26
  }
27
27
  end
28
+
29
+ def length_config
30
+ filtered_args = arguments.keyword_arguments.filter { |key, _| LENGTH.key?(key) }
31
+
32
+ if owner.type != GraphQL::Types::String
33
+ raise ArgumentError, <<~MD
34
+ #{filtered_args.keys.join(", ")} in @constraint can't be attached to #{owner.graphql_name} because it has to be a String type.
35
+ MD
36
+ end
37
+
38
+ filtered_args.transform_keys { |key| LENGTH[key] }
39
+ end
28
40
  end
29
41
  end
30
42
  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.1"
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MH4GF