class Aries::Param

Attributes

parent[R]

Public Class Methods

new(name, definition, parent = nil, options = {}) click to toggle source
# File lib/aries/param.rb, line 7
def initialize name, definition, parent = nil, options = {}
  @name = name
  @definition = definition
  @parent = parent
  @param_type = options[:type]
end

Public Instance Methods

has_children?() click to toggle source

@return [TrueClass, FalseClass] whether contains child parameters

# File lib/aries/param.rb, line 40
def has_children?
  @definition.type.detect{|type| type == "object" } != nil
end
inspect() click to toggle source
# File lib/aries/param.rb, line 49
def inspect
  return "#<Aries::Param name=#{name} >"
end
name() click to toggle source
# File lib/aries/param.rb, line 14
def name
  @name
end
optional?() click to toggle source

@return [TrueClass, FalseClass] whether contains null or not

# File lib/aries/param.rb, line 35
def optional?
  @definition.type.detect{|type| type == "null" } != nil
end
params() click to toggle source

@return [Array<Aries::Param>]

# File lib/aries/param.rb, line 28
def params
  @definition.properties.map do |name, definition|
    Aries::Param.new name, definition, self, type: @param_type
  end
end
pretty_name() click to toggle source

@return [String] name of param

# File lib/aries/param.rb, line 19
def pretty_name
  if @param_type == :url && has_resource?
    "#{@parent.parent.name}_#{name}"
  else
    name
  end
end
type() click to toggle source

@return [Array<Aries::Type>]

# File lib/aries/param.rb, line 45
def type
  Aries::ParamType.new @definition.type.detect{|type| type != "null"}, self
end

Private Instance Methods

has_resource?() click to toggle source
# File lib/aries/param.rb, line 65
def has_resource?
  if parent.kind_of?(Param)
    parent.has_resource?
  else
    parent.respond_to?(:parent) && parent.parent.kind_of?(Resource)
  end
end
param_tree() click to toggle source
# File lib/aries/param.rb, line 55
def param_tree
  trees = [self]
  pr = parent
  while pr.kind_of?(Param)
    trees.unshift pr
    pr = pr.parent
  end
  trees
end