To read the Rails session from a Rack middleware, use env['rack.session']. It's an ActionDispatch::Request::Session object.
Simply add this to your .rspec instead: --require spec_helper If you are on rspec >= 3 and use a rails_helper.rb...
...on table rows (use case would be clicking the 1st link inside it for better UI). Consider this setup: hello ^ $(document).on('click', 'tr', function () { alert('row clicked') });
When building a form with a file select field, you may want to offer your users a live preview before...
The Capybara API is somewhat hard for parse for a list of methods you can call on a Capybara node...
When you get an error like this: Invalid gemspec in [/opt/www/foo-project.makandra.de/shared/bundle/ruby/1.8/specifications/carrierwave-0.6.2.gemspec]: Illformed requirement ["# 1.1.4"] ... the machine's Rubygems needs to...
Consider this HTML: Even though the surrounding container defines a line-height, which vertically centers its inline elements, the check...
If you have issues with PDFs, fix them like this: pdftk .pdf output .pdf Background I had an issue where...
You probably already manage servers you often connect to inside the ~/.ssh/config file. What is nice: you may define alias...
...link_tag 'screen', :media => 'screen' %> These would be your two screen Sasses: # screen_with_pie.sass =pie behavior: url(/stylesheets/lib/PIE.htc) position: relative @import base.sass # screen.sass =pie // No pie for you @import base.sass
Ruby 2.3.0 has been around since end of 2015. It brings some pretty nice new features! Make sure to read...
Jasmine has spyOnProperty(), but it only works if the property is implemented using getter and setter functions. This is a...
...complain about calling nil.name or nil.macro while it tries to process the association list. Best practice Make sure to do it this way: params.to_hash.symbolize_keys.merge(:include => { :user => :avatar }) (Note that params.to...
Copy and paste at will, they're free! German quotation marks: „ “ (Ubuntu-Hotkey: AltGr+v and AltGr+b) English quotation...
In case you want to require a gem, that is not in the Gemfile of you bundle and therefore not...
...Add development to existing environments in the Raven.configure block: config.environments = ['development', 'staging', 'production']. Remove better_errors from Gemfile if existing and bundle. With Raven.capture_message('Test from development') you can...
When using the json gem, you might run into this error when using JSON.parse: >> json = 'foo'.to_json >> JSON.parse(json...
TLDR: When you put CSS rules into a partial and import that partial multiple times, the CSS rules will be...
With defaults, RCov doesn't work the way you how you would like it to. To create a nice test...
Some modern Javascript APIs return iterators instead of arrays. In plain Javascript you can loop through an iterator using
...that you can use to travel through time and trigger setTimeout and setInterval callbacks: beforeEach(function() { timerCallback = jasmine.createSpy("timerCallback"); jasmine.clock().install(); }); afterEach(function() { jasmine.clock().uninstall(); }); it("causes a timeout to...
User Stories should describe what a user wants the system to do. Purely technical tasks should usually be implemented as...
For some years Google Chrome has allowed you to add desktop icon for any web page by going to Tools...
Note: ActiveRecord::Base#becomes has a lot of quirks and inconsistent behavior. You probably want to use ActiveType.cast instead. This issue will be encountered when relying on attribute_was methods...
...model, for example. In my case a record with an assignable_values legacy value became invalid when it should not. The initializer in the attached file will fix this issue...