Make sure everything is up to date.
2. Install Xcode and its "Command Line Tools"
- Go to App Store and install Xcode.
- Open and accept the terms
RSpec::Matchers.define(:be_same_file_as) do |exected_file_path| | |
match do |actual_file_path| | |
expect(md5_hash(actual_file_path)).to eq(md5_hash(expected_file_path)) | |
end | |
def md5_hash(file_path) | |
Digest::MD5.hexdigest(File.read(file_path)) | |
end | |
end |
namespace :spec do | |
SPEC_SUITES = %w(models requests integration helpers controllers lib) | |
def sample_spec_files(num=5) | |
[].tap do |specs| | |
SPEC_SUITES.each do |dirname| | |
files = Dir[Rails.root.join("spec", dirname, "**", "*_spec.rb")] | |
specs.concat files.shuffle.first(num) | |
end.shuffle | |
end |
--colour | |
-I app |
# Remove items used for building, since they aren't needed anymore | |
apt-get clean | |
apt-get -y remove linux-headers-$(uname -r) build-essential | |
apt-get -y autoremove | |
# Zero out the free space to save space in the final image: | |
dd if=/dev/zero of=/EMPTY bs=1M | |
rm -f /EMPTY | |
# Removing leftover leases and persistent rules |
#somewhere in a controller | |
CreateOrder.new(OrderRepository).create current_user, params | |
# where | |
class CreateOrder < UseCaseService | |
def initialize order_repo | |
@order_repo = order_repo |
class BigDecimal | |
def inspect | |
format("#<BigDecimal:%x %s>", object_id, to_s('F')) | |
end | |
end |
require 'spec/support/grep_matcher' | |
describe do | |
disallow_presence_of pattern: "send(.*#", | |
location: "app/", | |
description: "Do not use dynamic method invocations", | |
failure: "Please change dynamic method call to something more sane." | |
end |
Make sure everything is up to date.
# lib/tasks/assets.rake | |
namespace :assets do | |
task :precompile_if_needed do | |
require_relative '../assets_version' | |
next unless AssetsVersion.needs_precompile? | |
Rake::Task["assets:precompile"].invoke | |
AssetsVersion.current.save_to_yaml | |
end |
require 'coverage' | |
require 'json' | |
# This must be run with this patch applied: | |
# https://bugs.ruby-lang.org/issues/10816 | |
Coverage.start | |
require 'minitest' |