ruby_header_parser 0.3.0 → 0.4.0

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: 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: []