ffi-clang 0.13.0 → 0.14.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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/ext/rakefile.rb +2 -2
  4. data/lib/ffi/clang/clang_version.rb +7 -3
  5. data/lib/ffi/clang/code_completion.rb +121 -44
  6. data/lib/ffi/clang/comment.rb +164 -57
  7. data/lib/ffi/clang/compilation_database.rb +79 -25
  8. data/lib/ffi/clang/cursor.rb +395 -149
  9. data/lib/ffi/clang/diagnostic.rb +57 -23
  10. data/lib/ffi/clang/error.rb +12 -0
  11. data/lib/ffi/clang/file.rb +30 -11
  12. data/lib/ffi/clang/index.rb +37 -13
  13. data/lib/ffi/clang/lib/clang_version.rb +2 -2
  14. data/lib/ffi/clang/lib/code_completion.rb +15 -11
  15. data/lib/ffi/clang/lib/comment.rb +16 -14
  16. data/lib/ffi/clang/lib/compilation_database.rb +5 -5
  17. data/lib/ffi/clang/lib/cursor.rb +74 -56
  18. data/lib/ffi/clang/lib/diagnostic.rb +14 -14
  19. data/lib/ffi/clang/lib/file.rb +10 -6
  20. data/lib/ffi/clang/lib/inclusions.rb +3 -3
  21. data/lib/ffi/clang/lib/index.rb +7 -5
  22. data/lib/ffi/clang/lib/printing_policy.rb +36 -36
  23. data/lib/ffi/clang/lib/source_location.rb +9 -7
  24. data/lib/ffi/clang/lib/source_range.rb +5 -3
  25. data/lib/ffi/clang/lib/string.rb +9 -4
  26. data/lib/ffi/clang/lib/token.rb +17 -4
  27. data/lib/ffi/clang/lib/translation_unit.rb +17 -13
  28. data/lib/ffi/clang/lib/type.rb +19 -17
  29. data/lib/ffi/clang/lib.rb +35 -19
  30. data/lib/ffi/clang/platform.rb +25 -0
  31. data/lib/ffi/clang/printing_policy.rb +31 -18
  32. data/lib/ffi/clang/source_location.rb +119 -36
  33. data/lib/ffi/clang/source_range.rb +30 -12
  34. data/lib/ffi/clang/token.rb +48 -23
  35. data/lib/ffi/clang/translation_unit.rb +97 -33
  36. data/lib/ffi/clang/types/array.rb +15 -1
  37. data/lib/ffi/clang/types/elaborated.rb +19 -4
  38. data/lib/ffi/clang/types/function.rb +35 -10
  39. data/lib/ffi/clang/types/pointer.rb +23 -7
  40. data/lib/ffi/clang/types/record.rb +23 -8
  41. data/lib/ffi/clang/types/type.rb +80 -36
  42. data/lib/ffi/clang/types/type_def.rb +14 -2
  43. data/lib/ffi/clang/types/vector.rb +13 -1
  44. data/lib/ffi/clang/unsaved_file.rb +18 -8
  45. data/lib/ffi/clang/version.rb +4 -2
  46. data/lib/ffi/clang.rb +23 -45
  47. data/license.md +3 -2
  48. data/readme.md +12 -13
  49. data/releases.md +5 -0
  50. data.tar.gz.sig +0 -0
  51. metadata +10 -5
  52. metadata.gz.sig +0 -0
@@ -2,101 +2,145 @@
2
2
 
3
3
  # Released under the MIT License.
4
4
  # Copyright, 2013, by Carlos Martín Nieto.
5
- # Copyright, 2013-2024, by Samuel Williams.
5
+ # Copyright, 2013-2025, by Samuel Williams.
6
6
  # Copyright, 2013, by Takeshi Watanabe.
7
7
  # Copyright, 2014, by Masahiro Sano.
8
8
  # Copyright, 2014, by Niklas Therning.
9
- # Copyright, 2024, by Charlie Savage.
9
+ # Copyright, 2024-2025, by Charlie Savage.
10
10
 
11
11
  module FFI
12
12
  module Clang
13
13
  module Types
