lib/blood_contracts/suite.rb in blood_contracts-0.1.0 vs lib/blood_contracts/suite.rb in blood_contracts-0.2.0

- old
+ new

@@ -1,23 +1,28 @@ module BloodContracts class Suite extend Dry::Initializer option :data_generator, optional: true - option :contract, default: -> { Hashie::Mash.new } - option :input_writer, optional: true + option :contract, ->(v) { Hashie::Mash.new(v) }, default: -> { Hash.new } + + option :input_writer, optional: true option :output_writer, optional: true + + option :input_serializer, ->(v) { parse_serializer(v) }, optional: true + option :output_serializer, ->(v) { parse_serializer(v) }, optional: true + option :storage_backend, optional: true option :storage, default: -> { default_storage } def data_generator=(generator) - fail ArgumentError unless generator.respond_to?(:call) + raise ArgumentError unless generator.respond_to?(:call) @data_generator = generator end def contract=(contract) - fail ArgumentError unless contract.respond_to?(:to_h) + raise ArgumentError unless contract.respond_to?(:to_h) @contract = Hashie::Mash.new(contract.to_h) end def input_writer=(writer) storage.input_writer = writer @@ -26,9 +31,14 @@ def output_writer=(writer) storage.output_writer = writer end def default_storage - Storage.new(input_writer: input_writer, output_writer: output_writer) + Storage.new( + input_writer: input_writer, + output_writer: output_writer, + input_serializer: input_serializer, + output_serializer: output_serializer, + ) end end end