Sha256: 8cd76cacdb5a53640bdcd6b10ba653853af0b1000f85b3263f326e76a35a4bf7

Contents?: true

Size: 1.86 KB

Versions: 147

Compression:

Stored size: 1.86 KB

Contents

# frozen_string_literal: true
require 'stringio'
require_relative '../class_loader'
require_relative '../scalar_scanner'

module Psych
  module Nodes
    ###
    # The base class for any Node in a YAML parse tree.  This class should
    # never be instantiated.
    class Node
      include Enumerable

      # The children of this node
      attr_reader :children

      # An associated tag
      attr_reader :tag

      # The line number where this node start
      attr_accessor :start_line

      # The column number where this node start
      attr_accessor :start_column

      # The line number where this node ends
      attr_accessor :end_line

      # The column number where this node ends
      attr_accessor :end_column

      # Create a new Psych::Nodes::Node
      def initialize
        @children = []
      end

      ###
      # Iterate over each node in the tree. Yields each node to +block+ depth
      # first.
      def each &block
        return enum_for :each unless block_given?
        Visitors::DepthFirst.new(block).accept self
      end

      ###
      # Convert this node to Ruby.
      #
      # See also Psych::Visitors::ToRuby
      def to_ruby(symbolize_names: false, freeze: false)
        Visitors::ToRuby.create(symbolize_names: symbolize_names, freeze: freeze).accept(self)
      end
      alias :transform :to_ruby

      ###
      # Convert this node to YAML.
      #
      # See also Psych::Visitors::Emitter
      def yaml io = nil, options = {}
        real_io = io || StringIO.new(''.encode('utf-8'))

        Visitors::Emitter.new(real_io, options).accept self
        return real_io.string unless io
        io
      end
      alias :to_yaml :yaml

      def alias?;    false; end
      def document?; false; end
      def mapping?;  false; end
      def scalar?;   false; end
      def sequence?; false; end
      def stream?;   false; end
    end
  end
end

Version data entries

147 entries across 147 versions & 8 rubygems

Version Path
ory-client-0.0.1.alpha175 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-hydra-client-1.11.8 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha169 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha168 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha167 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha166 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha165 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-oathkeeper-client-0.38.25.beta1 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha164 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha163 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha162 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha161 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha160 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha159 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha158 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha157 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha156 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha155 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-client-0.0.1.alpha154 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb
ory-oathkeeper-client-0.38.24.beta1 vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych/nodes/node.rb