Skip to content

Instantly share code, notes, and snippets.

@ljkbennett
Forked from durran/gist:315227
Last active December 16, 2015 20:49
Show Gist options
  • Save ljkbennett/5495596 to your computer and use it in GitHub Desktop.
Save ljkbennett/5495596 to your computer and use it in GitHub Desktop.
module MultiParameterAttributes
def filter_time(attributes, name)
attrs = attributes.collect do |key, value|
if key =~ /^#{Regexp.escape(name.to_s)}\((\d+)(\w)\)$/
[$1.to_i, value.send("to_#$2")]
end
end.compact.sort_by(&:first).map(&:last)
attributes.reject! {|key,value| key =~ /^#{Regexp.escape(name.to_s)}\((\d+)(\w)\)$/ }
attributes[name] = Time.zone.local(*attrs) unless attrs.empty?
end
end
class ApplicationController < ActionController::Base
include MultiParameterAttributes
end
class YourController < ApplicationController
def your_action
filter_time(params, :my_time_attribute_name)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment