class Hiiro::Tmux::Buffer

def self.from_format_line(line)

def self.from_format_line(line)
  return nil if line.nil? || line.strip.empty?
  parts = line.strip.split('|', 4)
  return nil if parts.size < 3
  name, size, created, sample = parts
  new(
    name: name,
    size: size.to_i,
    created: created.to_i,
    sample: sample
  )
end

def content

def content
  `tmux show-buffer -b #{name.shellescape} 2>/dev/null`
end

def delete

def delete
  system('tmux', 'delete-buffer', '-b', name)
end

def initialize(name:, size: 0, created: 0, sample: nil)

def initialize(name:, size: 0, created: 0, sample: nil)
  @name = name
  @size = size
  @created = created
  @sample = sample
end

def paste(target: nil)

def paste(target: nil)
  args = ['tmux', 'paste-buffer', '-b', name]
  args += ['-t', target] if target
  system(*args)
end

def save(path)

def save(path)
  system('tmux', 'save-buffer', '-b', name, path)
end

def to_h

def to_h
  {
    name: name,
    size: size,
    created: created,
    sample: sample
  }.compact
end

def to_s

def to_s
  "#{name}: #{sample}"
end