Skip to content

Instantly share code, notes, and snippets.

View jameslafa's full-sized avatar
🖤

James Lafa jameslafa

🖤
View GitHub Profile
@jameslafa
jameslafa / spec_helper.rb
Last active August 29, 2015 13:59
Rspec + capybara configuration
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'
require 'capybara/poltergeist'
require 'database_cleaner'
# Requires supporting ruby files with custom matchers and macros, etc,
@jameslafa
jameslafa / test-directive.coffee
Created June 5, 2014 16:58
AngularJS - Unit testing a directive using promises
describe "UT: MyDirective", ->
$scope = undefined
$element = undefined
$q = undefined
html = '<div my-directive></div>'
# Compile the directive to generate the html code and get the scope
compileDirective = () ->
@jameslafa
jameslafa / unit_test.coffee
Created June 11, 2014 13:03
AngularJS: serve different responses with $httpBackend inside the same test (auto retry for example)
# More details on https://blog.james-lafa.fr/angularjs-how-to-test-a-retry-after-http-error-with-httpbackend/
sessionCalls = 0
$httpBackend.when('POST', '/sessions').respond( (method, url, data, headers) ->
if sessionCalls == 0
sessionCalls++
return [200, {"response": 1}, {}]
else
sessionCalls++
return [200, {"response":0,"auth_token":"HK7i6DRncWdBmq"}, {}]
@jameslafa
jameslafa / Install_rails-erd.txt
Last active August 29, 2015 14:05
Install rails-erd to generate models diagrams
1. Install xquartz : https://xquartz.macosforge.org (no need to restart)
2. brew install cairo pango
3. brew install graphviz --with-pangocairo (it's important to install graphviz after cairo and pango)
4. bundle exec erd
@jameslafa
jameslafa / Gemfile
Created March 31, 2015 12:46
Useful gems
# Debugging in the browser
gem 'better_errors'
gem 'binding_of_caller'
gem 'meta_request'
gem 'quiet_assets' # Remove useless logs
# Deploying
gem 'capistrano'
gem 'capistrano-rails'
gem 'capistrano-bundler' # Run bundle install while deploying
@jameslafa
jameslafa / controller.rb
Created April 16, 2015 05:34
FactoryGirl attribute_for does not create associations for obvious performance reason. However, sometime it is useful to get all attributes with ids of association to test a POST#create request for example. To enable, just create a macro in your spec/support folder with the following content. Then call attributes_with_foreign_keys instead of att…
module ControllerMacros
def attributes_with_foreign_keys(*args)
FactoryGirl.build(*args).attributes.delete_if do |k, v|
["id", "type", "created_at", "updated_at"].member?(k)
end
end
end
RSpec.configure do |config|
config.include ControllerMacros, :type => :controller
@jameslafa
jameslafa / user.rb
Created December 9, 2015 16:09
Transfert enumerator accessors to related model
class User < ActiveRecord::Base
belongs_to :organization
Organization.categories.keys.each do |category|
define_method("#{category}?") do
organization.send("#{category}?")
end
end
end
@jameslafa
jameslafa / application_flashes.html.erb
Created December 16, 2015 15:52
Bootstrap 4 alerts with rails 4.2
<% if flash.any? %>
<div class="row flashes">
<div class="col-md-8 col-md-offset-2">
<% flash.each do |msg_type, message| %>
<%= flash_message(msg_type, message) %>
<% end %>
</div>
</div>
<% end %>
@jameslafa
jameslafa / application.rb
Created June 13, 2013 07:14
Use asset piple with SVG
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.svg)
@jameslafa
jameslafa / Gemfile
Created July 9, 2013 20:18
ActiveAdmin : Make model compliant with ActiveModel and StrongParameters Thanks to @daxter (twitter @seanlinsley) for his help : https://github.com/gregbell/active_admin/pull/2326
# Rails 4.0 just went out and right now to make ActiveAdmin works, you need
# to add this in your Gemfile
gem 'devise', github: 'plataformatec/devise'
gem 'responders', github: 'plataformatec/responders'
gem 'inherited_resources', github: 'josevalim/inherited_resources'
gem 'ransack', github: 'ernie/ransack', branch: 'rails-4'
gem 'activeadmin', github: 'gregbell/active_admin', branch: 'rails4'
gem 'formtastic', github: 'justinfrench/formtastic'