Class: Hakuban::LocalNode
- Inherits:
-
Object
- Object
- Hakuban::LocalNode
- Defined in:
- lib/hakuban/hakuban.rb
Instance Attribute Summary collapse
-
#local_node_pointer ⇒ Object
readonly
TODO: explicit drop.
Instance Method Summary collapse
- #default_deserializer(&block) ⇒ Object
- #default_serializer(&block) ⇒ Object
-
#initialize(name: nil) ⇒ LocalNode
constructor
A new instance of LocalNode.
- #object(tags, descriptor) ⇒ Object
- #tag(descriptor) ⇒ Object
- #with_default_deserializer(&block) ⇒ Object
- #with_default_serializer(&block) ⇒ Object
Constructor Details
#initialize(name: nil) ⇒ LocalNode
Returns a new instance of LocalNode.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/hakuban/hakuban.rb', line 59 def initialize(name: nil) ::Hakuban::hakuban_initialize @default_serializer = lambda { |data_type, data| [["JSON"]+data_type, JSON.dump(data)] } @default_deserializer = lambda { |data_type, data| raise "Expected JSON serialized data, got: #{data_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 |
Instance Attribute Details
#local_node_pointer ⇒ Object (readonly)
TODO: explicit drop
57 58 59 |
# File 'lib/hakuban/hakuban.rb', line 57 def local_node_pointer @local_node_pointer end |
Instance Method Details
#default_deserializer(&block) ⇒ Object
92 93 94 95 96 97 98 |
# File 'lib/hakuban/hakuban.rb', line 92 def default_deserializer(&block) if block_given? @default_deserializer = block else @default_deserializer end end |
#default_serializer(&block) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/hakuban/hakuban.rb', line 84 def default_serializer(&block) if block_given? @default_serializer = block else @default_serializer end end |
#object(tags, descriptor) ⇒ Object
100 101 102 103 |
# File 'lib/hakuban/hakuban.rb', line 100 def object(, descriptor) #TODO: accept real descriptor too ObjectBuilder.new(self, ObjectDescriptor.new(,descriptor), @default_serializer, @default_deserializer) end |
#tag(descriptor) ⇒ Object
105 106 107 108 |
# File 'lib/hakuban/hakuban.rb', line 105 def tag(descriptor) #TODO: accept real descriptor too TagBuilder.new(self, TagDescriptor.new(descriptor), @default_serializer, @default_deserializer) end |
#with_default_deserializer(&block) ⇒ Object
79 80 81 82 |
# File 'lib/hakuban/hakuban.rb', line 79 def with_default_deserializer(&block) @default_deserializer = block self end |
#with_default_serializer(&block) ⇒ Object
74 75 76 77 |
# File 'lib/hakuban/hakuban.rb', line 74 def with_default_serializer(&block) @default_serializer = block self end |