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