graphql-constraint-directive 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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