14
+ # Represents a type in the C/C++ type system.
15
+ # This class wraps libclang's type representation and provides methods to query type properties.
14
16
  class Type
17
+ # @attribute [r] type
18
+ # @returns [FFI::Struct] The underlying CXType structure.
19
+ # @attribute [r] translation_unit
20
+ # @returns [TranslationUnit] The translation unit this type belongs to.
15
21
  attr_reader :type, :translation_unit
16
-
17
- # Just hard code the types - they are not likely to change
22
+
23
+ # Create a type instance of the appropriate subclass based on the type kind.
24
+ # @parameter cxtype [FFI::Struct] The low-level CXType structure.
25
+ # @parameter translation_unit [TranslationUnit] The translation unit this type belongs to.
26
+ # @returns [Type] A Type instance of the appropriate subclass.
18
27
  def self.create(cxtype, translation_unit)
19
28
  case cxtype[:kind]
20
- when :type_pointer, :type_block_pointer, :type_obj_c_object_pointer, :type_member_pointer
21
- Pointer.new(cxtype, translation_unit)
22
- when :type_constant_array, :type_incomplete_array, :type_variable_array, :type_dependent_sized_array
23
- Array.new(cxtype, translation_unit)
24
- when :type_vector
25
- Vector.new(cxtype, translation_unit)
26
- when :type_function_no_proto, :type_function_proto
27
- Function.new(cxtype, translation_unit)
28
- when :type_elaborated
29
- Elaborated.new(cxtype, translation_unit)
30
- when :type_typedef
31
- TypeDef.new(cxtype, translation_unit)
32
- when :type_record
33
- Record.new(cxtype, translation_unit)
34
- else
35
- Type.new(cxtype, translation_unit)
29
+ when :type_pointer, :type_block_pointer, :type_obj_c_object_pointer, :type_member_pointer
30
+ Pointer.new(cxtype, translation_unit)
31
+ when :type_constant_array, :type_incomplete_array, :type_variable_array, :type_dependent_sized_array
32
+ Array.new(cxtype, translation_unit)
33
+ when :type_vector
34
+ Vector.new(cxtype, translation_unit)
35
+ when :type_function_no_proto, :type_function_proto
36
+ Function.new(cxtype, translation_unit)
37
+ when :type_elaborated
38
+ Elaborated.new(cxtype, translation_unit)
39
+ when :type_typedef
40
+ TypeDef.new(cxtype, translation_unit)
41
+ when :type_record
42
+ Record.new(cxtype, translation_unit)
43
+ else
44
+ Type.new(cxtype, translation_unit)
36
45
  end
37
46
  end
38
-
47
+
48
+ # Create a new type instance.
49
+ # @parameter type [FFI::Struct] The low-level CXType structure.
50
+ # @parameter translation_unit [TranslationUnit] The translation unit this type belongs to.
39
51
  def initialize(type, translation_unit)
40
52
  @type = type
41
53
  @translation_unit = translation_unit
42
54
  end
43
-
55
+
56
+ # Get the kind of this type.
57
+ # @returns [Symbol] The type kind (e.g., :type_int, :type_pointer).
44
58
  def kind
45
59
  @type[:kind]
46
60
  end
47
-
61
+
62
+ # Get the spelling of this type's kind.
63
+ # @returns [String] A human-readable string describing the type kind.
48
64
  def kind_spelling
49
65
  Lib.extract_string Lib.get_type_kind_spelling @type[:kind]
50
66
  end
51
-
67
+
68
+ # Get the spelling of this type.
69
+ # @returns [String] The type as it would appear in source code.
52
70
  def spelling
53
71
  Lib.extract_string Lib.get_type_spelling(@type)
54
72
  end
55
-
73
+
74
+ # Get the canonical type.
75
+ # @returns [Type] The canonical (unqualified, unaliased) form of this type.
56
76
  def canonical
57
77
  Type.create Lib.get_canonical_type(@type), @translation_unit
58
78
  end
59
-
79
+
80
+ # Check if this is a Plain Old Data (POD) type.
81
+ # @returns [Boolean] True if this is a POD type.
60
82
  def pod?
61
83
  Lib.is_pod_type(@type) != 0
62
84
  end
