Popularity
7.9
Growing
Activity
0.0
Declining
32
5
9

Monthly Downloads: 16
Programming language: Haskell
License: MIT License
Tags: Data    
Latest version: v0.2.0

ruby-marshal alternatives and similar packages

Based on the "Data" category.
Alternatively, view ruby-marshal alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of ruby-marshal or a related project?

Add another 'Data' Package

README

ruby-marshal

Build Status

Haskell library to parse a subset of Ruby objects serialised with Marshal.dump.

Supported Types

  • NilClass
  • TrueClass | FalseClass
  • Array
  • Fixnum
  • Float
  • Hash
  • String
  • Symbol

If you would like to add support for another type, please feel free to create an issue or open a pull request using the guidelines below.

Usage

Example

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Data.Ruby.Marshal
import Data.ByteString  (ByteString)
import System.Directory (getCurrentDirectory)

import qualified Data.ByteString as BS
import qualified Data.Map.Strict as DM

lookupUserID :: (ByteString, RubyStringEncoding)
             -> RubyObject
             -> Maybe (ByteString, RubyStringEncoding)
lookupUserID key hash = fromRuby hash >>= \cookie -> DM.lookup key cookie

main :: IO ()
main = do
  dir <- getCurrentDirectory
  rbs <- BS.readFile (mconcat [dir, "/test/bin/railsCookie.bin"])
  print $
    case decode rbs of
      Just cookie -> lookupUserID ("user_id", UTF_8) cookie
      Nothing     -> Nothing

Contributing

  1. Fork it.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request.

Contributors

Similar Libraries