def node(name = nil, options = {}, &block)
      return unless block_given?
      @template.add_node Nodes::Code.new(name, block, options[:if])
    end
def node(name = nil, options = {}, &block)
      return unless block_given?
      @template.add_node Nodes::Code.new(name, block, options[:if])
    end
Creates an arbitrary node in the json output.
 It accepts :if option to create conditionnal nodes. The current data will
 be passed to the block so it is advised to use it instead of ivars.
 Example:
   node(:name) { |user| user.first_name + user.last_name }
   node(:role, if: ->(u) { !u.admin? }) { |u| u.role }