Sha256: 6500a292da333a6803250ec56472f2cb53b71f60c721057e81c9020d52145ef2
Contents?: true
Size: 1.19 KB
Versions: 12
Compression:
Stored size: 1.19 KB
Contents
format :json do # because card.item_cards returns "[[#{self}]]" def item_cards nested_cards end def default_nest_view :atom end def default_item_view :name end def max_depth params[:max_depth].present? ? params[:max_depth].to_i : 1 end # TODO: support layouts in json # eg layout=stamp gives you the metadata currently in "page" view # and layout=none gives you ONLY the requested view (default atom) def show view, args view ||= :molecule string_with_page_details do render! view, args end end view :status, unknown: true, perms: :none do { key: card.key, url_key: card.name.url_key, status: card.state }.tap do |h| h[:id] = card.id if h[:status] == :real end end view :page, cache: :never do page_details card: render_atom end private def string_with_page_details raw = yield return raw if raw.is_a? String stringify page_details(raw) end def page_details obj return obj unless obj.is_a? Hash obj.merge url: request_url, requested_at: Time.now.utc.to_s end def stringify raw method = params[:compress] ? :generate : :pretty_generate JSON.send method, raw end end
Version data entries
12 entries across 12 versions & 1 rubygems