ibrain-core 0.2.9 → 0.3.2.pre.rc

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: a8c15f182d1067335ac74f76e822ad350d9be60fa408022743bf04ab10232f85
4
+ data.tar.gz: 86001274e0330a074b6a48d7d475f5194e724d37f2c0953584958985689ddb52
5
5
  SHA512:
6
- metadata.gz: 4b541ae4a5f20c9e4d2e2ff5135066ff8f3824a3ae0a4b25717f286eb3ca7f9883e4f25e73f5d87905230fa35070e2da1799798e94fc9c6f68ec0a363a81066a
7
- data.tar.gz: 6562679bf38d56515b74316c84b45c4600460b0ac01745e3e9bbc3fe6848e19c6ddec92b8f01e3bc9af7f294f96f09a2d50edc935a91c9ac65e1cc87a157346b
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 -%>
@@ -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-rc"
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.2'
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.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-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
@@ -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: 6.1.4.1
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: 6.1.4.1
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: '0'
304
+ version: 1.3.1
310
305
  requirements: []
311
306
  rubygems_version: 3.2.22
312
307
  signing_key: