Sha256: 69dc40ebf7ebcf9cf510e2312c12ed0229ad348af349bb16f640e2dbeb0093cb

Contents?: true

Size: 964 Bytes

Versions: 2

Compression:

Stored size: 964 Bytes

Contents

# -*- encoding : utf-8 -*-
module Pacto
  module Formats
    module Legacy
      class GeneratorHint < Pacto::Dash
        extend Forwardable

        property :request_clause
        coerce_key :request_clause, RequestClause
        property :service_name, required: true
        property :target_file

        def_delegators :request_clause, *RequestClause::Data.properties.map(&:to_sym)

        def initialize(data)
          data[:request_clause] = RequestClause::Data.properties.each_with_object({}) do | prop, hash |
            hash[prop] = data.delete prop
          end
          super
          self.target_file ||= "#{slugify(service_name)}.json"
        end

        def matches?(pacto_request)
          return false if pacto_request.nil?
          Pacto::RequestPattern.for(request_clause).matches?(pacto_request)
        end

        private

        def slugify(path)
          path.downcase.gsub(' ', '_')
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pacto-0.4.0.rc3 lib/pacto/formats/legacy/generator_hint.rb
pacto-0.4.0.rc2 lib/pacto/formats/legacy/generator_hint.rb