How The Design Patterns Are Used In Mina Gem

How often do we look inside a Gem to see what’s inside it? Well – there is SO MUCH to learn from the code. Sanjiv digs inside the Mina gem and unearths the various design patterns that it uses.

An excellent article for developers to learn design patterns not from the book but directly from the implementation. It’s always easy to relate to something concrete that just read about it.


Mina is popular gem for fast deployment of simple ruby on rails apps. I found these design patterns being used in mina and we can learn how to use them from these real live implementations.

  1. Singleton Design Pattern.
  2. Delegation Pattern

If you are unfamiliar with Design patterns, I strongly recommend reading  Gang Of Four’s Design Pattern book. You can also have a quick wiki reference.

Singleton Design Pattern

In simple terms, Singleton design pattern mean there should be single instance of class, hence mostly used to provided global state of app.

The Singleton module implements the Singleton pattern. We include this module in a class for implementing singleton pattern. Mina gem uses the singleton pattern for storing configuration options to accessed data globally.  Here is the code from `lib/mina/configuration.rb`

1: require 'singleton' 2: module Mina 3: class Configuration 4: include Singleton 5: 6: module DSL 7: def self.included(base) 8: [:set, :fetch, :remove, :set?, :ensure!…

View original post 570 more words

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.