decko-commons/decko

View on GitHub
mod/format/spec/shared_context/json_shared_context.rb

Summary

Maintainability
A
0 mins
Test Coverage
RSpec.shared_context "json context", shared_context: :json do
  before { Card.config.deck_origin = "http://json.com" }
  after { Card.config.deck_origin = nil }

  let(:root) { "http://json.com" }

  def json_url target, query=nil
    url "#{target}.json", query
  end

  def url target, query=nil
    ["#{root}/#{target}", query].compact.join "?"
  end

  def nucleus_values card=card_subject
    {
      id: card.id,
      name: card.name,
      type: card.type_name,
      url: json_url(card.name.url_key)
    }
  end

  def atom_values card=card_subject, structured: false
    values = nucleus_values card
    values[:content] = card.content unless structured
    values
  end

  def structured_atom_values card=card_subject
    atom_values card, structured: true
  end
end