module EDN
Constants
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