Class/Module Index [+]

Quicksearch

Rison

Constants

FALSE
NIL
TRUE

Public Class Methods

Number(int, frac = nil, exp = nil) click to toggle source
# File lib/rison/parslet_transform.rb, line 39
def self.Number(int, frac = nil, exp = nil)
  base = frac ? int.to_i + Rational(frac.to_i, 10 ** frac.to_s.length) : int.to_i

  exp ? base * 10 ** exp.to_i : base
end
dump(object) click to toggle source
# File lib/rison/dump.rb, line 12
def self.dump(object)
  case object
    when NilClass then NIL

    when TrueClass then TRUE

    when FalseClass then FALSE

    when Symbol then object.to_s

    when Rational then object.to_f.to_s

    when Numeric then object.to_s

    when String then "'#{escape(object)}'"

    when Hash then '(%s)' % object.map { |(k, v)| "#{dump(k)}:#{dump(v)}" }.join(,,)

    when Array then '!(%s)' % object.map { |member| dump(member) }.join(,,)

    else
      raise DumpError, "Cannot encode #{object.class} objects"
  end
end
escape(string) click to toggle source
# File lib/rison/dump.rb, line 37
def self.escape(string)
  string.gsub('!', '!!').gsub("'", "!'")
end
load(string) click to toggle source
# File lib/rison.rb, line 8
def self.load(string)
  ParsletTransform.new.apply(ParsletParser.new.parse(string))
rescue Parslet::ParseFailed => exception
  raise ParseError, "Invalid Rison input. #{exception.message}"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.