Class: GraphqlAllConnectionsGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/graphql_all_connections/graphql_all_connections_generator.rb

Instance Method Summary collapse

Instance Method Details

#generateObject



3
4
5
6
7
8
# File 'lib/generators/graphql_all_connections/graphql_all_connections_generator.rb', line 3

def generate
  Graphql::Rails::Api::Config.query_resources.each do |resource|
    dir = "app/graphql/#{resource.pluralize}"
    generate_connection(dir, resource) if Dir.exist?(dir)
  end
end

#generate_connection(dir, resource) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/generators/graphql_all_connections/graphql_all_connections_generator.rb', line 10

def generate_connection(dir, resource)
  FileUtils.mkdir_p(dir) unless File.directory?(dir)
  File.write(
    "#{dir}/connection.rb",
    "      \#{resource.pluralize.camelize}::Connection = \#{resource.pluralize.camelize}::Type.define_connection do\n        name '\#{resource.camelize}Connection'\n\n        field :total_count, types.Int do\n          resolve ->(obj, _, _) { obj.nodes.count }\n        end\n      end\n    STRING\n  )\nend\n"