class GraphQL::SchemaComparator::Diff::Field
Attributes
new_arguments[R]
new_field[R]
new_type[R]
old_arguments[R]
old_field[R]
old_type[R]
Public Class Methods
new(old_type, new_type, old_field, new_field)
click to toggle source
# File lib/graphql/schema_comparator/diff/field.rb, line 5 def initialize(old_type, new_type, old_field, new_field) @old_type = old_type @new_type = new_type @old_field = old_field @new_field = new_field @old_arguments = old_field.arguments @new_arguments = new_field.arguments end
Public Instance Methods
diff()
click to toggle source
# File lib/graphql/schema_comparator/diff/field.rb, line 16 def diff changes = [] if old_field.description != new_field.description changes << Changes::FieldDescriptionChanged.new(new_type, old_field, new_field) end if old_field.deprecation_reason != new_field.deprecation_reason changes << Changes::FieldDeprecationChanged.new(new_type, old_field, new_field) end if old_field.type.graphql_definition != new_field.type.graphql_definition changes << Changes::FieldTypeChanged.new(new_type, old_field, new_field) end changes += arg_removals changes += arg_additions each_common_argument do |old_arg, new_arg| changes += Diff::Argument.new(new_type, new_field, old_arg, new_arg).diff end changes end
Private Instance Methods
arg_additions()
click to toggle source
# File lib/graphql/schema_comparator/diff/field.rb, line 58 def arg_additions removed = new_arguments.values.select { |arg| !old_arguments[arg.name] } removed.map { |arg| Changes::FieldArgumentAdded.new(new_type, new_field, arg) } end
arg_removals()
click to toggle source
# File lib/graphql/schema_comparator/diff/field.rb, line 53 def arg_removals removed = old_arguments.values.select { |arg| !new_arguments[arg.name] } removed.map { |arg| Changes::FieldArgumentRemoved.new(new_type, old_field, arg) } end
each_common_argument(&block)
click to toggle source
# File lib/graphql/schema_comparator/diff/field.rb, line 63 def each_common_argument(&block) intersection = old_arguments.keys & new_arguments.keys intersection.each do |common_arg| old_arg = old_field.arguments[common_arg] new_arg = new_field.arguments[common_arg] block.call(old_arg, new_arg) end end