dmacvicar/ruby-sfcc — pull request #10 by miminar (2012-08-08 13:18:22+00:00)
Title: Provide a way to pass type information along with value to methods

Made CIMCData a ruby object to allow passing values along with types to client methods.
### Use case:
Some C sfcb provider is accepting a UInt8 value as method parameter.
Originally passing some integer to a method as parameter would turn in into ```CIMCData d = { .type = CIMC_sint64, .value.sint64 = val };```
But providers are often coded in the way, that they check for exact type of input parameter and fail in case
they not match.
So with this modification one can write:
```
client.invoke_method(object_path, "some_method_name",
{ "Param1" => Sfcc::Cim::Data.new("UInt8", 10) }, out)
```

#### Changes from previous pull request
* I've found out, that cloning is not necessary. Operations on container cimc types (`CIMCArray`, `CIMCArgs`), like get or set attributes, do the cloning themselfs, so it is safe to release them. This greatly simplifies the code.
* Now I keep closer to upstream's coding style.
* Each commit contain atomic changes.