author @no___tea

Haml is my favorite tool to create HTML.

It accelerates and simplifies template creation down to veritable haiku.

Example

%section.container
%h1= post.title
%h2= post.subtitle
.content
= post.content

I prefer Haml rather than Slim because of its consistency. During more than 10 years of coding I’ve never met any case which Haml couldn’t solve elegant.

But there is just one thing. The main implementation of Haml is in Ruby, that’s why you must install it to use Haml.

I’ve created easy-to-use docker-image for Haml. It’s here.

How-to-use

Just pull image to your local environment

docker pull kalashnikovisme/haml-docker

and then run it

docker run --rm --volume "$PWD:/app" kalashnikovisme/haml-docker /app/YOUR_FILE.haml

You can find documentation at this Github repo.

Magic!

--

--

author @no___tea

UPD [4/6/21]: you can use method ancestor from the master branch of the Capybara gem. doc

Just wrote mini-mini-minigem, which helps everybody to find parent node with RSpec and Capybara.

Gemfile

gem 'capybara_helpers'

spec/spec_helper.rb

require 'capybara_helpers'

Now, you’re able to use this little function

find('some_selector').parent_node

OR

find('some_selector').parent_node(level: 3)

to get HIGHer at the DOM.

Magic!

--

--

author @no___tea

You need to run rubocop linter on your CI with Docker.

You can create your own Dockerfile and use it on CI.

I use the fast solution sometimes.

Here it is

I’ve found this repo cagedata/docker-rubocop. It provides easy way to run rubocop with another docker container.

Unfortunately, for now it does not support actual versions of Ruby.

My fork kalashnikovisme/docker-rubocop provides all actual Ruby versions. Also I’ve built images for all those versions.

And now you can run rubocop just like this:

docker run --rm --volume "$PWD:/app" kalashnikovisme/docker-rubocop:ruby-3.0.0

Of course you can use another ruby version, just replace it in tagname. You can find the list of supported ruby versions here.

Example of Gitlab CI configuration to run linter:

--

--