Module: Peruby::Node::SExpression
- Defined in:
- lib/peruby/node.rb
Overview
Recursive S-expression conversion shared by all immutable nodes.
Instance Method Summary collapse
Instance Method Details
#to_sexp ⇒ Object
8 9 10 11 12 13 |
# File 'lib/peruby/node.rb', line 8 def to_sexp name = self.class.name.split('::').last.gsub(/([A-Z]+)([A-Z][a-z])/, '\\1_\\2') .gsub(/([a-z\d])([A-Z])/, '\\1_\\2').downcase.to_sym values = members.reject { |member| %i[file line].include?(member) }.map { |member| sexp(public_send(member)) } [name, *values] end |