graphql_query_argument 0.0.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 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: []