I hereby claim:
- I am pieterjongsma on github.
- I am pieterjongsma (https://keybase.io/pieterjongsma) on keybase.
- I have a public key ASATlYW-Nj-NDSnyWnehBvqPZVavtL14yj0m1rPzMcOhrAo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| class EventWithFriends | |
| def initialize(object, attending_friends_by_user_id) | |
| super(object) | |
| @attending_friends_by_user_id = attending_friends_by_user_id | |
| end | |
| def attending_friends_for_user(user) | |
| @attending_friends_by_user_id[user.id] || super(user) | |
| end | |
| end |
| class EventWithFriends < SimpleDelegator | |
| def attending_friends_for_user(user) | |
| super(user) | |
| end | |
| end | |
| class EventsFeed | |
| def events | |
| @events.map { |event| EventWithFriends.new(event) } | |
| end |
| class EventsFeed | |
| include Enumerable | |
| delegate :each, :<<, to: :events | |
| def initialize(events:, user:) | |
| @events = events | |
| @user = user | |
| end | |
| def events |
| - @events.each do |event| | |
| %ul | |
| - event.attending_friends_for_user(current_user).each do |friend| | |
| %li= friend.name |
| class Event | |
| def attending_friends_for_user(user) | |
| attendees.friends_for(user) | |
| end | |
| end | |
| class User | |
| scope :friends_for, -> (user) { includes(:friendships).where(friendships: { friend_id: user.id }) } | |
| end |
| class User | |
| has_many :friendships | |
| has_many :friends, through: :friendships | |
| has_many :attendances | |
| has_many :events, through: :attendances | |
| end | |
| class Event | |
| has_many :attendances | |
| has_many :attendees, through: :attendances, source: :user |
| class ApplicationController < ActionController::Base | |
| protect_from_forgery | |
| before_filter :catch_escaped_fragment | |
| protected | |
| def catch_escaped_fragment | |
| if fragment = params[:_escaped_fragment_] | |
| # Build the original url |
| // | |
| // ember_to_static.js | |
| // | |
| // This script takes a URL as argument. (In that order!) | |
| // The script then runs the Javascript on this page and waits until Ember has finished loading. | |
| // It then renders the resulting static HTML page to the console. | |
| // | |
| var fs = require('fs'); | |
| var system = require('system'); |
| var get = Ember.get, set = Ember.set; | |
| Ember.HashExclamationLocation = Ember.Object.extend({ | |
| init: function() { | |
| set(this, 'location', get(this, 'location') || window.location); | |
| }, | |
| getURL: function() { | |
| return get(this, 'location').hash.substr(2); | |
| }, |