class Bridgetown::Drops::ResourceDrop

Constants

NESTED_OBJECT_FIELD_BLACKLIST

Public Instance Methods

<=>(other) click to toggle source
# File lib/bridgetown-core/drops/resource_drop.rb, line 39
def <=>(other)
  return nil unless other.is_a? ResourceDrop

  cmp = self["date"] <=> other["date"]
  cmp = self["path"] <=> other["path"] if cmp.nil? || cmp.zero?
  cmp
end
collapse_document(doc) click to toggle source

Generate a Hash which breaks the recursive chain. Certain fields which are normally available are omitted.

Returns a Hash with only non-recursive fields present.

# File lib/bridgetown-core/drops/resource_drop.rb, line 77
def collapse_document(doc)
  doc.keys.each_with_object({}) do |(key, _), result|
    result[key] = doc[key] unless NESTED_OBJECT_FIELD_BLACKLIST.include?(key)
  end
end
collection() click to toggle source
# File lib/bridgetown-core/drops/resource_drop.rb, line 31
def collection
  @collection ||= @obj.collection.to_liquid
end
excerpt() click to toggle source
# File lib/bridgetown-core/drops/resource_drop.rb, line 35
def excerpt
  fallback_data["excerpt"].to_s
end
hash_for_json(state = nil) click to toggle source

Generate a Hash for use in generating JSON. This is useful if fields need to be cleared before the JSON can generate.

state - the JSON::State object which determines the state of current processing.

Returns a Hash ready for JSON generation.

# File lib/bridgetown-core/drops/resource_drop.rb, line 61
def hash_for_json(state = nil)
  to_h.tap do |hash|
    # use collection label in the hash
    hash["collection"] = hash["collection"]["label"] if hash["collection"]

    if state && state.depth >= 2
      hash["previous"] = collapse_document(hash["previous"]) if hash["previous"]
      hash["next"]     = collapse_document(hash["next"]) if hash["next"]
    end
  end
end
next() click to toggle source
# File lib/bridgetown-core/drops/resource_drop.rb, line 51
def next
  @next ||= @obj.next_resource.to_liquid
end
previous() click to toggle source
# File lib/bridgetown-core/drops/resource_drop.rb, line 47
def previous
  @previous ||= @obj.previous_resource.to_liquid
end