Module: Graphql::Generators::FieldExtractor
- Included in:
- InputGenerator, ObjectGenerator
- Defined in:
- lib/generators/graphql/field_extractor.rb
Instance Method Summary collapse
- #column_type_string(column) ⇒ Object
- #fields ⇒ Object
- #generate_column_string(column) ⇒ Object
- #klass ⇒ Object
Instance Method Details
#column_type_string(column) ⇒ Object
36 37 38 |
# File 'lib/generators/graphql/field_extractor.rb', line 36 def column_type_string(column) column.name == "id" ? "ID" : column.type.to_s.camelize end |
#fields ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/generators/graphql/field_extractor.rb', line 7 def fields columns = [] if (model_columns = klass&.columns) filter = if defined?(ActiveSupport::ParameterFilter) fp = if defined?(Rails) && Rails.application && (app_config = Rails.application.config.filter_parameters).present? && !app_config.empty? app_config elsif ActiveSupport.respond_to?(:filter_parameters) ActiveSupport.filter_parameters else [] end ActiveSupport::ParameterFilter.new(fp, mask: nil) else nil end columns += model_columns .select { |c| filter ? filter.filter_param(c.name, c.name) : true } .map { |c| generate_column_string(c) } end columns + custom_fields end |
#generate_column_string(column) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/generators/graphql/field_extractor.rb', line 29 def generate_column_string(column) name = column.name required = column.null ? "" : "!" type = column_type_string(column) "#{name}:#{required}#{type}" end |
#klass ⇒ Object
40 41 42 43 44 |
# File 'lib/generators/graphql/field_extractor.rb', line 40 def klass @klass ||= Module.const_get(name.camelize) rescue NameError @klass = nil end |