Sha256: e81a2344c6101b280efb1a5b1d3f26e144ac4832c4bc118b0f113ced8c59bbae

Contents?: true

Size: 688 Bytes

Versions: 2

Compression:

Stored size: 688 Bytes

Contents

require 'dentaku/exceptions'

module Dentaku
  module AST
    class CaseConditional < Node
      attr_reader :when,
                  :then

      def initialize(when_statement, then_statement)
        @when = when_statement
        unless @when.is_a?(AST::CaseWhen)
          raise ParseError.for(:node_invalid), 'Expected first argument to be a CaseWhen'
        end

        @then = then_statement
        unless @then.is_a?(AST::CaseThen)
          raise ParseError.for(:node_invalid), 'Expected second argument to be a CaseThen'
        end
      end

      def dependencies(context = {})
        @when.dependencies(context) + @then.dependencies(context)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dentaku-3.3.2 lib/dentaku/ast/case/case_conditional.rb
dentaku-3.3.1 lib/dentaku/ast/case/case_conditional.rb