63
-
85
+
86
+ # Check if this type is const-qualified.
87
+ # @returns [Boolean] True if the type has a const qualifier.
64
88
  def const_qualified?
65
89
  Lib.is_const_qualified_type(@type) != 0
66
90
  end
67
-
91
+
92
+ # Check if this type is volatile-qualified.
93
+ # @returns [Boolean] True if the type has a volatile qualifier.
68
94
  def volatile_qualified?
69
95
  Lib.is_volatile_qualified_type(@type) != 0
70
96
  end
71
-
97
+
98
+ # Check if this type is restrict-qualified.
99
+ # @returns [Boolean] True if the type has a restrict qualifier.
72
100
  def restrict_qualified?
73
101
  Lib.is_restrict_qualified_type(@type) != 0
74
102
  end
75
-
103
+
104
+ # Get the alignment of this type in bytes.
105
+ # @returns [Integer] The alignment requirement in bytes.
76
106
  def alignof
77
107
  Lib.type_get_align_of(@type)
78
108
  end
79
-
109
+
110
+ # Get the size of this type in bytes.
111
+ # @returns [Integer] The size in bytes, or -1 if the size cannot be determined.
80
112
  def sizeof
81
113
  Lib.type_get_size_of(@type)
82
114
  end
83
-
115
+
116
+ # Get the ref-qualifier for this type (C++ only).
117
+ # @returns [Symbol] The ref-qualifier (:ref_qualifier_none, :ref_qualifier_lvalue, :ref_qualifier_rvalue).
84
118
  def ref_qualifier
85
119
  Lib.type_get_cxx_ref_qualifier(@type)
86
120
  end
87
-
121
+
122
+ # Get the cursor for the declaration of this type.
123
+ # @returns [Cursor] The cursor representing the type declaration.
88
124
  def declaration
89
125
  Cursor.new Lib.get_type_declaration(@type), @translation_unit
90
126
  end
91
-
127
+
128
+ # Get the non-reference type.
129
+ # For reference types, returns the type that is being referenced.
130
+ # @returns [Type] The non-reference type.
92
131
  def non_reference_type
93
132
  Type.create Lib.get_non_reference_type(@type),@translation_unit
94
133
  end
95
-
134
+
135
+ # Compare this type with another for equality.
136
+ # @parameter other [Type] The other type to compare.
137
+ # @returns [Boolean] True if the types are equal.
96
138
  def ==(other)
97
139
  Lib.equal_types(@type, other.type) != 0
98
140
  end
99
-
141
+
142
+ # Get a string representation of this type.
143
+ # @returns [String] A string describing this type.
100
144
  def to_s
101
145
  "#{self.class.name} <#{self.kind}: #{self.spelling}>"
102
146
  end
@@ -1,15 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2024, by Charlie Savage.
5
+ # Copyright, 2025, by Samuel Williams.
6
+
1
7
  module FFI
2
8
  module Clang
3
9
  module Types
10
+ # Represents a typedef type.
11
+ # A typedef provides an alias for another type.
4
12
  class TypeDef < Type
13
+ # Get the canonical (underlying) type.
14
+ # @returns [Type] The canonical type that this typedef aliases.
5
15
  def canonical
6
16
  Type.create Lib.get_canonical_type(@type), @translation_unit
7
17
  end
8
-
18
+
19
+ # Check if this typedef aliases an anonymous type.
20
+ # @returns [Boolean] True if the canonical type is an anonymous record.
9
21
  def anonymous?
10
22
  self.canonical.kind == :type_record && self.canonical.anonymous?
11
23
  end
12
24
  end
13
25
  end
14
26
  end
15
- end
27
+ end
@@ -1,11 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2024, by Charlie Savage.
5
+ # Copyright, 2025, by Samuel Williams.
6
+
1
7
  module FFI
2
8
  module Clang
3
9
  module Types
10
+ # Represents a vector type (SIMD vector).
11
+ # Vector types are used for SIMD operations and have a fixed number of elements of the same type.
4
12
  class Vector < Type
13
+ # Get the element type of this vector.
14
+ # @returns [Type] The type of elements in this vector.
5
15
  def element_type
