Introducing Yesql for Ruby using ROM

Last week we released a new beta version of ROM and you’ll be able to read more about it on the official blog later this week. Today I’d like to tell you a little bit about a new adapter that I built for ROM that’s based on Yesql from the Clojure world. When I was working on ROM I was paying attention to other languages too searching for inspiration and Yesql was one of my favorite discoveries....

March 2, 2015 · 5 min · Peter Solnica

About the new ROM release and what happens next

Last month I wrote about rebooting ROM project and today I’m very happy that after almost 300 commits I pushed Ruby Object Mapper 0.3.0 to rubygems.org. It’s a big milestone as the project enters a new path and ships with a complete support for SQL databases thanks to Sequel. More official and less personal announcement is right here. In this post I’d like to give you more insight into what’s happening with the project and how its development is going to be organized and why....

November 24, 2014 · 4 min · Peter Solnica

Ruby Object Mapper Reboot

Rewrite is done. You can read more about it here. I’d like to let you know that after a couple years of work and a lot of thinking I decided to “reboot” ROM project. This decision was not easy and it has a lot of implications but it’s going to be awesome. Here’s why. New philosophy, similar goals If you’ve been following the project you know that the effort started as the next major version of DataMapper and then was renamed to ROM....

October 23, 2014 · 3 min · Peter Solnica

Mocking and Ruby

In the “TDD is dead” discussion unit testing and mocking is being mentioned frequently. DHH explicitly expressed how much he dislikes mocks and it seems like many people still connect unit testing with mocking or even confuse the two. In case you missed it Martin Fowler wrote a great article about what should be considered as a unit test. If you’re also confused about mocks and stubs I encourage you to read Mocks Arent’ Stubs....

May 22, 2014 · 6 min · Peter Solnica

Help Us Build ROM

Many people have been asking me how they can help us build ROM. This was the hardest question I’ve heard next to “when will it be ready?”. My usual reply was suggesting to join our IRC channel and talk but it really isn’t a good answer as it’s difficult and time consuming to talk about same things all over again that’s why I decided to finally put together this post and explain what’s going on and how you can help....

May 17, 2014 · 3 min · Peter Solnica

TDD Is Fun

Today DHH published a blog post about TDD being dead (to him at least). It’s really not that surprising since from what I know (please correct me if I’m wrong) David’s experience is mostly based on building web apps with Rails. I get that, I really do. For me practicing TDD in a rails environment is much harder than when I work on my OSS libraries. There are many reasons why TDD in Rails is just a bit harder than it could be but that’s a big, separate subject....

April 23, 2014 · 4 min · Peter Solnica

The World Needs Another Post About Dependency Injection in Ruby

I was wondering what do we, rubyists, think about dependency injection these days as I remember some discussions about it which were mostly lots of post-java-trauma type of criticism. I had this blog post in the back of my head for a long time but knowing that this subject was sort of…explored already, I decided to see what google has to say before writing it. So I typed “ruby dependency injection” and got this:...

December 17, 2013 · 4 min · Peter Solnica

Virtus 1.0.0 Released

I’m happy to announce that after 1486 commits Virtus 1.0.0 has been released. It comes with a lot of neat changes, improvements and new features. Here’s a quick summary of my favorite additions and changes. No more “include Virtus” That’s right. With 1.0.0 including Virtus module is deprecated. Instead you should use something called “custom extension builder”. It’s really cool, check this out: # for classes class User include Virtus.model # attributes go here end # for modules module CommonAttributes include Virtus....

October 16, 2013 · 4 min · Peter Solnica

A Closer Look at How Ruby Object Mapper Works

Last Friday we finally released the first version of Ruby Object Mapper. It’s a big step for the project as we’ve established foundation of the whole system. There are many missing features, crucial ones, like support for RDBMS, server-side generated keys or a full-blown Unit of Work but…we’ll be adding those in the upcoming future releases. With the foundation in place it’ll be much easier for us to continue working on ROM so you should see frequent releases from now on with important additions....

August 26, 2013 · 6 min · Peter Solnica

Mutation testing with Mutant

When working on DataMapper and its libraries we put a lot of effort into testing. Our libraries must have 100% code coverage and even that is not enough. What we want to achieve eventually is full mutation coverage. What is that? If you’ve ever heard or used Heckle then you’re probably familiar with the concept and you can skip the first part of this post and read about mutant. Code Coverage vs Mutation Coverage If your library has 100% code coverage and you think you did a great job then I have some bad news for you....

January 23, 2013 · 5 min · Peter Solnica