Sha256: f8cbc80fd73fce615b64e804cc924536fce494f835389156a11034e46d25ad04
Contents?: true
Size: 489 Bytes
Versions: 1
Compression:
Stored size: 489 Bytes
Contents
require "dry-initializer" require "rails" # Define a dispatcher for `:model` and `:find_by` options rails_dispatcher = lambda do |model: nil, find_by: :id, **options| return options unless model model = model.constantize if model.is_a? String coercer = lambda do |value| return value if value.instance_of? model model.find_by(find_by => value) end options.merge(type: coercer) end # Register a dispatcher Dry::Initializer::Attribute.dispatchers << rails_dispatcher
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-initializer-rails-1.0.0 | lib/dry/initializer/rails.rb |