module EDN

Constants

DIGITS
EOF

Object to return when we hit end of file. Cant be nil or :eof because either of those could be something in the EDN data.

NOTHING

Object returned when there is nothing to return

Parser
READERS

Reader table

SYMBOL_INTERIOR_CHARS
TAGS
VERSION

Public Class Methods

big_decimal(str) click to toggle source
# File lib/edn.rb, line 64
def self.big_decimal(str)
  BigDecimal.new(str)
end
list(values) click to toggle source
# File lib/edn.rb, line 56
def self.list(values)
  EDN::Type::List.new(*values)
end
new_parser(*args) click to toggle source
# File lib/edn/parser.rb, line 13
def self.new_parser(*args)
  @parser_class.new(*args)
end
parser=(p) click to toggle source
# File lib/edn/parser.rb, line 9
def self.parser=(p)
  @parser_class = p
end
read(edn, eof_value=NOTHING) click to toggle source
# File lib/edn.rb, line 15
def self.read(edn, eof_value=NOTHING)
  EDN::Reader.new(edn).read(eof_value)
end
register(tag, func = nil, &block) click to toggle source
# File lib/edn.rb, line 19
def self.register(tag, func = nil, &block)
  if block_given?
    func = block
  end

  if func.nil?
    func = lambda { |x| x }
  end

  if func.is_a?(Class)
    @tags[tag] = lambda { |*args| func.new(*args) }
  else
    @tags[tag] = func
  end
end
register_reader(ch, handler=nil, &block) click to toggle source
# File lib/edn/parser.rb, line 54
def self.register_reader(ch, handler=nil, &block)
  if handler
    READERS[ch] = handler
  else
    READERS[ch] = block
  end
end
set(*elems) click to toggle source
# File lib/edn.rb, line 60
def self.set(*elems)
  Set.new(*elems)
end
symbol(text) click to toggle source
# File lib/edn.rb, line 52
def self.symbol(text)
  EDN::Type::Symbol.new(text)
end
tagged_element(tag, element) click to toggle source
# File lib/edn.rb, line 39
def self.tagged_element(tag, element)
  func = @tags[tag]
  if func
    func.call(element)
  else
    EDN::Type::Unknown.new(tag, element)
  end
end
tagout(tag, element) click to toggle source
# File lib/edn.rb, line 48
def self.tagout(tag, element)
  ["##{tag}", element.to_edn].join(" ")
end
unregister(tag) click to toggle source
# File lib/edn.rb, line 35
def self.unregister(tag)
  @tags[tag] = nil
end