Class: Aries::Param

Inherits:
Object
  • Object
show all
Defined in:
lib/aries/param.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, definition, parent = nil, options = {}) ⇒ Param

Returns a new instance of Param.



7
8
9
10
11
12
# 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

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



5
6
7
# File 'lib/aries/param.rb', line 5

def parent
  @parent
end

Instance Method Details

#has_children?TrueClass, FalseClass

Returns whether contains child parameters.

Returns:

  • (TrueClass, FalseClass)

    whether contains child parameters



40
41
42
# File 'lib/aries/param.rb', line 40

def has_children?
  @definition.type.detect{|type| type == "object" } != nil
end

#inspectObject



49
50
51
# File 'lib/aries/param.rb', line 49

def inspect
  return "#<Aries::Param name=#{name} >"
end

#nameObject



14
15
16
# File 'lib/aries/param.rb', line 14

def name
  @name
end

#optional?TrueClass, FalseClass

Returns whether contains null or not.

Returns:

  • (TrueClass, FalseClass)

    whether contains null or not



35
36
37
# File 'lib/aries/param.rb', line 35

def optional?
  @definition.type.detect{|type| type == "null" } != nil
end

#paramsArray<Aries::Param>

Returns:



28
29
30
31
32
# 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_nameString

Returns name of param.

Returns:

  • (String)

    name of param



19
20
21
22
23
24
25
# File 'lib/aries/param.rb', line 19

def pretty_name
  if @param_type == :url && has_resource?
    "#{@parent.parent.name}_#{name}"
  else
    name
  end
end

#typeArray<Aries::Type>

Returns:

  • (Array<Aries::Type>)


45
46
47
# File 'lib/aries/param.rb', line 45

def type
  Aries::ParamType.new @definition.type.detect{|type| type != "null"}, self
end