PostgreSQL: How to add/remove/modify array values (and how to replace 1 value with multiple values)

Manipulating PostgreSQL array columns can be awkward: values can be appended, removed, or replaced, with special handling for multi-value substitutions.

Consul 0.4.0 released

Consul 0.4.0 adds temporary power switching, support for Ruby collections and arbitrary objects as powers, and drops the ActiveSupport::Memoizable dependency.

Why stubbing on associated records does not always work as expected

Stubbing methods on associated records can fail because belongs_to returns an association proxy, not the target object; stub the caller or the association explicitly.

Multi-line step arguments in Cucumber

Passing long text blocks to Cucumber steps keeps feature files readable while preserving full Markdown content for step definitions.

Advice: Reduce scopes with joins to simple IN-queries

JOIN-heavy scopes become brittle when callers chain more conditions or associations. Converting them to a simple IN query preserves chaining and avoids unexpected SQL side effects.

Spec "content_for" calls in helpers

RSpec helper specs can leak content_for state between examples, making repeated checks fail. A fresh helper instance avoids stale instance variables.

Webservice to mock HTTP responses

Need a simple way to fake server replies during development when external APIs are unavailable or unreliable.

Cerberus: Home

Cerberus is a lightweight and easy-to-use Continuous Builder software for Ruby. It could be run periodically from a scheduler and check if application tests are broken. In case of failed tests Cerberus sends notification to developers.

The WHATWG Blog » Blog Archive » The longdesc lottery

It turned out that the test subject didn't know that longdesc even existed before the tester told him about it. Can you blame him?

jasonm's parallel_specs at master - GitHub

Rake tasks to run specs and tests in parallel, to use multiple CPUs and speedup test runtime.

http://mockito.org/

Mockito is a mocking framework that tastes really good. It lets you write beautiful tests with clean & simple API. Mockito doesn't give you hangover because the tests are very readable and they produce clean verification errors.

rest-client - Project Hosting on Google Code

RESTClient is a Java application to test RESTful webservices. It can be used to test variety of HTTP communications.

thoughtbot's bourne at master - GitHub

Test spies are a form of test double that preserves the normal four-phase unit

How to fix routing error when using concerns in Rails up to 3.2.22.1

Routing error in Rails 3.2.22.1 can appear when concerns is passed as an option to resources, producing broken routes and failed controller specs.

Gem development: When your specs don't see dependencies from your Gemfile

Bundler does not auto-require gems, so specs may miss dependencies unless the environment calls Bundler.require; direct dependencies still must be required by the gem itself.

Spreewald: When using `patiently do`, don't reuse existing variable names

patiently do repeats a block until it passes or times out; reusing outer variable names inside the repeated block can make repeated evaluations fail.

Machinist: Refer to another named blueprint inside a blueprint

Named Machinist blueprints can reuse another blueprint’s fields, letting variants combine shared defaults without repeating attribute definitions.

RSpec: Stubbing a method that takes a block

RSpec stubs for methods that yield blocks need and_yield instead of and_return; multiple yields can be chained, and return values can be combined.

Show details of TLS/SSL connections of remote hosts

sslscan reports TLS/SSL cipher support and certificate details for remote hosts, helping identify weak protocols, preferred ciphers, and certificate validity.

Cucumber: Calling multiple steps from a step definition

Reusable Gherkin steps can be chained inside a new step definition with steps or step, but steps only processes lines starting with Gherkin keywords.

Strip carriage returns in submitted textareas

When submitting textareas, browsers sometimes include carriage returns (\r) instead of just line feeds (\n) at the end of each line. I don't know when this happens, and most of the time it doesn't matter.

In cases where it does matter, use the attached trait to remove carriage returns from one or more attributes like this:

class Note
  does 'strip_carriage_returns', :prose, :code
end

Here is the test that goes with it:

describe Note do

  describe 'before_validation' do...

WebMock 1.8.0 does not play nice with Curb < 0.7.16

Updating WebMock to 1.8.0 can let unstubbed specs send real HTTP requests when Curb is older than 0.7.16.

Marry Capybara with SSL-enabled applications

Capybara can lose the HTTPS state when specs cross between secure and insecure Rails actions, causing request URLs to fall back to the wrong protocol.

validates_acceptance_of is skipped when the attribute is nil

validates_acceptance_of silently skips nil attributes, so a missing checkbox or typo can leave acceptance unchecked; a boolean field with validates_presence_of is safer.