Class: YARD::Serializers::ProcessSerializer

Inherits:
Base
  • Object
show all
Defined in:
lib/yard/serializers/process_serializer.rb

Overview

Serializes an object to a process (like less)

Examples:

Serializing to a pager (less)

serializer = ProcessSerializer.new('less')
serializer.serialize(object, "data!")

Instance Attribute Summary

Attributes inherited from Base

#options

Instance Method Summary collapse

Methods inherited from Base

#after_serialize, #before_serialize, #exists?, #serialized_path

Constructor Details

#initialize(cmd) ⇒ ProcessSerializer

Creates a new ProcessSerializer for the shell command cmd

Parameters:

  • cmd (String)

    the command that will accept data on stdin



12
13
14
# File 'lib/yard/serializers/process_serializer.rb', line 12

def initialize(cmd)
  @cmd = cmd
end

Instance Method Details

#serialize(object, data) ⇒ Object

Overrides serialize behavour and writes data to standard input of the associated command



18
19
20
# File 'lib/yard/serializers/process_serializer.rb', line 18

def serialize(object, data)
  IO.popen(@cmd, 'w') {|io| io.write(data) }
end