ibrain-core 0.2.9 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3a1bdc7ba2d079ca5c04d151dd5693e22d2053a40bf1697ab6494ea8e03f400
4
- data.tar.gz: 619d32610ab9cda07125ed545d424b70b86b35e52445e32e552db33629e331c3
3
+ metadata.gz: 415c27a18a9c16d20f98d20d0fe4791d87e664322da36a6b45a90def55c93c5b
4
+ data.tar.gz: 4b382f40ad622b8713fb98ac99770210ad14ee46200833f288d3e3e22f0ecbfa
5
5
  SHA512:
6
- metadata.gz: 4b541ae4a5f20c9e4d2e2ff5135066ff8f3824a3ae0a4b25717f286eb3ca7f9883e4f25e73f5d87905230fa35070e2da1799798e94fc9c6f68ec0a363a81066a
7
- data.tar.gz: 6562679bf38d56515b74316c84b45c4600460b0ac01745e3e9bbc3fe6848e19c6ddec92b8f01e3bc9af7f294f96f09a2d50edc935a91c9ac65e1cc87a157346b
6
+ metadata.gz: 9a461ad6688ef36898085d75a997bf6f48cc8163b796f6d1f3b605ea552e356dc6dbcdffef783ea242948ba40f9ea159672fea3366f7e4bb00eda3264f658477
7
+ data.tar.gz: 00bc2dfff66138a72c839db028f7d8402a8d313403399ce17ce65bc1807126544943346ecd538204dc3c467fea6f677f0d67dea0a8253fc51835e049d7dd82d4
@@ -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 -%>
@@ -11,6 +11,7 @@ module Mutations
11
11
 
12
12
  # TODO: define arguments
13
13
  # argument :name, String, required: true
14
+ # argument :<%= model_name.underscore %>, Types::Input::<%= model_name %>Input, required: true
14
15
 
15
16
  # TODO: define resolve method
16
17
  def resolve(args)
@@ -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
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ibrain
4
- VERSION = "0.2.9"
4
+ VERSION = "0.3.2"
5
5
 
6
6
  def self.ibrain_version
7
7
  VERSION
8
8
  end
9
9
 
10
10
  def self.previous_ibrain_minor_version
11
- '0.2.8'
11
+ '0.3.1'
12
12
  end
13
13
 
14
14
  def self.ibrain_gem_version
@@ -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.9
4
+ version: 0.3.2
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-02-07 00:00:00.000000000 Z
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
@@ -143,9 +143,6 @@ dependencies:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: 6.1.4
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: 6.1.4.1
149
146
  type: :runtime
150
147
  prerelease: false
151
148
  version_requirements: !ruby/object:Gem::Requirement
@@ -153,9 +150,6 @@ dependencies:
153
150
  - - "~>"
154
151
  - !ruby/object:Gem::Version
155
152
  version: 6.1.4
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: 6.1.4.1
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