Module: RDF::BERT
- Defined in:
- lib/rdf/bert.rb,
lib/rdf/bert/server.rb,
lib/rdf/bert/client.rb,
lib/rdf/bert/version.rb
Defined Under Namespace
Modules: VERSION Classes: Client, Server
Constant Summary
- DEFAULT_PORT =
8000
Class Method Summary (collapse)
- + (RDF::Value) decode(data)
- + (String) encode(value, options = {})
- + (Object) serialize(value, options = {})
- + (RDF::Value) unserialize(value)
Class Method Details
+ (RDF::Value) decode(data)
37 38 39 |
# File 'lib/rdf/bert.rb', line 37 def self.decode(data) unserialize(::BERT.decode(data)) end |
+ (String) encode(value, options = {})
17 18 19 |
# File 'lib/rdf/bert.rb', line 17 def self.encode(value, = {}) ::BERT.encode(serialize(value, )) end |
+ (Object) serialize(value, options = {})
25 26 27 28 29 30 31 32 |
# File 'lib/rdf/bert.rb', line 25 def self.serialize(value, = {}) case value when nil then nil when Array then RDF::Statement(*value).to_bert when RDF::Value then value.to_bert else RDF::Literal(value, ).to_bert end end |
+ (RDF::Value) unserialize(value)
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/rdf/bert.rb', line 44 def self.unserialize(value) case value when nil then nil when :f, :t, FalseClass, TrueClass, Integer, Float RDF::Literal(value) when Array, ::BERT::Tuple case tag = value.first when :3' then RDF::Statement(*value[1..3].map { |term| unserialize(term) }) #when :'4' then RDF::Statement(*value[1..3].map { |term| unserialize(term) }, :context => unserialize(value[4])) # FIXME on Ruby 1.8 when :?' then RDF::Query::Variable.new(value[1]) when ::' then RDF::Node(value[1]) when :<' then RDF::URI(value[1]) when :"' then RDF::Literal(value[1]) when :@' then RDF::Literal(value[1], :language => value[2]) when :^' then RDF::Literal(value[1], :datatype => value[2]) else value # FIXME end else raise ArgumentError, "invalid RDF/BERT value: #{value.inspect}" end end |