DRY(a): Year After Year

I’m guilty of it. Many of you are likely guilty of it… and I know that several customers of our Rails Code Audit and Review service are guilty of it.

How many times have you realized (after a few months has passed) that your Copyright date/year on your web site was no longer current?

How many of you had the same problem last year? The year before?

Let me share some advice with you all… DRY (a)!

Don’t Repeat Yourself (again)!

This is really a simple problem to fix but when we’re busy tackling bigger problems… little things like this slip by. Don’t worry, you’re not the only one who was reminded by a colleague three months into the year that you forgot to update this.

On client projects, we have a handful of helpers that we drop into the application. We’re starting to extract more of these into plugins and will be releasing those as time permits. It just happened that I found myself looking at yet-another Rails code base this afternoon that was showing 2007 in the footer. An easily forgivable offense.. but if you’re going to go in there and change it (again), take a moment to do the right thing. ;-)

Our solution at Planet Argon on client projects is to create a basic view helper that renders the current year. This allows us to do the following.

```yaml
<div id="footer">
    &copy; Copyright <%= current_year -%>. All Rights Reserved.
  </div>
The helper code looks like:
````ruby
```ruby
# add to application_helper.rb
  module ApplicationHelper
    def current_year
      Time.now.strftime('%Y')
    end
  end
Voila. Not rocket science.. is it?

Guess what? I'm getting really tired of adding this to every Rails
project that I touch. So, I bottled this little gem into a new Rails
plugin that we'll just add to future projects.

## Introducing Year after Year

This is really the smallest plugin that I could put together (and it
includes specs!)

**What does it provide you?**

YearAfterYear will provide you a helper that will render the current
year (dynamically)! That's right... just add the plugin to your Rails
application and you too can enjoy New Years 2009 without having to have
a deployment ready with a one line change from 2008 to 2009!

To use.. add the following to any view from within Ruby on Rails.
```erb
```text
<%= current_year -%>
### Installation

As I'm using git, you'll need to grab this and put it into
`vendor/plugins`. That's it!

You can grab it on [GitHub](http://github.com)!

-   <http://github.com/robbyrussell/year_after_year/>
-   Bugs / Feature Requests
```text
[here](http://planetargon.lighthouseapp.com/projects/5187-open-source-projects/tickets)
```ruby
Happy New Years (8+ months early)!

Just a friendly reminder to not forget the small stuff... because your
visitors will notice! ;-)

### Updates...

I got a few requests for this to also provide a range of years for
people who like to do: **2005-2007**. So this is now provided as well.

`year_range(start_year)`

Example:
```javascript
```javascript
<%= year_range(2005) %> # => 2005-2008

```

Hi, I'm Robby.

Robby Russell

I run Planet Argon, where we help organizations keep their Ruby on Rails apps maintainable—so they don't have to start over. I created Oh My Zsh to make developers more efficient and host the Maintainable.fm podcast to explore what it takes to build software that lasts.