Class: Fzeet::Windows::SYSTEMTIME

Inherits:
FFI::Struct
  • Object
show all
Defined in:
lib/fzeet/windows/core/SystemTime.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](time) ⇒ Object Also known as: from



16
# File 'lib/fzeet/windows/core/SystemTime.rb', line 16

def self.[](time) new.set(time) end

Instance Method Details

#==(other) ⇒ Object



41
# File 'lib/fzeet/windows/core/SystemTime.rb', line 41

def ==(other) members.all? { |member| self[member] == other[member] } end

#dupObject



23
# File 'lib/fzeet/windows/core/SystemTime.rb', line 23

def dup; self.class.new.tap { |st| st.members.each { |member| st[member] = self[member] } } end

#get(as = :local) ⇒ Object



25
26
27
28
29
30
# File 'lib/fzeet/windows/core/SystemTime.rb', line 25

def get(as = :local)
	Time.send(as,
		self[:wYear], self[:wMonth], self[:wDay],
		self[:wHour], self[:wMinute], self[:wSecond], self[:wMilliseconds] * 1000
	)
end

#set(time) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/fzeet/windows/core/SystemTime.rb', line 32

def set(time)
	tap { |st|
		st[:wYear], st[:wMonth], st[:wDay],
		st[:wHour], st[:wMinute], st[:wSecond], st[:wMilliseconds] =
		time.year, time.month, time.day,
		time.hour, time.min, time.sec, (time.usec.to_f / 1000).round
	}
end