class NxtSupport::Crystalizer

Constants

Error

Public Instance Methods

call() click to toggle source
# File lib/nxt_support/util/crystalizer.rb, line 9
def call
  ensure_unanimity
  unique_values.first
end

Private Instance Methods

default_ambiguity_handler() click to toggle source
# File lib/nxt_support/util/crystalizer.rb, line 24
def default_ambiguity_handler
  ->(collection) { raise Error, "Values in collection are not unanimous: #{collection}" }
end
ensure_unanimity() click to toggle source
# File lib/nxt_support/util/crystalizer.rb, line 28
def ensure_unanimity
  return if unique_values.size == 1

  on_ambiguity.arity == 1 ? on_ambiguity.call(collection) : on_ambiguity.call
end
resolved_collection() click to toggle source
# File lib/nxt_support/util/crystalizer.rb, line 20
def resolved_collection
  @resolved_collection ||= collection.map { |value| with.is_a?(Proc) ? with.call(value) : value.send(with) }
end
unique_values() click to toggle source
# File lib/nxt_support/util/crystalizer.rb, line 16
def unique_values
  @unique_values ||= resolved_collection.uniq
end