6
16
  Type.create Lib.get_element_type(@type), @translation_unit
7
17
  end
8
-
18
+
19
+ # Get the number of elements in this vector.
20
+ # @returns [Integer] The number of elements.
9
21
  def size
10
22
  Lib.get_num_elements(@type)
11
23
  end
@@ -2,32 +2,42 @@
2
2
 
3
3
  # Released under the MIT License.
4
4
  # Copyright, 2013, by Carlos Martín Nieto.
5
- # Copyright, 2013-2022, by Samuel Williams.
5
+ # Copyright, 2013-2025, by Samuel Williams.
6
6
  # Copyright, 2014, by Masahiro Sano.
7
7
 
8
8
  module FFI
9
9
  module Clang
10
+ # Represents an unsaved file with in-memory contents for parsing.
10
11
  class UnsavedFile
12
+ # Initialize an unsaved file with filename and contents.
13
+ # @parameter filename [String] The path to the unsaved file.
14
+ # @parameter contents [String] The in-memory contents of the file.
11
15
  def initialize(filename, contents)
12
16
  @filename = filename
13
17
  @contents = contents
14
18
  end
15
-
16
- attr_accessor :filename, :contents
17
-
18
-
19
+
20
+ # @attribute [String] The path to the unsaved file.
21
+ attr_accessor :filename
22
+
23
+ # @attribute [String] The in-memory contents of the file.
24
+ attr_accessor :contents
25
+
26
+ # Convert an array of unsaved files to a libclang pointer structure.
27
+ # @parameter unsaved [Array(UnsavedFile)] The array of unsaved files.
28
+ # @returns [FFI::MemoryPointer | Nil] A pointer to the unsaved file structures, or `nil` if empty.
19
29
  def self.unsaved_pointer_from(unsaved)
20
30
  return nil if unsaved.length == 0
21
-
31
+
22
32
  vec = MemoryPointer.new(Lib::CXUnsavedFile, unsaved.length)
23
-
33
+
24
34
  unsaved.each_with_index do |file, i|
25
35
  uf = Lib::CXUnsavedFile.new(vec + i * Lib::CXUnsavedFile.size)
26
36
  uf[:filename] = MemoryPointer.from_string(file.filename)
27
37
  uf[:contents] = MemoryPointer.from_string(file.contents)
28
38
  uf[:length] = file.contents.length
29
39
  end
30
-
40
+
31
41
  vec
32
42
  end
33
43
  end
@@ -3,10 +3,12 @@
3
3
  # Released under the MIT License.
4
4
  # Copyright, 2010, by Jari Bakken.
5
5
  # Copyright, 2012, by Hal Brodigan.
6
- # Copyright, 2013-2024, by Samuel Williams.
6
+ # Copyright, 2013-2025, by Samuel Williams.
7
7
 
8
+ # @namespace
8
9
  module FFI
10
+ # @namespace
9
11
  module Clang
10
- VERSION = "0.13.0"
12
+ VERSION = "0.14.0"
11
13
  end
12
14
  end
data/lib/ffi/clang.rb CHANGED
@@ -3,55 +3,33 @@
3
3
  # Released under the MIT License.
4
4
  # Copyright, 2010-2011, by Jari Bakken.
5
5
  # Copyright, 2012, by Hal Brodigan.
6
- # Copyright, 2013-2022, by Samuel Williams.
6
+ # Copyright, 2013-2025, by Samuel Williams.
7
7
  # Copyright, 2013, by Garry Marshall.
8
8
  # Copyright, 2013, by Carlos Martín Nieto.
9
9
  # Copyright, 2014, by Masahiro Sano.
10
-
11
- require 'ffi'
12
- require 'rbconfig'
13
-
14
- module FFI::Clang
15
- class Error < StandardError
16
- end
17
-
18
- def self.platform
19
- os = RbConfig::CONFIG["host_os"]
20
-
21
- case os
22
- when /darwin/
23
- :darwin
24
- when /linux/
25
- :linux
26
- when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
27
- :windows
28
- else
29
- os
30
- end
31
- end
32
- end
10
+ # Copyright, 2024, by Charlie Savage.
33
11
 
