Class: JsonRpcObjects::V11::WD::ProcedureParameterDescription

Inherits:
Generic::Object
  • Object
show all
Defined in:
lib/json-rpc-objects/v11/wd/procedure-parameter-description.rb

Overview

Description of one procedure parameter.

Direct Known Subclasses

Alt::ProcedureParameterDescription

Constant Summary collapse

VERSION =

Holds link to its version module.

JsonRpcObjects::V11::WD
TYPE_TO_OBJECT =

Maps type to object (class).

Utils::Hash::define({
    :num => Integer,
    :str => String,
    :arr => Array,
    :obj => Object,
    :bit => GenericTypes::Boolean,
    :nil => GenericTypes::Nil,
    :any => GenericTypes::Any
}, GenericTypes::Any)
OBJECT_TO_TYPE =

Maps object (class) to type.

Utils::Hash::define({
    Integer => :num,
    String => :str,
    Array => :arr,
    Object => :obj,
    GenericTypes::Boolean => :bit,
    GenericTypes::Nil => :nil,
    GenericTypes::Any => :any
}, :any)

Instance Attribute Summary collapse

Attributes inherited from Generic::Object

#serializer

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Generic::Object

#initialize, parse, #serialize, #to_json, version

Constructor Details

This class inherits a constructor from JsonRpcObjects::Generic::Object

Instance Attribute Details

#nameSymbol

Holds parameter name.

Returns:

  • (Symbol)


72
73
74
# File 'lib/json-rpc-objects/v11/wd/procedure-parameter-description.rb', line 72

def name
  @name
end

#typeClass

Holds parameter type.

Returns:

  • (Class)


80
81
82
# File 'lib/json-rpc-objects/v11/wd/procedure-parameter-description.rb', line 80

def type
  @type
end

Class Method Details

.create(name, opts = { }) ⇒ V11:ProcedureParameterDescription

Creates new one.

Parameters:

  • name (Symbol)

    name of the parameter

Returns:

  • (V11:ProcedureParameterDescription)

    new description object



90
91
92
93
94
# File 'lib/json-rpc-objects/v11/wd/procedure-parameter-description.rb', line 90

def self.create(name, opts = { })
    data = { :name => name }
    data.merge! opts
    return self::new(data)
end

Instance Method Details

#check!Object

Checks correctness of the data.



100
101
102
103
104
105
106
107
108
109
110
# File 'lib/json-rpc-objects/v11/wd/procedure-parameter-description.rb', line 100

def check!
    self.normalize!
    
    if not @name.kind_of? Symbol
        raise Exception::new("Parameter name must be Symbol or convertable to Symbol.")
    end
    
    if (not @type.nil?) and (not Utils::Object.kind_of_any?(@type, [GenericTypes::Any, GenericTypes::Nil, GenericTypes::Boolean, Integer, String, Array, Object]))
        raise Exception::new("Type if defined can be only Any, Nil, Boolean, Integer, String, Array or Object.")
    end
end

#outputHash

Renders data to output hash.

Returns:

  • (Hash)

    with data of description



117
118
119
120
121
122
123
124
125
126
# File 'lib/json-rpc-objects/v11/wd/procedure-parameter-description.rb', line 117

def output
    self.check!
    data = { "name" => @name.to_s }
    
    if not @type.nil?
        data["type"] = __object_to_type.to_s
    end
    
    return data
end