module Moory::Refinement::HashRefinement

Public Instance Methods

composable?(other) click to toggle source
# File lib/moory/refinement.rb, line 26
def composable?(other)
  !(range & other.domain).empty?
end
domain() click to toggle source
# File lib/moory/refinement.rb, line 18
def domain
  keys.to_set
end
project(*args) click to toggle source
# File lib/moory/refinement.rb, line 35
def project(*args)
  args.identity_map.then(self)
end
range() click to toggle source
# File lib/moory/refinement.rb, line 22
def range
  values.to_set
end
then(other) click to toggle source
# File lib/moory/refinement.rb, line 30
def then(other)
  return {} if other.empty?
  transform_values { |v| other[v] }.compact
end