34
12
  # Load the shared object:
35
- require_relative 'clang/lib'
13
+ require_relative "clang/lib"
36
14
 
37
15
  # Wrappers around C functionality:
38
- require_relative 'clang/clang_version'
39
- require_relative 'clang/index'
40
- require_relative 'clang/translation_unit'
41
- require_relative 'clang/diagnostic'
42
- require_relative 'clang/cursor'
43
- require_relative 'clang/source_location'
44
- require_relative 'clang/source_range'
45
- require_relative 'clang/unsaved_file'
46
- require_relative 'clang/token'
47
- require_relative 'clang/code_completion'
48
- require_relative 'clang/compilation_database'
49
-
50
- require_relative 'clang/types/type'
51
- require_relative 'clang/types/array'
52
- require_relative 'clang/types/elaborated'
53
- require_relative 'clang/types/function'
54
- require_relative 'clang/types/pointer'
55
- require_relative 'clang/types/record'
56
- require_relative 'clang/types/type_def'
57
- require_relative 'clang/types/vector'
16
+ require_relative "clang/clang_version"
17
+ require_relative "clang/index"
18
+ require_relative "clang/translation_unit"
19
+ require_relative "clang/diagnostic"
20
+ require_relative "clang/cursor"
21
+ require_relative "clang/source_location"
22
+ require_relative "clang/source_range"
23
+ require_relative "clang/unsaved_file"
24
+ require_relative "clang/token"
25
+ require_relative "clang/code_completion"
26
+ require_relative "clang/compilation_database"
27
+
28
+ require_relative "clang/types/type"
29
+ require_relative "clang/types/array"
30
+ require_relative "clang/types/elaborated"
31
+ require_relative "clang/types/function"
32
+ require_relative "clang/types/pointer"
33
+ require_relative "clang/types/record"
34
+ require_relative "clang/types/type_def"
35
+ require_relative "clang/types/vector"
data/license.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Copyright, 2010-2012, by Jari Bakken.
4
4
  Copyright, 2012, by Hal Brodigan.
5
- Copyright, 2013-2024, by Samuel Williams.
5
+ Copyright, 2013-2025, by Samuel Williams.
6
6
  Copyright, 2013, by Garry Marshall.
7
7
  Copyright, 2013-2014, by Carlos Martín Nieto.
8
8
  Copyright, 2013, by Dave Wilkinson.
@@ -18,7 +18,8 @@ Copyright, 2019, by Michael Metivier.
18
18
  Copyright, 2019, by Dominic Sisnero.
19
19
  Copyright, 2020, by Zete Lui.
20
20
  Copyright, 2022, by Motonori Iwamuro.
21
- Copyright, 2023-2024, by Charlie Savage.
21
+ Copyright, 2023-2025, by Charlie Savage.
22
+ Copyright, 2024, by msepga.
22
23
 
23
24
  Permission is hereby granted, free of charge, to any person obtaining a copy
24
25
  of this software and associated documentation files (the "Software"), to deal
