In this guide we will cover two main cases:
- Ember specific library
- vendor library
The Ember library will assume that Ember has already ben loaded (higher in the loading order) and thus will assume it has access to the Ember API.
=Navigating= | |
visit('/projects') | |
visit(post_comments_path(post)) | |
=Clicking links and buttons= | |
click_link('id-of-link') | |
click_link('Link Text') | |
click_button('Save') | |
click('Link Text') # Click either a link or a button | |
click('Button Value') |
uk: | |
errors: | |
messages: | |
expired: "прострочено, створіть новий" | |
not_found: "не знайдено" | |
already_confirmed: "вже було підтверджено, спробуйте увійти" | |
not_locked: "не було заблоковано" | |
not_saved: | |
one: "Виникла помилка, через яку неможливо зберегти зміни:" | |
other: "Виникли помилки (загалом - %{count}), через які неможливо зберегти зміни:" |
def screenshot | |
require 'capybara/util/save_and_open_page' | |
now = Time.now | |
p = "/#{now.strftime('%Y-%m-%d-%H-%M-%S')}-#{rand}" | |
Capybara.save_page body, "#{p}.html" | |
path = Rails.root.join("#{Capybara.save_and_open_page_path}" "#{p}.png").to_s | |
page.driver.render path | |
Launchy.open path | |
end |
class Article < ActiveRecord::Base # Product class is similar | |
belongs_to :user | |
has_many :media, as: :ownable | |
with_options through: :media, source: :representable do |assn| | |
assn.has_many :videos, source_type: 'Video' | |
assn.has_many :images, source_type: 'Image' | |
end | |
end |
#!/usr/bin/env python | |
# -*- mode: python, coding: utf-8 -*- | |
# | |
# This incredible piece of code makes git a bit Polish, a bit Western Ukrainian, | |
# пше прошу пана | |
# Joke is based on fact that 'git' is 'пше' in qwerty/йцукен layouts | |
# | |
# (c) 2013 Alexander Solovyov under terms of WTFPL | |
import sys |
class ApplicationController < ActionController::Base | |
# Includes Authorization mechanism | |
include Pundit | |
# Prevent CSRF attacks by raising an exception. | |
# For APIs, you may want to use :null_session instead. | |
protect_from_forgery with: :exception | |
# Globally rescue Authorization Errors in controller. |
# activerecord-3.0.0/lib/active_record/connection_adapters/mysql_adapter.rb | |
# Maps logical Rails types to MySQL-specific data types. | |
def type_to_sql(type, limit = nil, precision = nil, scale = nil) | |
return super unless type.to_s == 'integer' | |
case limit | |
when 1; 'tinyint' | |
when 2; 'smallint' | |
when 3; 'mediumint' | |
when nil, 4, 11; 'int(11)' # compatibility with MySQL default |
$ ssh remote-host "epmd -names"
epmd: up and running on port 4369 with data:
name some_node at port 58769
Note the running on port
for epmd
itself and the port of the node you're interested in debugging. Reconnect to the remote host with these ports forwarded:
$ ssh -L 4369:localhost:4369 -L 58769:localhost:58769 remote-host
// Promise.all is good for executing many promises at once | |
Promise.all([ | |
promise1, | |
promise2 | |
]); | |
// Promise.resolve is good for wrapping synchronous code | |
Promise.resolve().then(function () { | |
if (somethingIsNotRight()) { | |
throw new Error("I will be rejected asynchronously!"); |