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,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: []
|