Class: Fields::ContainerField

Inherits:
Field
  • Object
show all
Defined in:
lib/hammer_cli/output/fields.rb

Direct Known Subclasses

Collection, Label

Instance Attribute Summary

Attributes inherited from Field

#deprecated, #label, #parent, #path, #replaced_by, #sets

Instance Method Summary collapse

Methods inherited from Field

#full_label, #hide_blank?, #hide_missing?, #id, #match_id?, #parameters

Constructor Details

#initialize(options = {}, &block) ⇒ ContainerField

Returns a new instance of ContainerField.



74
75
76
77
78
79
80
# File 'lib/hammer_cli/output/fields.rb', line 74

def initialize(options={}, &block)
  super(options)
  dsl = HammerCLI::Output::Dsl.new
  dsl.build(&block) if block_given?
  dsl.fields.each { |f| f.parent = self }
  self.output_definition.append dsl.fields
end

Instance Method Details

#display?(value) ⇒ Boolean

Returns:



91
92
93
94
95
96
97
98
99
# File 'lib/hammer_cli/output/fields.rb', line 91

def display?(value)
  if value.is_a?(HammerCLI::Output::DataMissing)
    !hide_missing?
  elsif value.nil? || value.empty?
    !hide_blank?
  else
    true
  end
end

#fieldsObject



87
88
89
# File 'lib/hammer_cli/output/fields.rb', line 87

def fields
  @output_definition.fields
end

#output_definitionObject



82
83
84
85
# File 'lib/hammer_cli/output/fields.rb', line 82

def output_definition
  @output_definition ||= HammerCLI::Output::Definition.new
  @output_definition
end