Module: Valkyrie::Types
- Includes:
- ArrayDefault
- Defined in:
- lib/valkyrie/types.rb
Overview
Note:
Not all Dry::Types built-in types are supported in Valkyrie
Namespace for Dry::Types types.
Includes Dry::Types built-in types and defines custom Valkyrie types
Defined Under Namespace
Modules: ArrayDefault
Constant Summary collapse
- ID =
Valkyrie::ID
Dry::Types::Definition .new(Valkyrie::ID) .constructor do |input| if input.respond_to?(:each) # Solr::ORMConverter tries to pass an array of Valkyrie::IDs Valkyrie::ID.new(input.first) else Valkyrie::ID.new(input) end end
- URI =
Valkyrie::URI
Dry::Types::Definition .new(RDF::URI) .constructor do |input| if input.present? RDF::URI.new(input.to_s) else input end end
- Anything =
Used for casting Resources if possible.
Valkyrie::Types::Any.constructor do |value| if value.respond_to?(:fetch) && value.fetch(:internal_resource, nil) value.fetch(:internal_resource).constantize.new(value) else value end end
- Array =
Dry::Types['array'].constructor do |value| if value.is_a?(::Hash) if value.empty? [] else [value] end else ::Array.wrap(value) end end.default([].freeze)
- Set =
Represents an array of unique values.
Array.constructor do |value| value = Array[value] clean_values = value.reject do |val| val == '' || (val.is_a?(Valkyrie::ID) && val.to_s == '') end.reject(&:nil?).uniq clean_values.map do |val| Anything[val] end end.default([].freeze)
- SingleValuedString =
Used for when an input may be an array, but the output needs to be a single string.
Valkyrie::Types::String.constructor do |value| ::Array.wrap(value).first.to_s end