class DirtySeed::Assigners::Inclusion
Manages assignment when value should be included in an enumerable
Public Instance Methods
respond?()
click to toggle source
Should be the value included in options? @return [Boolean]
# File lib/dirty_seed/assigners/inclusion.rb, line 20 def respond? @respond ||= options.present? end
value()
click to toggle source
Returns a random value matching validators @return [Object] a “primitive”
# File lib/dirty_seed/assigners/inclusion.rb, line 9 def value return unless respond? case options when Array then options.sample when Range then rand(options) end end
Private Instance Methods
inclusion_validator()
click to toggle source
Returns the inclusion validator if any
e.g. `validates :status, inclusion: { in: ["todo", "done", "aborted"] }`
@return [ActiveModel::Validations::InclusionValidator, nil]
# File lib/dirty_seed/assigners/inclusion.rb, line 38 def inclusion_validator validators&.find do |validator| validator.is_a? ActiveModel::Validations::InclusionValidator end end
options()
click to toggle source
Returns the inclusion options if value should be included in options @return [Array, Range] @example
["todo", "done", "aborted"] 0..10
# File lib/dirty_seed/assigners/inclusion.rb, line 31 def options @options ||= enum || inclusion_validator&.options&.dig(:in) end