Skip to content

Instantly share code, notes, and snippets.

@larsklevan
larsklevan / adapters.application.js
Last active September 21, 2017 16:40
Ember Mixed Adapters
import Adapter from "ember-data/adapters/json-api";
export default Adapter.extend();

I'm trying to convert our back-end API from a standard Rails API to JSONAPI with backward compatibility using the "Accept" header. I'm trying to convert one of my Ember models from REST to JSONAPI but when I traverse a belongsTo I don't get the expected "Accept" header.

Example:

If I have a model post using RESTAdapter / RESTSerializer and user using JSONAPIAdapter and JSONAPISerializer then if I do this.get('store').findRecord('user', 1) I get the expected Accept header of "application/vnd.api+json" but if I do post.get('user') I get "application/json, text/javascript, /; q=0.01". This then fails to deserialize with "Assertion Failed: normalizeResponse must return a valid JSON API document"

Setup:

adapters/post.js

@larsklevan
larsklevan / chrome_window.sh
Created December 13, 2011 20:36
Separate app window for Google Chrome
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --app=http://google.com --user-data-dir=/tmp/
@larsklevan
larsklevan / factory_reload_definitions.rb
Created June 8, 2011 15:34
Avoid AssociationTypeMismatch with FactoryGirl in development mode by reloading factory definitions
class Factory
def self.reload_definitions #:nodoc:
self.factories.clear
definition_file_paths.each do |path|
load("#{path}.rb") if File.exists?("#{path}.rb")
if File.directory? path
Dir[File.join(path, '*.rb')].each do |file|
load file
end
@larsklevan
larsklevan / email_preview_rollback.rb
Created June 7, 2011 21:02
Rollback changes to DB during email preview
module EmailPreview
class << self
def preview_with_rollback(*args)
mail = nil
ActiveRecord::Base.transaction do
mail = preview_without_rollback *args
raise ActiveRecord::Rollback, "Let's not and say we did"
end
mail
#!/bin/bash
for i in `git branch | cut -c '3-'`; do echo `git log --pretty="format:%ct %cd" -1 $i | xargs printf "%50s"` $i; done | sort -n | cut -d\ -f2-
# alias version
# alias branches="for i in \`git branch | cut -c '3-'\`; do echo \`git log --pretty='format:%ct %cd' -1 \$i | xargs printf '%50s'\` \$i; done | sort -n | cut -d\ -f2-"