Skip to content

liaden/binary_record

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BinaryRecord

Useful for specifying a class that can be serialized for network IO as well as saved to the database with all the functionality of active record.

Installation

Add this line to your application's Gemfile:

gem 'binary_record'

And then execute:

$ bundle

Or install it yourself as:

$ gem install binary_record

Usage

To serialize:

class Message < ActiveRecord::Base
  acts_as_serializable
  
  endian :big # or :little
  
  # order of validates_binary specifies the order of fields for the binary string
  
  # validates range
  validates_binary :field, :int16
  
  # adds after_initialize callback to set constant_field to 5
  # adds validator to check the value is indeed 5
  validates_binary :constant_field, :uint8, :value => 5
end

# writes out binary string
Message.new(:field => 3).to_binary_s

# returns null because message is not valid
Message.new(:field => 1000000000).to_binary_s

# throws exception because message is not valid
Message.new(:field => 1000000000).to_binary_s!

# parse binary string into a new instance of message
Message.read(binary_string) 

# parse binary string into this instance of message
message = Message.new
message.read(binary_string)

About

Merge ActiveRecord/BinData class specifications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages