api_diff 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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: