Sorting Project Resources - 02 May 2012
Here’s a snippet of the code I’ve been using to sort basic resources for my project management application. I’m planning on tweaking the regular expressions more, but they’ve been working so far for basic usage tests. The following code is taken from model/resource.rb.
before_save :find_format
def find_format
self.format = 'string' unless supported_format
end
def supported_format
twitter? || link?
end
def twitter?
self.format = 'twitter' if self.value =~ /\A@[A-Z0-9_]{1,}\Z/i
end
def link?
self.format = 'link' if self.value =~
/\Ahttp|https|www|(:\/\/){0,1}\.{0,1}[a-z0-9-]{1,}\.{1}[^ ]*\Z/i
end
As you can see the find_format method is called before a resource is created or updated. The default format is a basic string, which is assigned if the resource value doesn’t match any of the supported regular expressions.
I currently have support for Twitter and Links; however, I plan to add an RSS format, as well as many others in the future.