ruby_header_parser 0.3.0 → 0.4.0

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: cc0d75280b017f256e41827e1f14c8b8b0d18cf52c491c017d64039242a22197
4
- data.tar.gz: 4f11bceded579fced47f92c709e69aad913e65a245347e7dd9a0c734b25568f9
3
+ metadata.gz: e5cef74182520ff38bc515d76abc52f29ea72d902560dd94c22d0b6423ca1ac9
4
+ data.tar.gz: 7c74a7fd9ba492d8164a29f6361dc134d40c672914608c1916a9b9f10b3ff650
5
5
  SHA512:
6
- metadata.gz: e9c1bd0ec1816fe63836a3d7fb957b7f197daf3152d61e012410e46da36a724fc3ffd38c0e4cc46ebf8bbf46ed63f0291701b29cb2b027051afbff2b9a607d5d
7
- data.tar.gz: ab355926c53b980c1a0895531cfe8cf09c7410c68e433e6767db0cac1bf3a25af0d7546e4d6c4d5737184b5325e02730464f262d946ff60578231d8fbd86da98
6
+ metadata.gz: c88bb6461bf103497439f4f87088a807a52d297470ac056cb3d673a242ab1e9afa572e16e778f15942997d83b138109361c5a85195cde16df17c857440a43e83
7
+ data.tar.gz: d199b28a53eddf355fae53a6ebcd9693b6a724c6fb8911990186f8bc050c72b3be185e7bfacd526bf05007ac8b714c96d65df7530bb3cd69dcc8bf872e242d0f
data/.rubocop.yml CHANGED
@@ -13,6 +13,10 @@ Layout/HashAlignment:
13
13
  EnforcedColonStyle: table
14
14
  EnforcedHashRocketStyle: table
15
15
 
16
+ Layout/LeadingCommentSpace:
17
+ AllowRBSInlineAnnotation: true
18
+ AllowSteepAnnotation: true
19
+
16
20
  Layout/SpaceAroundOperators:
17
21
  Exclude:
