You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ffi-clang/lib/ffi/clang/file.rb

53 lines
943 B
Ruby

# frozen_string_literal: true
# Released under the MIT License.
# Copyright, 2014, by Masahiro Sano.
# Copyright, 2014-2022, by Samuel Williams.
require_relative 'lib/file'
module FFI
module Clang
class File < Pointer
attr_reader :translation_unit
def initialize(pointer, translation_unit)
super pointer
@translation_unit = translation_unit
pointer = MemoryPointer.new(Lib::CXFileUniqueID)
Lib.get_file_unique_id(self, pointer)
@unique_id = Lib::CXFileUniqueID.new(pointer)
end
def to_s
name
end
def name
Lib.extract_string Lib.get_file_name(self)
end
def time
Time.at(Lib.get_file_time(self))
end
def include_guarded?
Lib.is_file_multiple_include_guarded(@translation_unit, self) != 0
end
def device
@unique_id[:device]
end
def inode
@unique_id[:inode]
end
def modification
Time.at(@unique_id[:modification])
end
end
end
end