class GraphQL::SchemaComparator::Diff::Enum
Attributes
new_enum[R]
new_values[R]
old_enum[R]
old_values[R]
Public Class Methods
new(old_enum, new_enum)
click to toggle source
# File lib/graphql/schema_comparator/diff/enum.rb, line 5 def initialize(old_enum, new_enum) @old_enum = old_enum @new_enum = new_enum @old_values = old_enum.values @new_values = new_enum.values end
Public Instance Methods
diff()
click to toggle source
# File lib/graphql/schema_comparator/diff/enum.rb, line 13 def diff changes = [] changes += removed_values.map { |value| Changes::EnumValueRemoved.new(old_enum, value) } changes += added_values.map { |value| Changes::EnumValueAdded.new(new_enum, value) } each_common_value do |old_value, new_value| # TODO: Add Directive Stuff if old_value.description != new_value.description changes << Changes::EnumValueDescriptionChanged.new(new_enum, old_value, new_value) end if old_value.deprecation_reason != new_value.deprecation_reason changes << Changes::EnumValueDeprecated.new(new_enum, old_value, new_value) end end changes end
Private Instance Methods
added_values()
click to toggle source
# File lib/graphql/schema_comparator/diff/enum.rb, line 52 def added_values (new_values.keys - old_values.keys).map { |added| new_enum.values[added] } end
each_common_value(&block)
click to toggle source
# File lib/graphql/schema_comparator/diff/enum.rb, line 38 def each_common_value(&block) intersection = old_values.keys & new_values.keys intersection.each do |common_value| old_value = old_enum.values[common_value] new_value = new_enum.values[common_value] block.call(old_value, new_value) end end
removed_values()
click to toggle source
# File lib/graphql/schema_comparator/diff/enum.rb, line 48 def removed_values (old_values.keys - new_values.keys).map { |removed| old_enum.values[removed] } end