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