data/readme.md CHANGED
@@ -20,16 +20,7 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- Traverse the AST in the given file:
24
-
25
- index = Index.new
26
- translation_unit = index.parse_translation_unit("list.c")
27
- cursor = translation_unit.cursor
28
- cursor.visit_children do |cursor, parent|
29
- puts "#{cursor.kind} #{cursor.spelling.inspect}"
30
-
31
- next :recurse
32
- end
23
+ Please see the [project documentation](https://ioquatix.github.io/ffi-clang/) for more details.
33
24
 
34
25
  ### Library Version
35
26
 
@@ -37,6 +28,14 @@ Due to issues figuring out which library to use, we require you to manually spec
37
28
 
38
29
  LLVM_CONFIG=llvm-config-mp-3.4 rake
39
30
 
31
+ ## Releases
32
+
33
+ Please see the [project releases](https://ioquatix.github.io/ffi-clang/releases/index) for all releases.
34
+
35
+ ### v0.14.0
36
+
37
+ - Helper method that returns a curors's <code class="language-ruby">FFI::Clang::Cursor\#qualified\_display\_name</code>.
38
+
40
39
  ## Contributing
41
40
 
42
41
  We welcome contributions to this project.
@@ -49,8 +48,8 @@ We welcome contributions to this project.
49
48
 
50
49
  ### Developer Certificate of Origin
51
50
 
52
- This project uses the [Developer Certificate of Origin](https://developercertificate.org/). All contributors to this project must agree to this document to have their contributions accepted.
51
+ In order to protect users of this project, we require all contributors to comply with the [Developer Certificate of Origin](https://developercertificate.org/). This ensures that all contributions are properly licensed and attributed.
53
52
 
54
- ### Contributor Covenant
53
+ ### Community Guidelines
55
54
 
56
- This project is governed by the [Contributor Covenant](https://www.contributor-covenant.org/). All contributors and participants agree to abide by its terms.
55
+ This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.
data/releases.md ADDED
@@ -0,0 +1,5 @@
1
+ # Releases
2
+
3
+ ## v0.14.0
4
+
5
+ - Helper method that returns a curors's {ruby FFI::Clang::Cursor\#qualified\_display\_name}.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-clang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  - Masahiro Sano
9
- - Carlos Martín Nieto
10
9
  - Charlie Savage
10
+ - Carlos Martín Nieto
11
11
  - Jari Bakken
12
12
  - Takeshi Watanabe
13
13
  - Garry Marshall
@@ -23,6 +23,7 @@ authors:
23
23
  - Cameron Dutro
24
24
  - Dominic Sisnero
25
25
  - Hal Brodigan
26
+ - msepga
26
27
  bindir: bin
27
28
  cert_chain:
28
29
  - |
@@ -54,7 +55,7 @@ cert_chain:
54
55
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
55
56
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
56
57
  -----END CERTIFICATE-----
57
- date: 2025-02-16 00:00:00.000000000 Z
58
+ date: 1980-01-02 00:00:00.000000000 Z
58
59
  dependencies:
59
60
  - !ruby/object:Gem::Dependency
60
61
  name: ffi
@@ -83,6 +84,7 @@ files:
83
84
  - lib/ffi/clang/compilation_database.rb
84
85
  - lib/ffi/clang/cursor.rb
85
86
  - lib/ffi/clang/diagnostic.rb
87
+ - lib/ffi/clang/error.rb
86
88
  - lib/ffi/clang/file.rb
87
89
  - lib/ffi/clang/index.rb
88
90
  - lib/ffi/clang/lib.rb
@@ -102,6 +104,7 @@ files:
102
104
  - lib/ffi/clang/lib/token.rb
103
105
  - lib/ffi/clang/lib/translation_unit.rb
104
106
  - lib/ffi/clang/lib/type.rb
107
+ - lib/ffi/clang/platform.rb
105
108
  - lib/ffi/clang/printing_policy.rb
106
109
  - lib/ffi/clang/source_location.rb
107
110
  - lib/ffi/clang/source_range.rb
@@ -119,10 +122,12 @@ files:
119
122
  - lib/ffi/clang/version.rb
120
123
  - license.md
121
124
  - readme.md
125
+ - releases.md
122
126
  homepage: https://github.com/ioquatix/ffi-clang
123
127
  licenses:
124
128
  - MIT
125
129
  metadata:
130
+ documentation_uri: https://ioquatix.github.io/ffi-clang/
126
131
  funding_uri: https://github.com/sponsors/ioquatix/
127
132
  source_code_uri: https://github.com/ioquatix/ffi-clang.git
128
133
  rdoc_options: []
@@ -132,14 +137,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
137
  requirements:
133
138
  - - ">="
134
139
  - !ruby/object:Gem::Version
135
- version: '3.1'
140
+ version: '3.2'
136
141
  required_rubygems_version: !ruby/object:Gem::Requirement
137
142
  requirements:
138
143
  - - ">="
139
144
  - !ruby/object:Gem::Version
140
145
  version: '0'
141
146
  requirements: []
142
- rubygems_version: 3.6.2
147
+ rubygems_version: 3.7.2
143
148
  specification_version: 4
144
149
  summary: Ruby FFI bindings for libclang C interface.
145
150
  test_files: []
metadata.gz.sig CHANGED
Binary file