class Hakuban::LocalNode

Attributes

local_node_pointer[R]

TODO: explicit drop

Public Class Methods

new(name=nil) click to toggle source
# File lib/hakuban/hakuban.rb, line 53
def initialize(name=nil)
        @default_serializer = lambda { |data_type, data| 
                [["JSON"]+data_type, JSON.dump(data)] 
        }
        @default_deserializer = lambda { |data_type, data| 
                raise "Expected JSON serialized data, got: #{dat_type}"  if data_type[0] != "JSON"
                [data_type[1..-1], JSON.load(data)] 
        }
        Hakuban::logger_initialize("hakuban=warn", true)
        result = FFI::hakuban_local_node_new(name || File.basename(caller_locations(0..1)[1].path))
        Hakuban::raise_if_error(result)
        @local_node_pointer = ::FFI::AutoPointer.new(result[:local_node_pointer], FFI::method(:hakuban_local_node_drop))
end

Public Instance Methods

default_deserializer(&block) click to toggle source
# File lib/hakuban/hakuban.rb, line 85
def default_deserializer(&block)
        if block_given?
                @default_deserializer = block
        else
                @default_deserializer
        end
end
default_serializer(&block) click to toggle source
# File lib/hakuban/hakuban.rb, line 77
def default_serializer(&block)
        if block_given?
                @default_serializer = block
        else
                @default_serializer
        end
end
object(tags, descriptor) click to toggle source
# File lib/hakuban/hakuban.rb, line 93
def object(tags, descriptor)
        #TODO: accept real descriptor too
        ObjectBuilder.new(self, ObjectDescriptor.new(tags,descriptor), @default_serializer, @default_deserializer)
end
tag(descriptor) click to toggle source
# File lib/hakuban/hakuban.rb, line 98
def tag(descriptor)
        #TODO: accept real descriptor too
        TagBuilder.new(self, TagDescriptor.new(descriptor), @default_serializer, @default_deserializer)
end
with_default_deserializer(&block) click to toggle source
# File lib/hakuban/hakuban.rb, line 72
def with_default_deserializer(&block)
        @default_deserializer = block
        self
end
with_default_serializer(&block) click to toggle source
# File lib/hakuban/hakuban.rb, line 67
def with_default_serializer(&block)
        @default_serializer = block
        self
end