ruby-marshal-0.2.0: Parse a subset of Ruby objects serialised with Marshal.dump.
Copyright(c) Philip Cunningham 2015
LicenseMIT
Maintainerhello@filib.io
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.Ruby.Marshal.RubyObject

Description

Core RubyObject data representation.

Synopsis

Documentation

data RubyObject Source #

Representation of a Ruby object.

Constructors

RNil

represents nil

RBool !Bool

represents true or false

RFixnum !Int

represents a Fixnum

RArray !(Vector RubyObject)

represents an Array

RHash !(Vector (RubyObject, RubyObject))

represents an Hash

RIVar !(RubyObject, RubyStringEncoding)

represents an IVar

RString !ByteString

represents a String

RFloat !Float

represents a Float

RSymbol !ByteString

represents a Symbol

Unsupported

represents an invalid object

class Rubyable a where Source #

Transform plain Haskell values to RubyObjects and back.

Methods

toRuby :: a -> RubyObject Source #

Takes a plain Haskell value and lifts into RubyObject

fromRuby :: RubyObject -> Maybe a Source #

Takes a RubyObject transforms it into a more general Haskell value.

Instances

Instances details
Rubyable Bool Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable Float Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable Int Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable () Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable ByteString Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable RubyObject Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

(Rubyable a, Rubyable b) => Rubyable [(a, b)] Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Methods

toRuby :: [(a, b)] -> RubyObject Source #

fromRuby :: RubyObject -> Maybe [(a, b)] Source #

Rubyable a => Rubyable [a] Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable a => Rubyable (Maybe a) Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

(Rubyable a, Rubyable b) => Rubyable (Vector (a, b)) Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Methods

toRuby :: Vector (a, b) -> RubyObject Source #

fromRuby :: RubyObject -> Maybe (Vector (a, b)) Source #

Rubyable a => Rubyable (Vector a) Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

Rubyable (ByteString, RubyStringEncoding) Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject

(Rubyable a, Rubyable b, Ord a) => Rubyable (Map a b) Source # 
Instance details

Defined in Data.Ruby.Marshal.RubyObject