Class: BloodContracts::Storage
- Inherits:
-
Object
- Object
- BloodContracts::Storage
- Extended by:
- Dry::Initializer, Forwardable
- Defined in:
- lib/blood_contracts/storage.rb
Constant Summary collapse
- Serializer =
BloodContracts::Storages::Serializer
- FileBackend =
BloodContracts::Storages::FileBackend
- DEFAULT_WRITER =
-> () do "INPUT:\n#{options.input}\n\n#{'=' * 90}\n\nOUTPUT:\n#{options.output}" end
- UNDEFINED_RULE =
:__no_tag_match__
- EXCEPTION_CAUGHT =
:__exception_raised__
Class Method Summary collapse
Instance Method Summary collapse
- #default_serializer ⇒ Object
- #input_serializer=(serializer) ⇒ Object
- #input_writer=(writer) ⇒ Object
- #meta_serializer=(serializer) ⇒ Object
- #output_serializer=(serializer) ⇒ Object
- #output_writer=(writer) ⇒ Object
- #store(options:, rules:, context:) ⇒ Object
Class Method Details
.valid_writer(writer) ⇒ Object
38 39 40 41 |
# File 'lib/blood_contracts/storage.rb', line 38 def self.valid_writer(writer) return writer if writer.respond_to?(:call) || writer.respond_to?(:to_sym) raise ArgumentError end |
Instance Method Details
#default_serializer ⇒ Object
66 67 68 |
# File 'lib/blood_contracts/storage.rb', line 66 def default_serializer { load: Oj.method(:load), dump: Oj.method(:dump) } end |
#input_serializer=(serializer) ⇒ Object
43 44 45 |
# File 'lib/blood_contracts/storage.rb', line 43 def input_serializer=(serializer) @input_serializer = Serializer.call(serializer) end |
#input_writer=(writer) ⇒ Object
55 56 57 |
# File 'lib/blood_contracts/storage.rb', line 55 def input_writer=(writer) @input_writer = self.class.valid_writer(writer) end |
#meta_serializer=(serializer) ⇒ Object
51 52 53 |
# File 'lib/blood_contracts/storage.rb', line 51 def (serializer) = Serializer.call(serializer) end |
#output_serializer=(serializer) ⇒ Object
47 48 49 |
# File 'lib/blood_contracts/storage.rb', line 47 def output_serializer=(serializer) @output_serializer = Serializer.call(serializer) end |
#output_writer=(writer) ⇒ Object
59 60 61 |
# File 'lib/blood_contracts/storage.rb', line 59 def output_writer=(writer) @output_writer = self.class.valid_writer(writer) end |
#store(options:, rules:, context:) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/blood_contracts/storage.rb', line 70 def store(options:, rules:, context:) = Hashie::Mash.new() Array(rules).each do |rule_name| describe_sample(rule_name, , context) serialize_sample(rule_name, , context) end end |