ibrain-core 0.2.9 → 0.3.2.pre.rc
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 +4 -4
- data/app/controllers/ibrain/core/graphql_controller.rb +1 -0
- data/app/graphql/ibrain/types/base_input_object.rb +6 -0
- data/lib/generators/ibrain/graphql/object_generator.rb +1 -0
- data/lib/generators/ibrain/graphql/templates/input.erb +13 -0
- data/lib/generators/ibrain/graphql/templates/mutation.erb +1 -0
- data/lib/generators/ibrain/graphql/type_generator.rb +15 -0
- data/lib/ibrain/core/version.rb +2 -2
- data/lib/tasks/ibrain/ridgepole.rake +2 -1
- metadata +7 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8c15f182d1067335ac74f76e822ad350d9be60fa408022743bf04ab10232f85
|
4
|
+
data.tar.gz: 86001274e0330a074b6a48d7d475f5194e724d37f2c0953584958985689ddb52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1445db32b1bcfb1903a6d7c234119dc060ea8ee94510fc7827bfc2aacf8c8a1a6cf0d7a228d4fad878040b3c1aeca5ca8e478bdc1ecffed8657efcd31c40e925
|
7
|
+
data.tar.gz: 13d8df1f9ad37eeb5846bb32ba6a566c93a630713f1e15e9c796327c5aae222fd6b1657783542ba3015573751f6cf486d4c2cc91bb3dabb8eb197039f7550c49
|
@@ -33,6 +33,7 @@ module Ibrain
|
|
33
33
|
|
34
34
|
def normalize_entity
|
35
35
|
return [params[:query], prepare_variables(params[:variables]), params[:operationName]] if params[:variables].present?
|
36
|
+
return [params[:query], prepare_variables(params[:variables]), 'IntrospectionQuery'] if params[:query].try(:include?, 'IntrospectionQuery')
|
36
37
|
|
37
38
|
operations = prepare_variables(params[:operations])
|
38
39
|
query = operations['query']
|
@@ -4,6 +4,12 @@ module Ibrain
|
|
4
4
|
module Types
|
5
5
|
class BaseInputObject < GraphQL::Schema::InputObject
|
6
6
|
argument_class Ibrain::Types::BaseArgument
|
7
|
+
|
8
|
+
def to_params
|
9
|
+
ActionController::Parameters.new(
|
10
|
+
to_h.with_indifferent_access.transform_keys(&:underscore)
|
11
|
+
)
|
12
|
+
end
|
7
13
|
end
|
8
14
|
end
|
9
15
|
end
|
@@ -32,6 +32,7 @@ module Ibrain
|
|
32
32
|
create_dir('app/repositories') unless Dir.exist?('app/repositories')
|
33
33
|
|
34
34
|
template "object.erb", "#{options[:directory]}/types/objects/#{type_file_name}.rb"
|
35
|
+
template "input.erb", "#{options[:directory]}/types/input/#{input_file_name}.rb"
|
35
36
|
template "repository.erb", "app/repositories/#{type_name}_repository.rb"
|
36
37
|
end
|
37
38
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
<% module_namespacing_when_supported do -%>
|
4
|
+
module Types
|
5
|
+
module Input
|
6
|
+
class <%= input_ruby_name.split('::')[-1] %> < Ibrain::Types::BaseInputObject
|
7
|
+
description '<%= input_ruby_name.split('::')[-1] %>'
|
8
|
+
|
9
|
+
<% normalized_fields.each do |f| %> <%= f.to_argument %>
|
10
|
+
<% end %>end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
<% end -%>
|
@@ -49,6 +49,8 @@ module Ibrain
|
|
49
49
|
else
|
50
50
|
["Types::#{type_expression.camelize}Type", null]
|
51
51
|
end
|
52
|
+
when :input
|
53
|
+
["Types::#{type_expression.camelize}Input", null]
|
52
54
|
when :graphql
|
53
55
|
[type_expression.camelize, null]
|
54
56
|
else
|
@@ -74,6 +76,15 @@ module Ibrain
|
|
74
76
|
@type_file_name ||= "#{type_graphql_name}Type".underscore
|
75
77
|
end
|
76
78
|
|
79
|
+
# @return [String] The user-provided type name, as a file name (without extension)
|
80
|
+
def input_file_name
|
81
|
+
@input_file_name ||= "#{type_graphql_name}Input".underscore
|
82
|
+
end
|
83
|
+
|
84
|
+
def input_ruby_name
|
85
|
+
@input_ruby_name ||= self.class.normalize_type_expression(type_name, mode: :input)[0]
|
86
|
+
end
|
87
|
+
|
77
88
|
# @return [Array<NormalizedField>] User-provided fields, in `(name, Ruby type name)` pairs
|
78
89
|
def normalized_fields
|
79
90
|
skip_fields = ["created_at:!Datetime", "updated_at:!Datetime"]
|
@@ -95,6 +106,10 @@ module Ibrain
|
|
95
106
|
def to_ruby
|
96
107
|
"field :#{@name}, #{@type_expr}, null: #{@null}"
|
97
108
|
end
|
109
|
+
|
110
|
+
def to_argument
|
111
|
+
"argument :#{@name}, #{@type_expr}, required: #{@null}"
|
112
|
+
end
|
98
113
|
end
|
99
114
|
end
|
100
115
|
end
|
data/lib/ibrain/core/version.rb
CHANGED
@@ -16,7 +16,8 @@ namespace :ridgepole do
|
|
16
16
|
desc 'import seed data'
|
17
17
|
task seed: :environment do
|
18
18
|
path = Rails.root.join("db/seeds/#{Rails.env}.rb")
|
19
|
-
path = path.sub(Rails.env, 'development') unless File.exist?(path)
|
19
|
+
path = path.sub(Rails.env, ENV.fetch('RAILS_ENV', 'development')) unless File.exist?(path)
|
20
|
+
|
20
21
|
require path
|
21
22
|
end
|
22
23
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibrain-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.3.2.pre.rc
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tai Nguyen Van
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-session_store
|
@@ -140,22 +140,16 @@ dependencies:
|
|
140
140
|
name: rails
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 6.1.4
|
146
143
|
- - ">="
|
147
144
|
- !ruby/object:Gem::Version
|
148
|
-
version:
|
145
|
+
version: '0'
|
149
146
|
type: :runtime
|
150
147
|
prerelease: false
|
151
148
|
version_requirements: !ruby/object:Gem::Requirement
|
152
149
|
requirements:
|
153
|
-
- - "~>"
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
version: 6.1.4
|
156
150
|
- - ">="
|
157
151
|
- !ruby/object:Gem::Version
|
158
|
-
version:
|
152
|
+
version: '0'
|
159
153
|
- !ruby/object:Gem::Dependency
|
160
154
|
name: ransack
|
161
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +235,7 @@ files:
|
|
241
235
|
- lib/generators/ibrain/graphql/resolver_generator.rb
|
242
236
|
- lib/generators/ibrain/graphql/resolvers_generator.rb
|
243
237
|
- lib/generators/ibrain/graphql/templates/aggregate.erb
|
238
|
+
- lib/generators/ibrain/graphql/templates/input.erb
|
244
239
|
- lib/generators/ibrain/graphql/templates/mutation.erb
|
245
240
|
- lib/generators/ibrain/graphql/templates/object.erb
|
246
241
|
- lib/generators/ibrain/graphql/templates/repository.erb
|
@@ -304,9 +299,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
304
299
|
version: '0'
|
305
300
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
306
301
|
requirements:
|
307
|
-
- - "
|
302
|
+
- - ">"
|
308
303
|
- !ruby/object:Gem::Version
|
309
|
-
version:
|
304
|
+
version: 1.3.1
|
310
305
|
requirements: []
|
311
306
|
rubygems_version: 3.2.22
|
312
307
|
signing_key:
|