Module: Rison

Defined in:
lib/rison.rb,
lib/rison/dumper.rb,
lib/rison/parser.rb,
lib/rison/version.rb,
lib/rison/array/dumper.rb,
lib/rison/array/parser.rb,
lib/rison/object/dumper.rb,
lib/rison/object/parser.rb

Defined Under Namespace

Modules: Array, Object Classes: Dumper, DumperError, InvalidMode, Parser, ParserError

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.dump(object, options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rison.rb', line 17

def dump(object, options = {})
  mode = options[:mode] || :default

  case mode.to_sym
  when :default
    ::Rison::Dumper.dump(object)
  when :object
    ::Rison::Object::Dumper.dump_object(object)
  when :array
    ::Rison::Array::Dumper.dump_array(object)
  else
    raise InvalidMode.new("Invalid mode: #{mode}")
  end
end

.parse(source, options = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/rison.rb', line 32

def parse(source, options = {})
  mode = options[:mode] || :default

  parser_class = case mode.to_sym
                 when :default
                   ::Rison::Parser
                 when :object
                   ::Rison::Object::Parser
                 when :array
                   ::Rison::Array::Parser
                 else
                   raise InvalidMode.new("Invalid mode: #{mode}")
                 end

  object = parser_class.parse(source)
  return object unless options[:symbolize_names]
  deep_symbolize_names(object)
end