tapioca 0.4.23 → 0.4.24

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: 3fe702a52ed1226bf7c94e4288d722665e8444e89066a7cb9fda8066a2bebc3a
4
- data.tar.gz: 1bb7b3bd18bf1b136b6c01afe6f27a82a49c31558a5298ebe2fb045476f7ec0d
3
+ metadata.gz: 3346249d6372983bf2f589dc19126ec052dc93701d360e30d5b3f6955ece4f03
4
+ data.tar.gz: 68857527a145259323b58089e08caf23144fa9bc987de1a40b03ee4d0afa4bcb
5
5
  SHA512:
6
- metadata.gz: 75ba6fe1ba52763c5c31f6f792f2bc766d8874fbd4814bd16137e3238926c1efb35bb4663bdc8ae423bed1d489425b5f3a569e41b2e75d8318ab7cad800f597c
7
- data.tar.gz: e15284dee1f66fca6a032194b359f54523bbc2c3981423268ffd3402e74bdd66403a08239c712145b0455fa7b0c4d7c5600d9d5ae398d9dd2b88cf4ddc3376c7
6
+ metadata.gz: 5d1affdb8f87456291175700165c84a121834abb89dd2bee50fb746926d752f05f1001dda59dad7f3688b081c97d94971829ebef8ea622f05acc2d264cc69632
7
+ data.tar.gz: 7ba8a6d28322f9155dcd4351b1d68e698038ae322154d71d2fc8c26d06135f816259355584ded1f57b5b1aad96ea364b5e5fad64ddc32bcbe0561ea89b993189
@@ -11,9 +11,11 @@ module Tapioca
11
11
  def visit(node)
12
12
  return unless node.is_a?(Tree)
13
13
  visit_all(node.nodes)
14
+ original_order = node.nodes.map.with_index.to_h
14
15
  node.nodes.sort! do |a, b|
15
16
  res = node_rank(a) <=> node_rank(b)
16
17
  res = node_name(a) <=> node_name(b) if res == 0
18
+ res = (original_order[a] || 0) <=> (original_order[b] || 0) if res == 0
17
19
  res || 0
18
20
  end
19
21
  end
@@ -23,27 +25,29 @@ module Tapioca
23
25
  sig { params(node: Node).returns(Integer) }
24
26
  def node_rank(node)
25
27
  case node
26
- when Group then kind_rank(node.kind)
27
- when Include, Extend then 0
28
- when Helper then 1
29
- when TypeMember then 2
30
- when MixesInClassMethods then 3
31
- when TStructField then 4
32
- when TEnumBlock then 5
28
+ when Group then group_rank(node.kind)
29
+ when Include, Extend then 10
30
+ when Helper then 20
31
+ when TypeMember then 30
32
+ when MixesInClassMethods then 40
33
+ when TStructField then 50
34
+ when TEnumBlock then 60
33
35
  when Method
34
36
  if node.name == "initialize"
35
- 7
37
+ 71
38
+ elsif !node.is_singleton
39
+ 72
36
40
  else
37
- 8
41
+ 73
38
42
  end
39
- when Scope, Const then 9
43
+ when Scope, Const then 80
40
44
  else
41
- 10
45
+ 100
42
46
  end
43
47
  end
44
48
 
45
49
  sig { params(kind: Group::Kind).returns(Integer) }
46
- def kind_rank(kind)
50
+ def group_rank(kind)
47
51
  case kind
48
52
  when Group::Kind::Mixins then 0
49
53
  when Group::Kind::Helpers then 1
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
- VERSION = "0.4.23"
5
+ VERSION = "0.4.24"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapioca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.23
4
+ version: 0.4.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ufuk Kayserilioglu
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2021-05-25 00:00:00.000000000 Z
14
+ date: 2021-08-04 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.2.17
195
+ rubygems_version: 3.2.20
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: A Ruby Interface file generator for gems, core types and the Ruby standard