graphql-schema_comparator 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a1db51082278388a76a88af6545645d72221ed3
4
- data.tar.gz: d09f9a815fe13f64a1c89a3cd178a68d54eb033e
3
+ metadata.gz: bae47fd797c861e89911fafe37a7483acf01945e
4
+ data.tar.gz: 3a3ef6822c996be20aae3d0e3785ae8fa75549e1
5
5
  SHA512:
6
- metadata.gz: 1b16777b072b7bbdb6a49bafcacd38885aa17adfc452b3b11055ac980451d2e70a74542b88c5716f2866c9860ca8ba942211a35fb565111df29d305878b87c57
7
- data.tar.gz: 4ce22425d9c58150676a091f1df84a08f110e926af5dfd9838de62fdb7977421acf73b3c16d5db8fc23a1a337899963dd51d836a2fb00a3eec368b4359d049ec
6
+ metadata.gz: 6449c7c8044ebe1c5d586e9a6a99e308ab3b24bd8cee27996da25ff4b3c2793462d4865d8b9de491adec6e58ca2b2492fdc6bb273549831a4f0b9b4764516061
7
+ data.tar.gz: c3bc07672039aa72c0cb8de702ffa29357c3dd2778ae356cead4f02e242d83fd88f8bd2b9902bd831f8be7cfef8828f2130f1b1c6b9047b6ad84587098f976bc
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /.bundle/
2
+ .ruby-version
2
3
  /.yardoc
3
4
  /Gemfile.lock
4
5
  /_yardoc/
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.2 (Nov 14 2017)
4
+
5
+ ### New Features
6
+
7
+ Added changes:
8
+
9
+ - `EnumValueDeprecated`
10
+ - `EnumValueDescriptionChanged`
11
+
12
+ ### Bug fixes
13
+
14
+ Fix issue in Enum differ (https://github.com/xuorig/graphql-schema_comparator/issues/9)
15
+
3
16
  ## 0.3.1 (Nov 13 2017)
4
17
 
5
18
  ### Bug Fixes
@@ -296,15 +296,46 @@ module GraphQL
296
296
  end
297
297
  end
298
298
 
299
- # TODO
300
299
  class EnumValueDescriptionChanged < AbstractChange
301
- def initialize(*)
300
+ attr_reader :enum, :old_enum_value, :new_enum_value
301
+
302
+ def initialize(enum, old_enum_value, new_enum_value)
303
+ @enum = enum
304
+ @old_enum_value = old_enum_value
305
+ @new_enum_value = new_enum_value
306
+ end
307
+
308
+ def message
309
+ "Description for enum value `#{enum.name}.#{new_enum_value.name}` changed from " \
310
+ "`#{old_enum_value.description}` to `#{new_enum_value.description}`"
311
+ end
312
+
313
+ def breaking?
314
+ false
302
315
  end
303
316
  end
304
317
 
305
- # TODO
306
318
  class EnumValueDeprecated < AbstractChange
307
- def initialize(*)
319
+ attr_reader :enum, :old_enum_value, :new_enum_value
320
+
321
+ def initialize(enum, old_enum_value, new_enum_value)
322
+ @enum = enum
323
+ @old_enum_value = old_enum_value
324
+ @new_enum_value = new_enum_value
325
+ end
326
+
327
+ def message
328
+ if old_enum_value.deprecation_reason
329
+ "Enum value `#{enum.name}.#{new_enum_value.name}` deprecation reason changed " \
330
+ "from `#{old_enum_value.deprecation_reason}` to `#{new_enum_value.deprecation_reason}`"
331
+ else
332
+ "Enum value `#{enum.name}.#{new_enum_value.name}` was deprecated with reason" \
333
+ " `#{new_enum_value.deprecation_reason}`"
334
+ end
335
+ end
336
+
337
+ def breaking?
338
+ false
308
339
  end
309
340
  end
310
341
 
@@ -2,29 +2,29 @@ module GraphQL
2
2
  module SchemaComparator
3
3
  module Diff
4
4
  class Enum
5
- def initialize(old_type, new_type)
6
- @old_type = old_type
7
- @new_type = new_type
5
+ def initialize(old_enum, new_enum)
6
+ @old_enum = old_enum
7
+ @new_enum = new_enum
8
8
 
9
- @old_values = old_type.values
10
- @new_values = new_type.values
9
+ @old_values = old_enum.values
10
+ @new_values = new_enum.values
11
11
  end
12
12
 
13
13
  def diff
14
14
  changes = []
15
15
 
16
- changes += removed_values.map { |value| Changes::EnumValueRemoved.new(old_type, value) }
17
- changes += added_values.map { |value| Changes::EnumValueAdded.new(new_type, value) }
16
+ changes += removed_values.map { |value| Changes::EnumValueRemoved.new(old_enum, value) }
17
+ changes += added_values.map { |value| Changes::EnumValueAdded.new(new_enum, value) }
18
18
 
19
19
  each_common_value do |old_value, new_value|
20
20
  # TODO: Add Directive Stuff
21
21
 
22
22
  if old_value.description != new_value.description
23
- changes += Changes::EnumValueDescriptionChanged.new(old_value, new_value)
23
+ changes << Changes::EnumValueDescriptionChanged.new(new_enum, old_value, new_value)
24
24
  end
25
25
 
26
26
  if old_value.deprecation_reason != new_value.deprecation_reason
27
- changes += Changes::EnumValueDeprecated.new(old_value, new_value)
27
+ changes << Changes::EnumValueDeprecated.new(new_enum, old_value, new_value)
28
28
  end
29
29
  end
30
30
 
@@ -33,24 +33,24 @@ module GraphQL
33
33
 
34
34
  private
35
35
 
36
- attr_reader :old_type, :new_type, :old_values, :new_values
36
+ attr_reader :old_enum, :new_enum, :old_values, :new_values
37
37
 
38
38
  def each_common_value(&block)
39
39
  intersection = old_values.keys & new_values.keys
40
40
  intersection.each do |common_value|
41
- old_value = old_type.values[common_value]
42
- new_value = new_type.values[common_value]
41
+ old_value = old_enum.values[common_value]
42
+ new_value = new_enum.values[common_value]
43
43
 
44
44
  block.call(old_value, new_value)
45
45
  end
46
46
  end
47
47
 
48
48
  def removed_values
49
- (old_values.keys - new_values.keys).map { |removed| old_type.values[removed] }
49
+ (old_values.keys - new_values.keys).map { |removed| old_enum.values[removed] }
50
50
  end
51
51
 
52
52
  def added_values
53
- (new_values.keys - old_values.keys).map { |added| new_type.values[added] }
53
+ (new_values.keys - old_values.keys).map { |added| new_enum.values[added] }
54
54
  end
55
55
  end
56
56
  end
@@ -1,5 +1,5 @@
1
1
  module GraphQL
2
2
  module SchemaComparator
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql-schema_comparator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc-Andre Giroux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-13 00:00:00.000000000 Z
11
+ date: 2017-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql