graphql_rails 1.0.0 → 1.2.3

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +1 -0
  3. data/.rubocop.yml +3 -3
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +2 -2
  6. data/CHANGELOG.md +22 -0
  7. data/Gemfile +3 -2
  8. data/Gemfile.lock +145 -119
  9. data/docs/README.md +3 -3
  10. data/docs/components/controller.md +23 -7
  11. data/docs/components/model.md +43 -3
  12. data/docs/getting_started/quick_start.md +1 -1
  13. data/docs/index.html +1 -1
  14. data/docs/other_tools/query_runner.md +1 -1
  15. data/docs/other_tools/schema_dump.md +1 -1
  16. data/graphql_rails.gemspec +5 -5
  17. data/lib/generators/graphql_rails/templates/graphql_router_spec.erb +10 -7
  18. data/lib/graphql_rails/attributes/attributable.rb +5 -9
  19. data/lib/graphql_rails/attributes/attribute.rb +26 -6
  20. data/lib/graphql_rails/attributes/attribute_name_parser.rb +4 -4
  21. data/lib/graphql_rails/attributes/input_attribute.rb +5 -1
  22. data/lib/graphql_rails/attributes/type_parseable.rb +17 -13
  23. data/lib/graphql_rails/concerns/service.rb +6 -2
  24. data/lib/graphql_rails/controller.rb +6 -6
  25. data/lib/graphql_rails/controller/action.rb +5 -1
  26. data/lib/graphql_rails/controller/build_controller_action_resolver.rb +2 -2
  27. data/lib/graphql_rails/controller/log_controller_action.rb +7 -2
  28. data/lib/graphql_rails/controller/request.rb +1 -1
  29. data/lib/graphql_rails/controller/request/format_errors.rb +1 -1
  30. data/lib/graphql_rails/decorator/relation_decorator.rb +0 -4
  31. data/lib/graphql_rails/model/add_fields_to_graphql_type.rb +45 -0
  32. data/lib/graphql_rails/model/build_connection_type.rb +5 -1
  33. data/lib/graphql_rails/model/build_connection_type/count_items.rb +2 -2
  34. data/lib/graphql_rails/model/build_graphql_input_type.rb +1 -1
  35. data/lib/graphql_rails/model/call_graphql_model_method.rb +14 -1
  36. data/lib/graphql_rails/model/configurable.rb +6 -2
  37. data/lib/graphql_rails/model/configuration.rb +9 -4
  38. data/lib/graphql_rails/model/find_or_build_graphql_type.rb +64 -0
  39. data/lib/graphql_rails/model/find_or_build_graphql_type_class.rb +46 -0
  40. data/lib/graphql_rails/router.rb +2 -2
  41. data/lib/graphql_rails/router/resource_routes_builder.rb +8 -8
  42. data/lib/graphql_rails/router/route.rb +3 -7
  43. data/lib/graphql_rails/router/schema_builder.rb +5 -1
  44. data/lib/graphql_rails/rspec_controller_helpers.rb +2 -2
  45. data/lib/graphql_rails/version.rb +1 -1
  46. metadata +25 -18
  47. data/lib/graphql_rails/model/build_graphql_type.rb +0 -53
@@ -109,8 +109,8 @@ module GraphqlRails
109
109
  @response
110
110
  end
111
111
 
112
- def mutation(*args)
113
- query(*args)
112
+ def mutation(*args, **kwargs)
113
+ query(*args, **kwargs)
114
114
  end
115
115
 
116
116
  def response
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GraphqlRails
4
- VERSION = '1.0.0'
4
+ VERSION = '1.2.3'
5
5
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Povilas Jurčys
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-07 00:00:00.000000000 Z
11
+ date: 2021-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
17
20
  - - ">="
18
21
  - !ruby/object:Gem::Version
19
- version: 1.9.12
22
+ version: 1.12.4
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.12'
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: 1.9.12
32
+ version: 1.12.4
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activesupport
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +50,28 @@ dependencies:
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '1.16'
53
+ version: '2'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.16'
60
+ version: '2'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rake
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '10.0'
67
+ version: '13.0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '10.0'
74
+ version: '13.0'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rspec
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -114,15 +120,15 @@ dependencies:
114
120
  requirements:
