Class: Dhall::Builtin
Direct Known Subclasses
Dhall::Builtins::Bool, Dhall::Builtins::Double, Dhall::Builtins::Double_show, Dhall::Builtins::Integer, Dhall::Builtins::Integer_show, Dhall::Builtins::Integer_toDouble, Dhall::Builtins::Kind, Dhall::Builtins::List, Dhall::Builtins::List_build, Dhall::Builtins::List_fold, Dhall::Builtins::List_head, Dhall::Builtins::List_indexed, Dhall::Builtins::List_last, Dhall::Builtins::List_length, Dhall::Builtins::List_reverse, Dhall::Builtins::Natural, Dhall::Builtins::Natural_build, Dhall::Builtins::Natural_even, Dhall::Builtins::Natural_fold, Dhall::Builtins::Natural_isZero, Dhall::Builtins::Natural_odd, Dhall::Builtins::Natural_show, Dhall::Builtins::Natural_toInteger, Dhall::Builtins::None, Dhall::Builtins::Optional, Dhall::Builtins::Optional_build, Dhall::Builtins::Optional_fold, Dhall::Builtins::Sort, Dhall::Builtins::Text, Dhall::Builtins::Text_show, Dhall::Builtins::Type
Instance Method Summary
collapse
Methods inherited from Expression
#&, #*, #+, #as_dhall, #cache_key, #concat, decode, #deep_merge, #deep_merge_type, #dhall_eq, #digest, #fetch, #fusion, #merge, #normalize, #resolve, #shift, #slice, #substitute, #to_cbor, #to_proc, #to_s, #|
Instance Method Details
#as_json ⇒ Object
26
27
28
29
30
31
32
|
# File 'lib/dhall/builtins.rb', line 26
def as_json
if (unfilled = unfill).class != self.class
unfilled.as_json
else
self.class.name&.split(/::/)&.last&.tr("_", "/").to_s
end
end
|
#call(*args) ⇒ Object
9
10
11
12
13
14
|
# File 'lib/dhall/builtins.rb', line 9
def call(*args)
args.reduce(self) do |f, arg|
Application.new(function: f, argument: arg)
end
end
|
#unfill ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'lib/dhall/builtins.rb', line 16
def unfill
attributes.reduce(self.class.new) do |f, attr|
if send(attr.name).nil?
f
else
Application.new(function: f, argument: send(attr.name))
end
end
end
|