When you click a link or a press a button on a Selenium-controlled browser, the call will return control to your test before the next page is loaded. This...

...can lead to concurrency issues when a Cucumber step involves a Selenium action and a Ruby call which both change the same resources. Take the following step which signs in...

makandra dev

Suggested Workflow Set the ruby version in .ruby-version to 2.3.5, then perform these steps one by one, fixing errors as they occur: Update gems as listed below, and bundle...

...Boot a Rails console - see below for a list of changes you will probably need Run Specs with --backtrace option Run Cucumber features (with Geordi's --debug option)

This error occurs when passing an object instead of a string to Jasmine's describe(): # Bad describe(HoverClass, function() {...

# Correct describe('HoverClass', function...

ariejan.net

...you create columns in a migration. Its meaning depends on the column type, and sometimes the supplied value. The documentation states that :limit sets the column length to the number...

...of characters for string and text columns, and to the number of bytes for binary and integer columns. Using it This is nice since you may want a bigint column...

...in: days) to import, while I actually just wanted to have the full database structure with some data to use on my development machine. After trying several suggestions on how...

...to speed up slow MySQL dump imports (which did not result in any significant improvement), I chose to import just some rows per table to suffice my needs. Since editing...

...DOM events, which will trigger both native and jQuery handlers. jQuery's .trigger is simpler, but will only trigger event handlers that were bound by jQuery's .on.

...moves the mouse over a button and "clicks" the mouse, she actually triggers a sequence of events (mouseover, mousedown, focus, mouseup, click). To help emulate this, the Trigger helper has...

We recently decided to put static content for HouseTrip.com to Amazon Cloudfront for a faster user experience. This happens fully automatically on deploy and is transparent in development. Together with...

...a heavy use of sprites this sped up page load time quite nicely. These are a couple of the problems you need to solve in order to do this:

makandra dev

...click', cssSelector, handler) Comparison Action jQuery DOM API equivalent Find descendant(s) by CSS selector .find(selector) one: .querySelector(selector), many: .querySelectorAll(selector) Test an element (returns boolean)

...matches(selector) Test for class presence (boolean) .hasClass(class) .classList.contains(class) Add class .addClass(class) .classList.add(class) Remove class .removeClass(class) .classList.remove(class) Toggle class .toggleClass(class) .classList.toggle(class)

If - for whatever reason - you have to render stylesheets dynamically, the following snippet might be of help. It emulates what "sprockets" would to when precompiling your assets, and give your...

...stylesheets access to all the regular bells and whistles (like asset_path, proper @imports etc): class DynamicStylesheetsController < ApplicationController def show logical_path = RELATIVE_PATH_TO_YOUR_TEMPLATE path = File.join(Rails.root...

stackoverflow.com

You're better off using debugger-ruby_core_source: gem install debugger-ruby_core_source If you can't do this, try the following. Here is how to fix the...

...for a project using Ruby 1.9.3-p448 -- adjust accordingly for your project. Fetch the source for your Ruby version, if you do not yet have it: rvm fetch ruby...

...AWS CA file and copy it to the machine you want to connect from: http://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem As far as I could find out, you (currently) cannot access further details...

Try to connect using MySQL client % mysql -uyour_username -p -h rds_hostname_from_management_cockpit.eu-west-1.rds.amazonaws.com --ssl --ssl-ca=/path/to/mysql-ssl-ca-cert.pem Use this statement to check whether a secure connection is used:

Whenever Firefox updates, all your Cucumber features that use Selenium break. This is annoying. In order to remedy this, version 0.5.0 of our geordi gem comes with a script that...

After installation, you can setup a separate Firefox copy for Selenium like this: setup-firefox-for-selenium Once the setup process has completed, you have two Firefoxes: One...

Be careful when stubbing out attributes on records that are defined by associations. Nothing is as it seems to be. The associated record has its own universe of things; when...

...delegating calls to it, you ca not stub methods on the associated record and expect them to be around. That is a general issue with this pattern/approach. What's happening...

...to change the locale of your Postgres cluster. A popular one is your development system's locale being used by default (which may be annoying). Here is how to do...

Beware: By following the steps below, you will drop and recreate your cluster. You will lose all data (including roles). Instructions below include a procedure for dumping and restoring...

railway.at

Create a directory .ssl in your home directory. Go there and create a self-signed certificate. It is important to enter localhost.ssl as Common Name when asked. This...

...action and :except => :some_unsafe_action as options. Boot thin thin start -p 3001 --ssl --ssl-key-file ~/.ssl/server.key --ssl-cert-file ~/.ssl/server.crt The option -p tells thin to bind...

kernel.org

...merge in the file named with %A by overwriting it, and exit with zero status if it managed to merge them cleanly, or non-zero if there were conflicts...

Usage $ git diff --help Options: -M[ ], --find-renames[= ] Detect renames. If n is specified, it is a threshold on the similarity index (i.e. amount of addition/deletions compared to the...

...file’s size). For example, -M90% means Git should consider a delete/add pair to be a rename if more than 90% of the file hasn’t changed. Without a % sign...

Disabling auto-complete in login forms is probably a bad idea, since it encourages weak passwords. If you are still forced to implement this (maybe due to legal or policy...

...requirements), this is how: Prevent browsers from saving the password in the first place. Disabling autocomplete does not improve security. How to prevent password saving: To prevent the browser from...

...Rails and the copied gem. This notes describes what to do. With Bundler This is super-painful. If you just copy the gem to vendor/gems, Rails will complain:

Fun fact: Our install-gems-remotely script is aware of vendored gems and will scp-copy them to the remoty server. Without Bundler Don't use gem unpack since...

end class Invitation < ActiveRecord::Base belongs_to :party belongs_to :user after_create :send_invite def send_invite other_user_names = party.users.collect(&:name) message = "You've been invited. Also...

end end When creating a party and lots of invitations, you want to send an e-mail to each user and tell them who else is coming. Unfortunately, accessing...

...dbi:ODBC:MyLegacyServer', 'my_name', 'my_password') DBI::DatabaseError: INTERN (0) [RubyODBC]Cannot allocate SQLHENV from /usr/lib/ruby/1.8/dbd/odbc/driver.rb:36:in `connect' from /usr/lib/ruby/1.8/dbi/handles/driver.rb:33:in `connect' from /usr/lib/ruby/1.8/dbi.rb:148:in `connect...

...from /usr/local/lib/site_ruby/1.8/rubygems/dependency_list.rb:14 I installed the gem ruby-odbc instead of the guide's sudo aptitude install libdbd-odbc-ruby sudo gem install ruby-odbc #Successfully installed ruby-odbc...

makandra dev

When you want the table headers to always stay around (e.g. because that table is huuuge), use the code below. Style table.fixed_table_header{ position: fixed; top: 0;

...each(function(index) { $(this).css("min-width",$table.find("th").eq(index).width()+"px"); }); } function scrollFixed() { var offset = $(this).scrollTop(), tableOffsetTop = $table.offset().top, tableOffsetBottom = tableOffsetTop + $table.height() - $table.find("thead").height(); if(offset...

In theory you can take any scope and extend it with additional joins or conditions. We call this chaining scopes. In practice chaining becomes problematic when scope chains grow more...

...complex. In particular having JOINs in your scope will reduce the scope's ability to be chained with additional JOINs without crashes or side effects. This is because ActiveRecord doesn...

...to optimize powers that only check access to a given record. e.g. Power.current.post?(Post.last). See below for details. Powers that only check a given object Sometimes it is not convenient...

...to define powers as a collection. Sometimes you only want to store a method that checks whether a given object is accessible. To do so, simply define a power that...