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' |