Sha256: 6d90998152074917157e97ac639022368ec466c92b8f20b5b0c78cad4487e904

Contents?: true

Size: 516 Bytes

Versions: 2

Compression:

Stored size: 516 Bytes

Contents

module Qrb
  module Syntax
    module Contract

      def compile(factory, clazz)
        contract = [
          type.compile(factory),
          compile_upper(factory, clazz)
        ]
        { contract_name.to_sym => contract }
      end

      def compile_upper(factory, clazz)
        if up
          up.compile(factory)
        elsif clazz
          clazz.method(contract_name.to_sym)
        else
          Qrb::IDENTITY
        end
      end

    end # module Contract
  end # module Syntax
end # module Qrb

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
qrb-0.2.0 lib/qrb/syntax/contract.rb
qrb-0.1.0 lib/qrb/syntax/contract.rb