When building a form with a file select field, you may want to offer your users a live preview before they upload the file to the server. HTML5 via jQuery...
...Luckily, HTML5 has simple support for this. Just create an object URL and set it on an tag's src attribute: $('img').attr('src', URL.createObjectURL(this.files[0])) Unpoly Compiler
...that happens on your local machine Manually remove the offending's gem files and specifications. The paths will be something like /usr/lib/ruby/gems/1.8/gems/your-broken-gem and /usr/lib/ruby/gems/1.8/specifications/your-broken-gem Update Rubygems or Slimgems by running...
...gem update --system Run bundler on your project to reinstall the offending gem. If this happens to your during deployment Ask your operations team to do it. After the update...
...below if you are affected by the issue: The field's content "" did not match "some-text" (RSpec::Expectations::ExpectationNotMetError) Issue with headless Chrome After removing the line above in...
...it could happen that the tests are no longer running in headless mode. Updating the selenium-webdriver gem to >= 3.13.0 fixed the problem. Issue with old Capybaras
This post is not about devops, it's not about lean startups, it's not about web scale, it's not about the cloud, and it's not about continuous...
...but REST itself - in a nutshell. so here's a new angle i've started playing with: "REST Upside Down...
Let's say you have two XML strings that are ordered differently but you don't care about the order of attributes inside containers: a = ' batman secret ' b = ' secret batman...
...Working with plain string comparison is not helpful, of course: a == b => false Instead, you can use the Nori gem to convert your XML into a hash: xml_parser = Nori.new...
When you set both a record's association and that association's foreign key attribute, Rails does not realize you are talking about the same thing. The association change will...
...win in the next save, even if the foreign key attribute was changed after the association. As an example, assume you have these two models: class Group < ActiveRecord::Base
fake_stripe spins up a local server that acts like Stripe’s and also serves a fake version of Stripe.js, Stripe’s JavaScript library that allows you to collect your...
...customers’ payment information without ever having it touch your servers. It spins up when you run your feature specs, so that you can test your purchase flow without hitting Stripe...
...needed a way to make my apps full screen from bash scripts. There is no super-easy way, but it's not too hard either. Put the attached script into...
...e.g. /usr/local/bin and make it executable. Now you can call fullscreen Safari and Safari will go full screen. Notes This script needs activated access for assisting devices. Turn it on...
...can be especially painful when external code (read: gems) uses const_defined? to look something up and gets different results on different Rubies. Consider this: module Foo FOO = 42
end On Ruby 1.8, Bar won't have FOO defined as a constant since that's (even though it's accessible): 1.8.7 > Foo.const_defined? :FOO => true 1.8.7 > Bar.const_defined...
...capistrano_colors' end It's possible you need to do a bundle update net-ssh to get things running. Now double check that all your custom hooks are actually still...
...called. One candidate might be an after deploy:symlink hook that has been renamed into after deploy:create_symlink. I also suggest to put a safeguard into your deploy.rb that...
If your Webpack build is slow, you can use the Speed Measure Plugin for Webpack to figure out where time is being spent. Note that at time of writing, Webpack...
...now have an idea where optimization might be feasible. Look around for suggestions, e.g. the sass-loader readme when you want to optimize Sass build time...
...and a damaged reputation. Deploy Ruby with confidence knowing you're using the most secure, enterprise-grade builds for the platforms that power your business. You'll get priority access...
...fail-safe Ruby for business applications, but don't require advanced features like indemnification or site-wide licensing. Business Edition customers trust ActiveState's guaranteed technical support and regular fixes...
...association. For example you can put the blank form on top with the following snippet: actors = movie.actors actors.build actors.unshift(actors.pop(1)) # won't work with Rails 4+ Because build_for...
...one-to-many association collection object you only have to reorder the collection objects. Sorting with Rails 3+ = form.fields_for :children, @parent.children.sort_by(&:name) do |fieldsform...
...on an old version of ImageMagick that you can no longer install in your system, you can choose the run an old ImageMagick in a Docker container. Dockerized ImageMagick commands...
...path arguments. You need to boot a corresponding docker container once before using it. Setting up Docker If you haven't installed Docker yet, use our guide or the official...
Webfonts are not always available when your JavaScript runs on first page load. Since fonts may affect element sizes, you may want to know when fonts have been loaded to...
...Promise that will be resolved once the font is available. Example: document.fonts.load('1rem "Open Sans"').then(() => {...
jQuery / fontSpy If your project uses jQuery, you could also use jQuery-FontSpy which...
...OPTS="--no-tcmalloc" rbenv install, but that would disable tcmalloc. Doing that, you might still encounter issues with ossl_ssl.c -- which is where I switched to the patched solution above...
...without_callbacks. There is no such thing in vanilla Rails 3. There is a gem sneaky-save that restores the missing functionality with a #sneaky_save method...
Find conditions for scopes can be given either as an array (:conditions => ['state = ?', 'draft']) or a hash (:conditions => { 'state' => 'draft' }). The later is nicer to read, but has horrible security...
...versions of Ruby on Rails. Affected versions Version Affected? Remedy 2.3.18 yes Use chain_safely workaround 3.0.20 no 3.1.x ??? 3.2.22 yes Use Rails LTS 3.2 with hardened configuration...
String#indent is not a standard Ruby method. When you use it, be sure to know where this method comes from. Many Gems shamelessly define this method for internal usage...
...and you'll never know when it may be removed (since it's usually not part of the Gem's API). Unless you're using Rails 4 (which brings String...
...both column name and value are coming from user input and need to be sanitized. Unfortunately this works in SQLite but does not in MySQL: named_scope :filter, lambda { |attribute...
{ :conditions => [ 'articles.? = ?', attribute, value ] } } The solution is to use sanitize_sql_array like this: named_scope :filter, lambda { |attribute, value| { :conditions => sanitize_sql_array([ "`articles`.`%s` = '%s'", attribute, value...
...it's likely that your cucumber.yml is just fine but not your rerun.txt.\ This sometimes happens when running multiple Cucumber workers with parallel_tests that write into rerun.txt simultaneously -- ending...
...Just remove it and you are good to go again: rm rerun.txt Another possible solution is to have one rerun file per worker for which you'd need to modify...
Back in the old days, we couldn't do something like that: .foo { position: absolute; bottom: 0; /* This was bad: */ left: 10px; right: 10px; } Why? Because IE5 and IE6 (which...
...then) failed horribly trying to render it. I've now checked if this is still an issue with any browser that's not from the stone age. \
...an npm package. Naming convention for pre-release versions An npm package must use Semantic Versioning's naming convention for its version. In Semantic Versioning, the version number and pre...
...release identifier (like rc1) must be separated by a dash, like this: 1.0.0-rc1 2.3.0-alpha2 3.0.0-beta3 Publishing to a pre-release tag npm packages have multiple "current" releases...