Sha256: 9d81325d1d1f64ec466032b0967541fd9cb892508ea95b00f364330925443bd7

Contents?: true

Size: 1.73 KB

Versions: 6

Compression:

Stored size: 1.73 KB

Contents

include_set Abstract::WqlSearch
include_set Type::Json

format do
  view :core, cache: :never do
    _render search_result_view
  end

  def chunk_list
    :query
  end

  def search_result_view
    case search_with_params
    when Exception              then :search_error
    when Integer                then :search_count
    when nest_mode == :template then :raw
    else                         :card_list
    end
  end
end

format :json do
  def items_for_export
    return [] if card.content.empty? || unexportable_tag?(card.name.tag_name.key)
    card.item_cards
  end

  # avoid running the search from +*options (huge results) and +*structure (errors)
  # TODO: make this configurable in set mods
  def unexportable_tag? tag_key
    %i[options structure].map { |code| code.cardname.key }.include? tag_key
  end
end

format :rss do
  view :feed_body do
    case raw_feed_items
    when Exception then @xml.item(render!(:search_error))
    when Integer then @xml.item(render!(:search_count))
    else super()
    end
  end

  def raw_feed_items
    @raw_feed_items ||= search_with_params
  end
end

format :html do
  view :closed do
    voo.hide :closed_content
    super()
  end

  view :closed_content, cache: :never do
    if depth > max_depth
      "..."
    else
      search_params[:limit] = closed_limit
      _render_core hide: "paging", items: { view: :link }
      # TODO: if item is queryified to be "name", then that should work.
      # otherwise use link
    end
  end

  def rss_link_tag
    path_opts = { format: :rss }
    Array(search_params[:vars]).compact.each { |k, v| opts["_#{k}"] = v }
    tag "link", rel: "alternate",
                type: "application/rss+xml",
                title: "RSS",
                href: path(path_opts)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.96.1 mod/search/set/type/search_type.rb
card-1.96.0 mod/search/set/type/search_type.rb
card-1.95.3 mod/search/set/type/search_type.rb
card-1.95.2 mod/search/set/type/search_type.rb
card-1.95.1 mod/search/set/type/search_type.rb
card-1.95.0 mod/search/set/type/search_type.rb