We often work on projects that intersect two technologies near and dear to us: FileMaker and Ruby. This allows us to build robust web applications in Ruby on Rails, integrated with data sources from FileMaker solutions. When Claris introduced the FileMaker Data API we were naturally curious to try it out. At the time there was no off-the-shelf Ruby library for us to simply
gem install, so we decided to roll up our sleeves and build one. Thus, fmrest-ruby was born.
This article will walk you through setting up and using fmrest-ruby in a Ruby on Rails project. Some level of familiarity with Ruby/Rails and FileMaker’s Data API is advised, although much of the content covered here is applicable to any Ruby project, Rails or not.
Continue reading “Integrating FileMaker’s Data API and Ruby with the fmrest-ruby gem”
The decorator pattern is one of my favorite patterns. It is simple, extensible and powerful. It feels like it follows the essence of object oriented programming beautifully. Sadly though, it is also easy to be misused or misunderstood. So, in this post I will show you the essence of the decorator pattern, illustrated with a few examples.
Continue reading “OOP Fundamentals: The Decorator Pattern”
The dependency inversion principle is one of the cornerstones of object-oriented programming. Without it, there is no object-oriented design. It’s that important.
Continue reading “OOP Fundamentals: The Dependency Inversion Principle”
What is nothing?
undefined? A vast void of emptiness that fills your soul with dread? Oh sorry, that’s just my stomach.
We often think of nothing as… well, nothing. It’s when something doesn’t exist and therefore cannot be interacted with. So in our code, we try account for having nothing. No
Continue reading “Something out of Nothing: Null Object Pattern”
User? No problem.
Ruby devs are probably all too familiar with seeing this error:
NoMethodError (undefined method `foo' for nil:NilClass)
Most of the time, it’s probably due to a typo, but every now and then we end up having to do something like:
defined?(bar) && bar.foo
# returns nil if bar is nil
If you’re on Rails, or are using ActiveSupport, you can use
Continue reading “Ruby’s Safe Navigation Operator &. and is it a Code Smell?”
If you are into object-oriented programming, you most likely have heard about composition over inheritance. The concept itself is simple: Whenever possible, prefer to compose objects rather than introducing inheritance.
Over years of reviewing Ruby code, the same things tend to come up over and over. In this post, I’d like to address some of the most common code smells I find when reviewing OOP code (and Ruby code in particular).
Continue reading “Common Code Smells in OOP”
Introducing JSON Filter, Map, Reduce.
Now that FileMaker has given us a practical and more simplified way to loop in a calculation with the While() function, the doors have opened to other ways to look at looping.
Continue reading “Let’s Abstract a While() in FileMaker”
FileMaker has been missing a looping control structure in its function set for…well…a while. So, the introduction of FileMaker 18’s While() function is less a fancy new feature than it is a fix for a long standing limitation in FileMaker’s function set.
Continue reading “We’ve been waiting for While()… for a while”