Rubyfox::SFSObject
Gem | Source | Documentation
Converts between SmartFox's SFSObjects and Ruby Hashes.
Installation
Add this line to your application's Gemfile:
gem 'rubyfox-sfsobject', '~> 0.8.0'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rubyfox-sfsobject -v 0.8.0
Usage
Bulk mode
require 'rubyfox/sfsobject/bulk'
sfs_object = Rubyfox::SFSObject::Bulk.to_sfs({ :hello => "world" })
# => SFSObject ready to use in SmartFox
hash = Rubyfox::SFSObject::Bulk.to_hash(sfs_object)
# => { :hello => "world" }
Schema mode
require 'rubyfox/sfsobject/schema'
schema = { :hello => String }
sfs_object = Rubyfox::SFSObject::Schema.to_sfs(schema, { :hello => "world" })
# => SFSObject ready to use in SmartFox
hash = Rubyfox::SFSObject::Schema.to_hash(schema, sfs_object)
# => { :hello => "world" }
Core extension
You can extend Hash and SFSObject with method shortcuts:
require 'rubyfox/sfsobject/core_ext'
sfs_object = { :hello => "world" }.to_sfs
# => SFSObject
sfs_object.to_hash
# { :hello => "world" }
JSON
require 'rubyfox/sfsobject/core_ext'
json = sfs_object.to_json
Rubyfox::SFSObject.from_json(json)
Hash-like access
require 'rubyfox/sfsobject/core_ext'
sfs_object = Rubyfox::SFSObject[:meaning_of_life => 42]
sfs_object[:meaning_of_life] # => 42
sfs_object[:string] = "value"
sfs_object[:string] # => "value"
Caveats
- All hash keys will be converted to symbols
- In "bulk mode"
- all Ruby's Float values will be converted Java's double (via
putDouble
orputDoubleArray
) - all Java's double values will be converted to Ruby's float (via
getFloat
orgetFloatArray
)
- all Ruby's Float values will be converted Java's double (via
TODO
- More docs, please!
Release
- Bump
VERSION
inlib/rubyfox/sfsobject/version.rb
- Tweak versions in
README.md
- Commit version bump via
git commit -am "Release X.Y.Z"
- Run
rake release
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request