graphql_query_argument 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3bafa6da3f6713eee15690ff2d483e6e5681c1c13781f465cfb67b8edb8b0546
4
+ data.tar.gz: 395735019ff60d6c11a7c73e63d95219f48152816ff27e2a85d3e9fded700d5f
5
+ SHA512:
6
+ metadata.gz: 6bbacc624e7f88acb5b1eb31e0435310a05c5b78cbe817132ab11def16a68d08c4939bd32b3b1df72143fb44d9a917953480df369358dbb8c0cb715ae9ed056a
7
+ data.tar.gz: 6602a3415b97045f7b965fa6d815b0bc9495a928226a443ea7e1f42d332e3f49dfb9b01eaa8ac587d8d2ac8705dfad3177115427ce07866f1896468ed84fdaaf
@@ -0,0 +1,15 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'graphql_query_argument'
3
+ s.version = '0.0.1'
4
+ s.summary = 'Graphql query argument'
5
+ s.description = 'For Graphql custom query argument module'
6
+ s.authors = ['Shang']
7
+ s.email = 'shangweilin7@gmail.com'
8
+ s.files = `git ls-files`.split($/)
9
+ s.homepage = 'https://github.com/shangweilin7/graphql_query_argument'
10
+ s.license = 'MIT'
11
+
12
+ s.add_dependency 'graphql', '> 2.0'
13
+
14
+ s.add_development_dependency 'rspec', '> 3.12.2'
15
+ end
@@ -0,0 +1,7 @@
1
+ module GraphQL
2
+ module Resolvers
3
+ module QueryArgument
4
+ VERSION = '0.0.1'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,42 @@
1
+ module Graphql
2
+ module Resolvers
3
+ module QueryArgument
4
+ def self.included(base)
5
+ base.extend ClassMethods
6
+ base.instance_eval do
7
+ @config = {
8
+ query_arguments: {}
9
+ }
10
+ end
11
+ end
12
+
13
+ def initialize(object:, context:, field:)
14
+ @scope = context[:current_object].send(field.name.underscore)
15
+ @query_arguments = self.class.config[:query_arguments]
16
+ super object: object, context: context, field: field
17
+ end
18
+
19
+ def resolve(**args)
20
+ args.inject(@scope) do |scope, (name, value)|
21
+ return scope unless @query_arguments[name]
22
+
23
+ instance_exec scope, value, &@query_arguments[name]
24
+ end
25
+ end
26
+
27
+ module ClassMethods
28
+ attr_reader :config
29
+
30
+ def inherited(base)
31
+ base.instance_variable_set '@config', @config
32
+ super(base)
33
+ end
34
+
35
+ def query_argument(name, options = {}, &block)
36
+ argument(name, options)
37
+ config[:query_arguments][name] = block
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: graphql_query_argument
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Shang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-11-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: graphql
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.12.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.12.2
41
+ description: For Graphql custom query argument module
42
+ email: shangweilin7@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - graphql_query_argument.gemspec
48
+ - lib/graphql/resolvers/query_argument.rb
49
+ - lib/graphql/resolvers/query_argument/version.rb
50
+ homepage: https://github.com/shangweilin7/graphql_query_argument
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubygems_version: 3.1.6
70
+ signing_key:
71
+ specification_version: 4
72
+ summary: Graphql query argument
73
+ test_files: []