class GraphQL::SchemaComparator::Diff::Interface
Attributes
new_fields[R]
new_iface[R]
old_fields[R]
old_iface[R]
Public Class Methods
new(old_iface, new_iface)
click to toggle source
# File lib/graphql/schema_comparator/diff/interface.rb, line 5 def initialize(old_iface, new_iface) @old_iface = old_iface @new_iface = new_iface @old_fields = old_iface.fields @new_fields = new_iface.fields end
Public Instance Methods
diff()
click to toggle source
# File lib/graphql/schema_comparator/diff/interface.rb, line 13 def diff changes = [] changes += field_removals changes += field_additions each_common_field do |old_field, new_field| changes += Diff::Field.new(old_iface, new_iface, old_field, new_field).diff end changes end
Private Instance Methods
each_common_field(&block)
click to toggle source
# File lib/graphql/schema_comparator/diff/interface.rb, line 39 def each_common_field(&block) intersection = old_fields.keys & new_fields.keys intersection.each do |common_field| old_field = old_iface.fields[common_field] new_field = new_iface.fields[common_field] block.call(old_field, new_field) end end
field_additions()
click to toggle source
# File lib/graphql/schema_comparator/diff/interface.rb, line 34 def field_additions added = new_fields.values.select { |field| !old_fields[field.name] } added.map { |field| Changes::FieldAdded.new(new_iface, field) } end
field_removals()
click to toggle source
# File lib/graphql/schema_comparator/diff/interface.rb, line 29 def field_removals removed = old_fields.values.select { |field| !new_fields[field.name] } removed.map { |field| Changes::FieldRemoved.new(old_iface, field) } end