class Dhall::RecordProjection

Public Class Methods

decode(record, *selectors) click to toggle source
# File lib/dhall/binary.rb, line 162
def self.decode(record, *selectors)
        record = Dhall.decode(record)
        if selectors.length == 1 && selectors[0].is_a?(Array)
                RecordProjectionByExpression.new(
                        record:   record,
                        selector: Dhall.decode(selectors[0][0])
                )
        else
                self.for(record, selectors)
        end
end
for(record, selectors) click to toggle source
# File lib/dhall/ast.rb, line 906
def self.for(record, selectors)
        if selectors.empty?
                EmptyRecordProjection.new(record: record)
        else
                new(record: record, selectors: selectors)
        end
end

Public Instance Methods

as_json() click to toggle source
# File lib/dhall/ast.rb, line 918
def as_json
        [10, record.as_json, *selectors]
end
fetch(selector) click to toggle source
# File lib/dhall/ast.rb, line 914
def fetch(selector)
        record.fetch(selector)
end
normalize() click to toggle source
# File lib/dhall/normalize.rb, line 348
def normalize
        record.normalize.slice(*selectors.sort)
end