View x_spec.rb
require 'yaml' | |
class X | |
def self.y | |
YAML.load_file("abc") | |
end | |
end | |
RSpec.describe X do | |
it 'works' do |
View increment_and_decrement.rb
module IncrementAndDecrement | |
def increment(&block) | |
matcher = change(&block).by(1) | |
RSpec::Matchers::AliasedMatcher.new(matcher, lambda do |desc| | |
desc.gsub("changed", "incremented").gsub("change", "increment") | |
end) | |
end | |
def decrement(&block) | |
matcher = change(&block).by(-1) |
View spec_helper.rb
RSpec::Matchers.define_negated_matcher :avoid_outputting, :output | |
RSpec.configure do |config| | |
config.around do |ex| | |
expect(&ex).to avoid_outputting.to_stdout.and avoid_outputting.to_stderr | |
end | |
end |
View my_macros.ex
defmodule MyMacros do | |
defmacro my_macro() do | |
module = __CALLER__.module | |
Module.get_attribute(module, :foo) |> IO.inspect(label: "outside quote") | |
quote do | |
Module.get_attribute(unquote(module), :foo) |> IO.inspect(label: "with unquoted module") | |
Module.get_attribute(__MODULE__, :foo) |> IO.inspect(label: "with __MODULE__") | |
end | |
end |
View 0001-add-monitor-statements.patch
From ff210553f1a66db745a32224ff69b57073f953c6 Mon Sep 17 00:00:00 2001 | |
From: Myron Marston <myron.marston@gmail.com> | |
Date: Mon, 27 Feb 2017 15:01:27 -0800 | |
Subject: [PATCH] WIP: add monitor statements. | |
--- | |
lib/mix/lib/mix/dep/converger.ex | 120 ++++++++++++++++++++++----------------- | |
1 file changed, 67 insertions(+), 53 deletions(-) | |
diff --git a/lib/mix/lib/mix/dep/converger.ex b/lib/mix/lib/mix/dep/converger.ex |
View spec_helper.rb
RSpec.configure do |rspec| | |
if ENV["CI"] | |
rspec.before(:example, :focus) do | |
raise "Do not commit examples tagged with :focus" | |
end | |
else | |
rspec.filter_run_when_matching :focus | |
end | |
end |
View worker.ex
alias Experimental.GenStage | |
defmodule WorkerPool.Worker do | |
@type subscription_options :: Keyword.t | |
@type producer :: pid | {pid, subscription_options} | |
@doc """ | |
Starts a worker, subscribed to the provided job producers. | |
""" | |
@spec start_link([producer], Keyword.t) :: {:ok, pid} |
View synchronize_death_on_exit.ex
@doc """ | |
Will ensure the processes with the test does not complete until the process with the | |
provided pid has exited. This is necessary when writing multiple tests that start the | |
same named process. See https://github.com/elixir-lang/elixir/issues/3854 for more info. | |
This accepts either `{:ok, pid}` or just `pid` so that you can use it in a pipeline | |
after a `start_link` call. | |
""" | |
def synchronize_death_on_exit({:ok, pid}) when is_pid(pid), do: synchronize_death_on_exit(pid) | |
def synchronize_death_on_exit(pid) when is_pid(pid) do |
View registry.ex
defmodule Registry do | |
# ... | |
def handle_call({:execute_against_shard, campaign_id, fun}, from, state) do | |
{shard_process, state} = find_or_create_shard(campaign_id, state) | |
ShardProcess.execute_and_reply(shard_process, fun, from) | |
{:noreply, state} | |
end | |
# ... |
View Rakefile
require 'rspec/core/rake_task' | |
RSpec::Core::RakeTask.new(:specs_prep) do |t| | |
t.rspec_opts = "--out tmp/specs_task.out" | |
end | |
task :specs => :specs_prep do | |
results = File.read("tmp/specs_task.out") | |
# do something with results | |
end |
NewerOlder