Module: StoreModel
- Defined in:
- lib/store_model.rb,
lib/store_model/enum.rb,
lib/store_model/model.rb,
lib/store_model/types.rb,
lib/store_model/railtie.rb,
lib/store_model/version.rb,
lib/store_model/types/one.rb,
lib/store_model/types/base.rb,
lib/store_model/types/hash.rb,
lib/store_model/types/many.rb,
lib/store_model/types/one_of.rb,
lib/store_model/configuration.rb,
lib/store_model/type_builders.rb,
lib/store_model/types/one_base.rb,
lib/store_model/types/raw_json.rb,
lib/store_model/types/enum_type.rb,
lib/store_model/types/hash_base.rb,
lib/store_model/types/many_base.rb,
lib/store_model/nested_attributes.rb,
lib/store_model/ext/parent_assignment.rb,
lib/store_model/types/one_polymorphic.rb,
lib/store_model/ext/active_record/base.rb,
lib/store_model/types/hash_polymorphic.rb,
lib/store_model/types/many_polymorphic.rb,
lib/store_model/combine_errors_strategies.rb,
lib/store_model/ext/active_model/attributes.rb,
lib/store_model/combine_errors_strategies/merge_error_strategy.rb,
lib/store_model/combine_errors_strategies/merge_hash_error_strategy.rb,
lib/store_model/combine_errors_strategies/merge_array_error_strategy.rb,
lib/store_model/combine_errors_strategies/mark_invalid_error_strategy.rb
Overview
:nodoc:
Defined Under Namespace
Modules: Attributes, Base, CombineErrorsStrategies, Enum, Model, NestedAttributes, ParentAssignment, TypeBuilders, Types Classes: Configuration, Railtie
Constant Summary collapse
- VERSION =
"4.3.0"
Class Method Summary collapse
- .config ⇒ Object
- .one_of(&block) ⇒ Object
-
.union(klasses, discriminator: "type") ⇒ Object
Creates a union type for polymorphic attributes.
Class Method Details
.config ⇒ Object
10 11 12 |
# File 'lib/store_model.rb', line 10 def config @config ||= Configuration.new end |
.one_of(&block) ⇒ Object
15 16 17 |
# File 'lib/store_model.rb', line 15 def one_of(&block) Types::OneOf.new(&block) end |
.union(klasses, discriminator: "type") ⇒ Object
Creates a union type for polymorphic attributes
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/store_model.rb', line 23 def union(klasses, discriminator: "type") discriminators_and_classes = klasses.map do |cls| [cls._default_attributes[discriminator]&.value, cls] end validate_missing_discriminators!(discriminator, discriminators_and_classes) validate_duplicate_discriminators!(discriminators_and_classes) union_one_of(discriminator, Hash[discriminators_and_classes]) end |