Skip to content

Instantly share code, notes, and snippets.

@fujimura
Last active December 18, 2015 16:59
Show Gist options
  • Save fujimura/5815088 to your computer and use it in GitHub Desktop.
Save fujimura/5815088 to your computer and use it in GitHub Desktop.
Object#pipe
class Object
def pipe
yield self
end
end
# From https://github.com/rspec/rspec-rails/pull/766/files
# Without Object#pipe
types = begin
dirs = Dir['./spec/**/*_spec.rb'].
map { |f| f.sub(/^\.\/(spec\/\w+)\/.*/, '\\1') }.
uniq.
select { |f| File.directory?(f) }
Hash[dirs.map { |d| [d.split('/').last, d] }]
end
# With Object#pipe
types = Dir['./spec/**/*_spec.rb'].
map { |f| f.sub(/^\.\/(spec\/\w+)\/.*/, '\\1') }.
uniq.
select { |f| File.directory?(f) }.
map { |d| [d.split('/').last, d] }.
pipe { |type_and_dirs| Hash[type_and_dirs] }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment