Where It All Started.

Where It All Started.

Life, Stock Trading, Investments, Business and Startup. Most are programming stuff.

Tag: ruby

Automating HTML5 Generation With AsciiDoctor

If you’re a documentation nerd or somewhat planning to create content for publishing, surely you will encounter ASCII Doc. ASCII Doc is being use by different publishing giants like O’Reilly to create books and content.

One problem I encountered is generating HTML documents from asciidoc format. So how do I automate it?

Better to die fighting for freedom then be a prisoner all the days of your life.

— Bob Marley.

Prerequisites

  • Ruby 2.5 and above

So how do we render HTML5 from ASCII Doc?

We proceed by getting all the required gems. The first step is get the file watcher to watch for changes.

gem install asciidoctor guard guard-shell guard-livereload yajl-ruby

The livereload gem watch changes in the file system. Also, you may need to install companion browser extension.

After the installation of Chrome Extension, you need to check “Allow access to file URLs” checkbox in More Tools > Extensions > Live Reload Details in order for it to work with local file URLs.

Then we create a Guardfile with the contents below.

require "asciidoctor"
guard "shell" do
	watch(/^solidity\.adoc$/) {|m|
		Asciidoctor.convert_file m[0]
	}
end
guard "livereload" do
	watch(%r{^.+\.(css|js|html)$})
end

The first guard block converts file to HTML5. Then after that the second guard block watches for file changes and reloads browser.

When all is done start the guard process to monitor and serve files.

guard start

That’s it guys we created our workflow for generating HTML5 using the asciidoctor format. Hit like if you like, subs if you love and as always live life. Hope you guys, enjoyed this article!

Installing MySQL2 Ruby Gem in macOS Mojave

Installing MySQL2 gem became a common problem for people who uses macOS to develop Ruby1 based apps that utilized MySQL2 data store. I’ve personally encountered this problem myself back in the days and still encountering this on brand new setup macOS workstation. In this article, we will go through the steps I did to resolved this problem.

Tradition lives because young people come along who catch its romance and add new glories to it.

— Michael Novak.

Prerequisites

We assume here you have some basic knowledge on setting up Ruby and command line tools on macOS.

  • Ruby (Latest)
  • Bundler3 (Latest)
  • Homebrew4 (Installed and no problems, run and check brew doctor for more info and if the installation is okay)

What did I do to solve the problem?

Here’s what I’ve done to resolve the problem.

  1. First is to install openssl or gnutls (choose your poison). Both are great have some pros and cons but most people would use openssl and that’s what I preferred. brew install openssl
  2. Then we point mysql2 dependency to the installed openssl package from Homebrew. bundle config --global build.mysql2 --with-opt="$(brew --prefix openssl)"
  3. After all of that, we install the mysql2 dependency and all the sub-dependents that are needed. bundle install

That’s all needed in order to install mysql2 on a fresh macOS Mojave. Now you can develop ruby app that utilize MySQL as data store.

So guys, let me know if you encountered any problems? or any particular additional ways to install mysql2. That’s it guys hope you enjoyed this article and as always live life.

😀😁😁🤣😃😄


  1. Ruby is an interpreted, high-level, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro “Matz” Matsumoto in Japan. Ruby is dynamically typed and uses garbage collection. ↩︎
  2. MySQL is an open-source relational database management system. Its name is a combination of “My”, the name of co-founder Michael Widenius’s daughter, and “SQL”, the abbreviation for Structured Query Language. ↩︎
  3. Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed. ↩︎
  4. Homebrew is a free and open-source software package management system that simplifies the installation of software on Apple’s macOS operating system and Linux. The name is intended to suggest the idea of building software on the Mac depending on the user’s taste. ↩︎