Class: WebFunction::Type::Union

Inherits:
Object
  • Object
show all
Defined in:
lib/web_function/type/union.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(members) ⇒ Union

Returns a new instance of Union.



8
9
10
# File 'lib/web_function/type/union.rb', line 8

def initialize(members)
  @members = members
end

Instance Attribute Details

#membersObject (readonly)

Returns the value of attribute members.



6
7
8
# File 'lib/web_function/type/union.rb', line 6

def members
  @members
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



32
33
34
# File 'lib/web_function/type/union.rb', line 32

def ==(other)
  other.is_a?(Union) && other.members == @members
end

#base_typeObject



12
13
14
# File 'lib/web_function/type/union.rb', line 12

def base_type
  nil
end

#format(format = :default) ⇒ Object



24
25
26
# File 'lib/web_function/type/union.rb', line 24

def format(format = :default)
  @members.map { |member| member.format(format) }.join(" | ")
end

#hashObject



37
38
39
# File 'lib/web_function/type/union.rb', line 37

def hash
  [Union, @members].hash
end

#inspectObject



20
21
22
# File 'lib/web_function/type/union.rb', line 20

def inspect
  "#<Union #{@members.map(&:inspect).join(" | ")}>"
end

#objectsObject



41
42
43
# File 'lib/web_function/type/union.rb', line 41

def objects
  @members.flat_map(&:objects).uniq
end

#refinementObject



16
17
18
# File 'lib/web_function/type/union.rb', line 16

def refinement
  nil
end

#to_sObject



28
29
30
# File 'lib/web_function/type/union.rb', line 28

def to_s
  format(:default)
end

#valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/web_function/type/union.rb', line 49

def valid?(value)
  @members.any? { |member| member.valid?(value) }
end

#without_refinementsObject



45
46
47
# File 'lib/web_function/type/union.rb', line 45

def without_refinements
  Type.union(@members.map(&:without_refinements))
end