api_diff 0.3.0 → 0.3.1

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
  SHA256:
3
- metadata.gz: 29d7124fb871227197ac950b3b042ae3a6a3c99eafaf0bc0762e8dceefed24fc
4
- data.tar.gz: f10484ee00caad08e50bbb217bc5fd3308f4414e780cb93a9a3f4177ea69cd29
3
+ metadata.gz: 310a7da2f0d41ae551be866edc09039b488c7128a9ca5337acaf0902aa4beecd
4
+ data.tar.gz: cfe5d1f1cdc4daf8eba8f1c5b8e6b1b7945fd3f0bd629c65b82cd9755f5bea60
5
5
  SHA512:
6
- metadata.gz: 3966edcf349cc3e43deead3ee42e15449b4278d7eb2f545d00f0a7607cde01b38abb629790dd01252bec9b56d1327a3dd127f5c274765fa1d9882767a9c8f133
7
- data.tar.gz: 980f1818d60f005d69c626e1749c84254b41bf184ff37dd9bc1872c3ba80c8dc96d9922a3be3a0f3be27dc27553de4541fe2a5c9a5529a2cc16bac96f0d74262
6
+ metadata.gz: 00e2213f1595896419c9e3ca890eed716d8ad25cb36e127795ae8cf7bc394af09e4322ab81a382ff4080fae8c0d8d7bf7fdcb8e3a8a634a61d6fcc0112689192
7
+ data.tar.gz: e1ec8e8cd85683fef1c6e0a823136f0b79389cd1b64084d1b369a7e00b38728498aa52e7f52315ab9f70620a1fdea57213a35617acbb2773f26e0a998cb042a0
data/lib/api_diff/api.rb CHANGED
@@ -20,10 +20,17 @@ module ApiDiff
20
20
  enums.find { |e| e.name == named || e.fully_qualified_name == fully_qualified_name }
21
21
  end
22
22
 
23
- def to_s(fully_qualified_names: true, global_sort: false)
23
+ def to_s(fully_qualified_names: true, order: :global)
24
24
  result = []
25
- if global_sort
25
+ if order == "global"
26
26
  result << (enums + interfaces + classes).sort.map { |e| e.to_s(fully_qualified_name: fully_qualified_names) }
27
+ elsif order == "fqn"
28
+ types = enums + interfaces + classes
29
+ type_order = { "enum" => 1, "interface" => 2, "class" => 3 }
30
+ types.sort! do |t1, t2|
31
+ [t1.package, type_order[t1.class.type_name], t1.name] <=> [t2.package, type_order[t2.class.type_name], t2.name]
32
+ end
33
+ result << types.map { |e| e.to_s(fully_qualified_name: fully_qualified_names) }
27
34
  else
28
35
  result << enums.sort.map { |e| e.to_s(fully_qualified_name: fully_qualified_names) }
29
36
  result << interfaces.sort.map { |i| i.to_s(fully_qualified_name: fully_qualified_names) }
data/lib/api_diff/cli.rb CHANGED
@@ -3,11 +3,12 @@ require "optparse"
3
3
  module ApiDiff
4
4
  class Cli
5
5
  def parse(arguments)
6
+ formats = ["swift-interface", "kotlin-bcv"]
6
7
  parser = OptionParser.new do |opts|
7
- opts.on("-f", "--format FORMAT", ["swift-interface", "kotlin-bcv"])
8
+ opts.on("-f", "--format FORMAT", formats, "Possible values are: #{formats.join(",")}")
8
9
  opts.on("-s", "--short-names", "Use short instead of fully qualified names")
9
10
  opts.on("-n", "--normalize")
10
- opts.on("-g", "--global-sort")
11
+ opts.on("-o", "--order ORDER", ["global", "fqn"])
11
12
  end
12
13
 
13
14
  options = {}
@@ -38,7 +39,7 @@ module ApiDiff
38
39
  parser.parse(IO.read(options[:input]))
39
40
  output = parser.api.to_s(
40
41
  fully_qualified_names: !options[:"short-names"],
41
- global_sort: options[:"global-sort"]
42
+ order: options[:"order"]
42
43
  )
43
44
  puts output
44
45
  end
data/lib/api_diff/type.rb CHANGED
@@ -15,6 +15,10 @@ module ApiDiff
15
15
  @properties = []
16
16
  end
17
17
 
18
+ def package
19
+ fully_qualified_name.split(".")[0..-2].join(".")
20
+ end
21
+
18
22
  def declaration(fully_qualified_name: false)
19
23
  name = fully_qualified_name ? self.fully_qualified_name : self.name
20
24
  result = "#{self.class.type_name} #{name}"
@@ -1,3 +1,3 @@
1
1
  module ApiDiff
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Ludwig
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-28 00:00:00.000000000 Z
11
+ date: 2021-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '11'
41
- description:
41
+ description:
42
42
  email:
43
43
  - sebastian@lurado.de
44
44
  executables:
@@ -72,7 +72,7 @@ licenses:
72
72
  metadata:
73
73
  homepage_uri: https://github.com/sebastianludwig/api-diff
74
74
  source_code_uri: https://github.com/sebastianludwig/api_diff
75
- post_install_message:
75
+ post_install_message:
76
76
  rdoc_options: []
77
77
  require_paths:
78
78
  - lib
@@ -87,8 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  requirements: []
90
- rubygems_version: 3.1.4
91
- signing_key:
90
+ rubygems_version: 3.0.3
91
+ signing_key:
92
92
  specification_version: 4
93
93
  summary: Bring APIs into an easily diff-able format
94
94
  test_files: