class Bare

Public Class Methods

Array(*opts) click to toggle source
# File lib/bare-rb.rb, line 154
def self.Array(*opts)
  return BareTypes::Array.new(*opts)
end
ArrayFixedLen(*opts) click to toggle source
# File lib/bare-rb.rb, line 158
def self.ArrayFixedLen(*opts)
  return BareTypes::ArrayFixedLen.new(*opts)
end
Bool() click to toggle source
# File lib/bare-rb.rb, line 146
def self.Bool
  return BareTypes::Bool.new
end
Data() click to toggle source
# File lib/bare-rb.rb, line 138
def self.Data
  return BareTypes::Data.new
end
DataFixedLen(*opts) click to toggle source
# File lib/bare-rb.rb, line 134
def self.DataFixedLen(*opts)
  return BareTypes::DataFixedLen.new(*opts)
end
Enum(*opts) click to toggle source
# File lib/bare-rb.rb, line 162
def self.Enum(*opts)
  return BareTypes::Enum.new(*opts)
end
F32() click to toggle source
# File lib/bare-rb.rb, line 78
def self.F32
  return BareTypes::F32.new
end
F64() click to toggle source
# File lib/bare-rb.rb, line 82
def self.F64
  return BareTypes::F64.new
end
I16() click to toggle source
# File lib/bare-rb.rb, line 110
def self.I16
  return BareTypes::I16.new
end
I32() click to toggle source
# File lib/bare-rb.rb, line 114
def self.I32
  return BareTypes::I32.new
end
I64() click to toggle source
# File lib/bare-rb.rb, line 118
def self.I64
  return BareTypes::I64.new
end
I8() click to toggle source
# File lib/bare-rb.rb, line 106
def self.I8
  return BareTypes::I8.new
end
Int() click to toggle source

These classes are wrapped in methods for ergonomics. Isn't Bare.Array(Bare.U8) nicer than Bare::Array.new(Bare::U8.new)?

# File lib/bare-rb.rb, line 70
def self.Int
  return BareTypes::Int.new
end
Map(*opts) click to toggle source
# File lib/bare-rb.rb, line 126
def self.Map(*opts)
  return BareTypes::Map.new(*opts)
end
Optional(*opts) click to toggle source
# File lib/bare-rb.rb, line 122
def self.Optional(*opts)
  return BareTypes::Optional.new(*opts)
end
Schema(hash) click to toggle source
# File lib/bare-rb.rb, line 34
def self.Schema(hash)
  Bare::Schema.new(hash)
end
String() click to toggle source
# File lib/bare-rb.rb, line 86
def self.String
  return BareTypes::String.new
end
Struct(*opts) click to toggle source
# File lib/bare-rb.rb, line 150
def self.Struct(*opts)
  return BareTypes::Struct.new(*opts)
end
U16() click to toggle source
# File lib/bare-rb.rb, line 94
def self.U16
  return BareTypes::U16.new
end
U32() click to toggle source
# File lib/bare-rb.rb, line 98
def self.U32
  return BareTypes::U32.new
end
U64() click to toggle source
# File lib/bare-rb.rb, line 102
def self.U64
  return BareTypes::U64.new
end
U8() click to toggle source
# File lib/bare-rb.rb, line 90
def self.U8
  return BareTypes::U8.new
end
Uint() click to toggle source
# File lib/bare-rb.rb, line 142
def self.Uint
  return BareTypes::Uint.new
end
Union(*opts) click to toggle source
# File lib/bare-rb.rb, line 130
def self.Union(*opts)
  return BareTypes::Union.new(*opts)
end
Void() click to toggle source
# File lib/bare-rb.rb, line 74
def self.Void
  return BareTypes::Void.new
end
decode(msg, schema, type=nil) click to toggle source
# File lib/bare-rb.rb, line 16
def self.decode(msg, schema, type=nil)
  if schema.is_a?(Bare::Schema)
    raise NoTypeProvided("To decode with a schema as opposed to a raw type you must specify which type in the same you want to encode as a symbol.\nBare.encode(msg, schema, :Type)") if type.nil?
    value, rest = schema[type].decode(msg)
    value
  else
    value, rest = schema.decode(msg)
    return value
  end
end
encode(msg, schema, type=nil) click to toggle source
# File lib/bare-rb.rb, line 7
def self.encode(msg, schema, type=nil)
  if schema.is_a?(Bare::Schema)
    raise NoTypeProvided("To encode with a schema as opposed to a raw type you must specify which type in the schema you want to encode as a symbol.\nBare.encode(msg, schema, :Type)") if type.nil?
    schema[type].encode(msg)
  else
    schema.encode(msg)
  end
end
parse_schema(path) click to toggle source
# File lib/bare-rb.rb, line 27
def self.parse_schema(path)
  # Hash of class names to BARE ASTs
  # Eg. types['Customer'] == Bare.i32
  types = parser(lexer(path))
  Bare.Schema(types)
end