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 +4 -4
- data/lib/api_diff/api.rb +9 -2
- data/lib/api_diff/cli.rb +4 -3
- data/lib/api_diff/type.rb +4 -0
- data/lib/api_diff/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 310a7da2f0d41ae551be866edc09039b488c7128a9ca5337acaf0902aa4beecd
|
4
|
+
data.tar.gz: cfe5d1f1cdc4daf8eba8f1c5b8e6b1b7945fd3f0bd629c65b82cd9755f5bea60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
23
|
+
def to_s(fully_qualified_names: true, order: :global)
|
24
24
|
result = []
|
25
|
-
if
|
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",
|
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("-
|
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
|
-
|
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}"
|
data/lib/api_diff/version.rb
CHANGED
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.
|
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-
|
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.
|
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:
|