Class: YARD::CLI::Display

Inherits:
Yardoc show all
Defined in:
lib/yard/cli/display.rb

Overview

Display one object

Since:

  • 0.8.6

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Display

Returns a new instance of Display.

Since:

  • 0.8.6



9
10
11
12
13
14
# File 'lib/yard/cli/display.rb', line 9

def initialize(*args)
  super
  options.format = :text # default for this command
  @layout = nil
  @objects = []
end

Instance Method Details

#descriptionObject

Since:

  • 0.8.6



7
# File 'lib/yard/cli/display.rb', line 7

def description; 'Displays a formatted object' end

#format_objectsString

Returns the output data for all formatted objects.

Returns:

  • (String)

    the output data for all formatted objects

Since:

  • 0.8.6



27
28
29
30
31
# File 'lib/yard/cli/display.rb', line 27

def format_objects
  @objects.inject([]) do |arr, obj|
    arr.push obj.format(options)
  end.join("\n")
end

#output_options(opts) ⇒ Object

Since:

  • 0.8.6



61
62
63
64
65
66
# File 'lib/yard/cli/display.rb', line 61

def output_options(opts)
  super(opts)
  opts.on('-l', '--layout [LAYOUT]', 'Wraps output in layout template (good for HTML)') do |layout|
    @layout = layout || 'layout'
  end
end

#parse_arguments(*args) ⇒ Object

Parses commandline options.

Parameters:

Since:

  • 0.8.6



46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/yard/cli/display.rb', line 46

def parse_arguments(*args)
  opts = OptionParser.new
  opts.banner = "Usage: yard display [options] OBJECT [OTHER OBJECTS]"
  general_options(opts)
  output_options(opts)
  parse_options(opts, args)

  Registry.load
  @objects = args.map {|o| Registry.at(o) }

  # validation
  return false if @objects.any?(&:nil?)
  verify_markup_options
end

#run(*args) ⇒ void

This method returns an undefined value.

Runs the commandline utility, parsing arguments and displaying an object from the Registry.

Parameters:

Since:

  • 0.8.6



21
22
23
24
# File 'lib/yard/cli/display.rb', line 21

def run(*args)
  return unless parse_arguments(*args)
  log.puts wrap_layout(format_objects)
end

#wrap_layout(contents) ⇒ Object

Since:

  • 0.8.6



33
34
35
36
37
38
39
40
41
42
# File 'lib/yard/cli/display.rb', line 33

def wrap_layout(contents)
  return contents unless @layout
  opts = options.merge(
    :contents => contents,
    :object => @objects.first,
    :objects => @objects
  )
  args = [options.template, @layout, options.format]
  Templates::Engine.template(*args).run(opts)
end