115
121
  - - "~>"
116
122
  - !ruby/object:Gem::Version
117
- version: '5'
123
+ version: '6'
118
124
  type: :development
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - "~>"
123
129
  - !ruby/object:Gem::Version
124
- version: '5'
125
- description:
130
+ version: '6'
131
+ description:
126
132
  email:
127
133
  - po.jurcys@gmail.com
128
134
  executables: []
@@ -198,14 +204,16 @@ files:
198
204
  - lib/graphql_rails/integrations/lograge.rb
199
205
  - lib/graphql_rails/integrations/sentry.rb
200
206
  - lib/graphql_rails/model.rb
207
+ - lib/graphql_rails/model/add_fields_to_graphql_type.rb
201
208
  - lib/graphql_rails/model/build_connection_type.rb
202
209
  - lib/graphql_rails/model/build_connection_type/count_items.rb
203
210
  - lib/graphql_rails/model/build_enum_type.rb
204
211
  - lib/graphql_rails/model/build_graphql_input_type.rb
205
- - lib/graphql_rails/model/build_graphql_type.rb
206
212
  - lib/graphql_rails/model/call_graphql_model_method.rb
207
213
  - lib/graphql_rails/model/configurable.rb
208
214
  - lib/graphql_rails/model/configuration.rb
215
+ - lib/graphql_rails/model/find_or_build_graphql_type.rb
216
+ - lib/graphql_rails/model/find_or_build_graphql_type_class.rb
209
217
  - lib/graphql_rails/model/input.rb
210
218
  - lib/graphql_rails/query_runner.rb
211
219
  - lib/graphql_rails/railtie.rb
@@ -224,7 +232,7 @@ homepage: https://github.com/samesystem/graphql_rails
224
232
  licenses:
225
233
  - MIT
226
234
  metadata: {}
227
- post_install_message:
235
+ post_install_message:
228
236
  rdoc_options: []
229
237
  require_paths:
230
238
  - lib
@@ -239,9 +247,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
247
  - !ruby/object:Gem::Version
240
248
  version: '0'
241
249
  requirements: []
242
- rubyforge_project:
243
- rubygems_version: 2.7.7
244
- signing_key:
250
+ rubygems_version: 3.1.2
251
+ signing_key:
245
252
  specification_version: 4
246
- summary: GraphQL server and client for rails
253
+ summary: Rails style structure for GraphQL API.
247
254
  test_files: []
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module GraphqlRails
4
- module Model
5
- # stores information about model specific config, like attributes and types
6
- class BuildGraphqlType
7
- require 'graphql_rails/concerns/service'
8
- require 'graphql_rails/model/call_graphql_model_method'
9
-
10
- include ::GraphqlRails::Service
11
-
12
- PAGINATION_KEYS = %i[before after first last].freeze
13
-
14
- def initialize(name:, description: nil, attributes:)
15
- @name = name
16
- @attributes = attributes
17
- @description = description
18
- end
19
-
20
- def call
21
- type_name = name
22
- type_description = description
23
- type_attributes = attributes
24
-
25
- Class.new(GraphQL::Schema::Object) do
26
- graphql_name(type_name)
27
- description(type_description)
28
-
29
- type_attributes.each_value do |attribute|
30
- field(*attribute.field_args) do
31
- attribute.attributes.values.each do |arg_attribute|
32
- argument(*arg_attribute.input_argument_args)
33
- end
34
- end
35
-
36
- define_method attribute.property do |**kwargs|
37
- CallGraphqlModelMethod.call(
38
- model: object,
39
- attribute_config: attribute,
40
- method_keyword_arguments: kwargs,
41
- graphql_context: context
42
- )
43
- end
44
- end
45
- end
46
- end
47
-
48
- private
49
-
50
- attr_reader :attributes, :name, :description
51
- end
52
- end
53
- end