Spec-Zone.ru › Ruby 3

класс Fiddle::CStruct

Родитель:
Объект
Включённые модули:
Enumerable

Базовый класс для объектов, представляющих структуру C

Публичные методы класса

entity_class() Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 12
def CStruct.entity_class
  CStructEntity
end

Доступ к Fiddle::CStructEntity

Публичные методы экземпляра

each() { |self| ... } Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 16
def each
  return enum_for(__function__) unless block_given?

  self.class.members.each do |name,|
    yield(self[name])
  end
end
each_pair() { |name, self| ... } Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 24
def each_pair
  return enum_for(__function__) unless block_given?

  self.class.members.each do |name,|
    yield(name, self[name])
  end
end
replace(another) Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 40
def replace(another)
  if another.nil?
    self.class.members.each do |name,|
      self[name] = nil
    end
  elsif another.respond_to?(:each_pair)
    another.each_pair do |name, value|
      self[name] = value
    end
  else
    another.each do |name, value|
      self[name] = value
    end
  end
  self
end
to_h() Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 32
def to_h
  hash = {}
  each_pair do |name, value|
    hash[name] = unstruct(value)
  end
  hash
end

Приватные методы экземпляра

unstruct(value) Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 58
def unstruct(value)
  case value
  when CStruct
    value.to_h
  when Array
    value.collect do |v|
      unstruct(v)
    end
  else
    value
  end
end

Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API