module C

Public Class Methods

from_h(h) click to toggle source

Deserialize an AST from a given Hash representation.

# File lib/cast-to-yaml/to_h.rb, line 71
def self.from_h(h)
  kind = h["kind"]
  raise ArgumentError, "missing node kind" unless kind
  klass = C.const_get(class_name_from_kind(kind))
  raise ArgumentError, "unknown node" unless klass
  return klass.send(:from_h, h)
end

Private Class Methods

class_name_from_kind(kind) click to toggle source
# File lib/cast-to-yaml/to_h.rb, line 81
def self.class_name_from_kind(kind)
  kind.split("_").collect(&:capitalize).join
end