class MatterCompiler::Parameter
URI parameter Blueprint
AST node
represents one 'parameters section' parameter
@attr type [String] an arbitrary type of the parameter or nil @attr use [Symbol] parameter necessity flag, `:required` or `:optional` @attr default_value
[String] default value of the parameter or nil
This is a value used when the parameter is ommited in the request.
@attr example_value
[String] example value of the parameter or nil @attr values [Array<String>] an enumeration of possible parameter values
Attributes
default_value[RW]
example_value[RW]
type[RW]
use[RW]
values[RW]
Public Instance Methods
load_ast!(ast)
click to toggle source
Calls superclass method
MatterCompiler::NamedBlueprintNode#load_ast!
# File lib/matter_compiler/blueprint.rb, line 153 def load_ast!(ast) super(ast) @type = ast[:type] if ast[:type] @use = (ast[:required] && ast[:required] == true) ? :required : :optional @default_value = ast[:default] if ast[:default] @example_value = ast[:example] if ast[:example] unless ast[:values].blank? @values = Array.new ast[:values].each do |item| @values << item[:value] end end end
serialize()
click to toggle source
# File lib/matter_compiler/blueprint.rb, line 169 def serialize # Parameter name buffer = "#{ONE_INDENTATION_LEVEL}+ #{@name}" # Default value buffer << " = `#{@default_value}`" if @default_value # Attributes unless @type.blank? && @example_value.blank? && @use == :required attribute_buffer = "" buffer << " (" # Type attribute_buffer << @type unless @type.blank? # Use if (@use == :optional) attribute_buffer << ", " unless attribute_buffer.empty? attribute_buffer << "optional" end # Example value unless (@example_value.blank?) attribute_buffer << ", " unless attribute_buffer.empty? attribute_buffer << "`#{@example_value}`" end buffer << attribute_buffer buffer << ")" end # Description if @description.blank? buffer << "\n" else if @description.lines.count == 1 # One line description buffer << " ... #{@description}" buffer << "\n" if @description[-1, 1] != "\n" # Additional newline needed if no provided else # Multi-line description buffer << "\n\n" @description.each_line do |line| 2.times { buffer << ONE_INDENTATION_LEVEL } buffer << "#{line}" end end end # Value unless @values.blank? buffer << "\n" 2.times { buffer << ONE_INDENTATION_LEVEL } buffer << "+ Values\n" @values.each do |value| 3.times { buffer << ONE_INDENTATION_LEVEL } buffer << "+ `#{value}`\n" end end buffer end