class Jekyll::Fridge::ContentDrop

Public Class Methods

new(client, base, query = "", data = nil) click to toggle source
# File lib/jekyll-fridge.rb, line 126
def initialize(client, base, query = "", data = nil)
  @client = client
  @base = base
  @query = query
  @data = data
end

Public Instance Methods

before_method(method) click to toggle source
# File lib/jekyll-fridge.rb, line 133
def before_method(method)
  # check for single content item
  item = @client.get("#{@base}/#{method}?#{@query}")
  return Model.new(item) if item && item.kind_of?(FridgeApi::Model)

  # filter by content type
  if @base == "content" && @query.empty?
    types = @client.get("#{@base}?type=#{method}")
    return ContentDrop.new(@client, @base, "type=#{method}", types) if types
  end

  # filter by user role
  if @base == "users" && @query.empty?
    roles = @client.get("#{@base}?role=#{method}")
    return ContentDrop.new(@client, @base, "role=#{method}", roles) if roles
  end

  nil
end
each() { |m| ... } click to toggle source
# File lib/jekyll-fridge.rb, line 153
def each &block
  @data ||= @client.get("#{@base}?#{@query}")
  @data.each do |v|
    m = Model.new v
    if block_given?
      block.call m
    else
      yield m
    end
  end
end