18
22
  # Suppress line breaks in spec files (e.g `it { should xxxx }`, `its(:method) { should xxxx }` )
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## [Unreleased]
2
- [full changelog](http://github.com/ruby-go-gem/ruby_header_parser/compare/v0.3.0...main)
2
+ [full changelog](http://github.com/ruby-go-gem/ruby_header_parser/compare/v0.4.0...main)
3
+
4
+ ## [0.4.0](https://github.com/ruby-go-gem/ruby_header_parser/releases/tag/v0.4.0) - 2025-01-07
5
+ [full changelog](http://github.com/ruby-go-gem/ruby_header_parser/compare/v0.3.1...v0.4.0)
6
+
7
+ * Exclude removed methods in Ruby 3.4 and support erb config file https://github.com/ruby-go-gem/ruby_header_parser/pull/29
8
+
9
+ ## [0.3.1](https://github.com/ruby-go-gem/ruby_header_parser/releases/tag/v0.3.1) - 2024-12-15
10
+ [full changelog](http://github.com/ruby-go-gem/ruby_header_parser/compare/v0.3.0...v0.3.1)
11
+
12
+ * Change arg of `rb_gc_register_address` and `rb_gc_unregister_address` to in_ref https://github.com/ruby-go-gem/ruby_header_parser/pull/24
3
13
 
4
14
  ## [0.3.0](https://github.com/ruby-go-gem/ruby_header_parser/releases/tag/v0.3.0) - 2024-11-24
5
15
  [full changelog](http://github.com/ruby-go-gem/ruby_header_parser/compare/v0.2.0...v0.3.0)
data/CONFIG.md CHANGED
@@ -45,7 +45,7 @@ enum:
45
45
  ```
46
46
 
47
47
  ## Full configuration file
48
- [config/default.yml](config/default.yml) is used by https://github.com/ruby-go-gem/go-gem-wrapper to generate bindings for Go.
48
+ [config/default.yml.erb](config/default.yml.erb) is used by https://github.com/ruby-go-gem/go-gem-wrapper to generate bindings for Go.
49
49
 
50
50
  ## `function.include_name`, `struct.include_name`, `type.include_name`, `enum.include_name`
51
51
  Return functions and structures that match the condition with a [RubyHeaderParser::Parser](lib/ruby_header_parser/parser.rb)
@@ -68,6 +68,15 @@ function:
68
68
  # FIXME: Workaround for "undefined reference to `rb_class_descendants'" on GitHub Actions (Ubuntu 22.04)
69
69
  - rb_class_descendants
70
70
 
71
+ <% if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create("3.4.0") %>
72
+ # Removed since ruby 3.4+
73
+ - rb_data_object_make
74
+ - rb_newobj
75
+ - rb_newobj_of
76
+ - rb_st_init_existing_table_with_size
77
+ - rb_st_replace
78
+ <% end %>
79
+
71
80
  pointer_hint:
72
81
  RSTRING_PTR:
73
82
  self: raw
@@ -110,6 +119,10 @@ function:
110
119
  4: array
111
120
  rb_funcallv_public:
112
121
  4: array
122
+ rb_gc_register_address:
123
+ 1: in_ref
124
+ rb_gc_unregister_address:
125
+ 1: in_ref
113
126
  rb_get_values_at:
114
127
  5: function
115
128
  rb_glob:
@@ -11,7 +11,8 @@ module RubyHeaderParser
11
11
  #
12
12
  # @note See [CONFIG.md](../file.CONFIG.html) for config file details
13
13
  def initialize(config_file)
14
- yaml = File.read(config_file)
14
+ erb = File.read(config_file)
15
+ yaml = ERB.new(erb).result
15
16
  @data = YAML.safe_load(yaml, aliases: true, permitted_classes: [Regexp])
16
17
  end
17
18
 
@@ -30,7 +30,7 @@ module RubyHeaderParser
30
30
  # @param include_paths [Array<String>]
31
31
  # @param dist_preprocessed_header_file [String,nil] Destination path to the output of preprocessed ruby.h.
32
32
  # (default: `"#{Dir.tmpdir}/ruby_preprocessed.h"`)
33
- # @param config_file [String,nil] Path to config file (default: `config/default.yml`)
33
+ # @param config_file [String,nil] Path to config file (default: `config/default.yml.erb`)
34
34
  #
35
35
  # @note `dist_preprocessed_header_file` is used as the output destination for temporary files when the parser
36
36
  # is executed
@@ -42,7 +42,7 @@ module RubyHeaderParser
42
42
  @include_paths = include_paths
43
43
  @dist_preprocessed_header_file = dist_preprocessed_header_file || File.join(Dir.tmpdir, "ruby_preprocessed.h")
44
44
 
45
- config_file ||= File.expand_path("../../config/default.yml", __dir__.to_s)
45
+ config_file ||= File.expand_path("../../config/default.yml.erb", __dir__.to_s)
46
46
  @config = Config.new(config_file)
47
47
  end
48
48
 
@@ -93,8 +93,11 @@ module RubyHeaderParser
93
93
  def extract_enum_definitions
94
94
  stdout = execute_ctags("--c-kinds=e --fields=+n")
95
95
 
96
+ # Workaround for Ruby::UnannotatedEmptyCollection on steep 1.9.0+
97
+ name_to_definition = {} #: Hash[String, RubyHeaderParser::EnumDefinition]
98
+
96
99
  name_to_definitions =
97
- stdout.each_line.with_object({}) do |line, hash|
100
+ stdout.each_line.with_object(name_to_definition) do |line, hash|
98
101
  parts = line.split("\t")
99
102
 
100
103
  enum_name = Util.find_field(parts, "enum")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyHeaderParser
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.0"
5
5
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "yaml"
4
4
  require "tmpdir"
5
+ require "erb"
5
6
 
6
7
  require_relative "ruby_header_parser/version"
7
8
 
@@ -6,7 +6,7 @@ gems:
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
9
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
10
10
  remote: https://github.com/ruby/gem_rbs_collection.git
11
11
  repo_dir: gems
12
12
  - name: binding_of_caller
@@ -14,7 +14,7 @@ gems:
14
14
  source:
15
15
  type: git
16
16
  name: ruby/gem_rbs_collection
17
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
17
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
18
18
  remote: https://github.com/ruby/gem_rbs_collection.git
19
19
  repo_dir: gems
20
20
  - name: dbm
@@ -26,9 +26,13 @@ gems:
26
26
  source:
27
27
  type: git
28
28
  name: ruby/gem_rbs_collection
29
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
29
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
30
30
  remote: https://github.com/ruby/gem_rbs_collection.git
31
31
  repo_dir: gems
32
+ - name: erb
33
+ version: '0'
34
+ source:
35
+ type: stdlib
32
36
  - name: fileutils
33
37
  version: '0'
34
38
  source:
@@ -42,7 +46,7 @@ gems:
42
46
  source:
43
47
  type: git
44
48
  name: ruby/gem_rbs_collection
45
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
49
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
46
50
  remote: https://github.com/ruby/gem_rbs_collection.git
47
51
  repo_dir: gems
48
52
  - name: parser
@@ -50,7 +54,7 @@ gems:
50
54
  source:
51
55
  type: git
52
56
  name: ruby/gem_rbs_collection
53
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
57
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
54
58
  remote: https://github.com/ruby/gem_rbs_collection.git
55
59
  repo_dir: gems
56
60
  - name: pstore
@@ -66,7 +70,7 @@ gems:
66
70
  source:
67
71
  type: git
68
72
  name: ruby/gem_rbs_collection
69
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
73
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
70
74
  remote: https://github.com/ruby/gem_rbs_collection.git
71
75
  repo_dir: gems
72
76
  - name: rake
@@ -74,7 +78,7 @@ gems:
74
78
  source:
75
79
  type: git
76
80
  name: ruby/gem_rbs_collection
77
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
81
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
78
82
  remote: https://github.com/ruby/gem_rbs_collection.git
79
83
  repo_dir: gems
80
84
  - name: regexp_parser
@@ -82,7 +86,7 @@ gems:
82
86
  source:
83
87
  type: git
84
88
  name: ruby/gem_rbs_collection
85
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
89
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
86
90
  remote: https://github.com/ruby/gem_rbs_collection.git
87
91
  repo_dir: gems
88
92
  - name: rspec-parameterized-core
@@ -98,7 +102,7 @@ gems:
98
102
  source:
99
103
  type: git
100
104
  name: ruby/gem_rbs_collection
101
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
105
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
102
106
  remote: https://github.com/ruby/gem_rbs_collection.git
103
107
  repo_dir: gems
104
108
  - name: rubocop-ast
@@ -106,7 +110,7 @@ gems:
106
110
  source:
107
111
  type: git
108
112
  name: ruby/gem_rbs_collection
109
- revision: 63c49dc63d905ff6f55bd3b19e576108da423b2b
113
+ revision: '09beb2100db10cbf4773ed0e71ddf79280a2f275'
110
114
  remote: https://github.com/ruby/gem_rbs_collection.git
111
115
  repo_dir: gems
112
116
  - name: tmpdir
data/rbs_collection.yaml CHANGED
@@ -25,3 +25,4 @@ gems:
25
25
 
26
26
  - name: yaml
27
27
  - name: tmpdir
28
+ - name: erb
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_header_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-11-24 00:00:00.000000000 Z
10
+ date: 2025-01-06 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rake
@@ -24,6 +23,20 @@ dependencies:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rbs
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.7.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 3.7.0
27
40
  - !ruby/object:Gem::Dependency
28
41
  name: rspec
29
42
  requirement: !ruby/object:Gem::Requirement
@@ -152,7 +165,7 @@ files:
152
165
  - README.md
153
166
  - Rakefile
154
167
  - Steepfile
155
- - config/default.yml
168
+ - config/default.yml.erb
156
169
  - lib/ruby_header_parser.rb
157
170
  - lib/ruby_header_parser/argument_definition.rb
158
171
  - lib/ruby_header_parser/config.rb
@@ -185,7 +198,6 @@ metadata:
185
198
  changelog_uri: https://github.com/ruby-go-gem/ruby_header_parser/blob/main/CHANGELOG.md
186
199
  documentation_uri: https://ruby-go-gem.github.io/ruby_header_parser/
187
200
  rubygems_mfa_required: 'true'
188
- post_install_message:
189
201
  rdoc_options: []
190
202
  require_paths:
191
203
  - lib
@@ -200,8 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
212
  - !ruby/object:Gem::Version
201
213
  version: '0'
202
214
  requirements: []
203
- rubygems_version: 3.5.16
204
- signing_key:
215
+ rubygems_version: 3.6.2
205
216
  specification_version: 4
206
217
  summary: Parser for ruby.h
207
218
  test_files: []