Skip to content

Instantly share code, notes, and snippets.

@okabe-yuya
Created September 6, 2022 00:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save okabe-yuya/d01b87f18fa0693565dfbd671f637647 to your computer and use it in GitHub Desktop.
Save okabe-yuya/d01b87f18fa0693565dfbd671f637647 to your computer and use it in GitHub Desktop.
# Adapte
module Adaoter
class Queue
attr_reader :queue
def initialize
@queue = []
end
def enqueue(val)
@queue.append(val); self
end
def dequeue
@queue.shift
end
end
# Target<#interface>
class ExntendQueue
def length
raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
#FFmpeg等、エンコーダーに合わせた処理を実装する。
end
end
end
class Main
include Adaoter
attr_reader :queue
def initialize
@queue = Queue.new()
end
def length
@queue.queue.size
end
end
extend_queue = Main.new()
p extend_queue.length # 0
extend_queue.queue.enqueue(99).enqueue(98)
p extend_queue.length # 2
p extend_queue.queue.dequeue # 99
p extend_queue.length # 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment