Sha256: 811d6a7438e83aea467292a181f51ab169ba9278b15364b5c86eef3229cad86a

Contents?: true

Size: 680 Bytes

Versions: 3

Compression:

Stored size: 680 Bytes

Contents

module Sexpr
  class Processor
    class SexprCoercions < Helper

      module Methods

        def parse(*args)
          grammar.parse(*args)
        end

        def sexpr(*args)
          grammar.sexpr(*args)
        end

      end

      def call(processor, sexpr, &bl)
        g = processor.class.grammar

        # input coercion
        sexpr = g.sexpr(sexpr)

        # recursive call
        sexpr = next_call(processor, sexpr, bl)

        # output coercion
        if sexpr.is_a?(Array) and sexpr.first.is_a?(Symbol)
          g.sexpr(sexpr)
        else
          sexpr
        end
      end

    end # class SexprCoercions
  end  # class Processor
end # module Sexpr

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sexpr-1.1.0 lib/sexpr/processor/sexpr_coercions.rb
sexpr-1.0.0 lib/sexpr/processor/sexpr_coercions.rb
sexpr-0.6.0 lib/sexpr/processor/sexpr_coercions.rb