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