From 7ecd0995074d9b42fa96996554f6c41a8b35dbc6 Mon Sep 17 00:00:00 2001 From: Andrew Cantino Date: Mon, 9 Jun 2014 23:08:32 -0700 Subject: [PATCH] fix OpenStruct for 1.9.3 --- app/models/scenario_import.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/models/scenario_import.rb b/app/models/scenario_import.rb index edf55eb8..dd853770 100644 --- a/app/models/scenario_import.rb +++ b/app/models/scenario_import.rb @@ -237,5 +237,20 @@ class ScenarioImport yield 'propagate_immediately', propagate_immediately, boolean if self['propagate_immediately'].present? && propagate_immediately.requires_merge? yield 'disabled', disabled, boolean if disabled.requires_merge? end + + # Unfortunately Ruby 1.9's OpenStruct doesn't expose [] and []=. + unless instance_methods.include?(:[]=) + def [](key) + self.send(sanitize key) + end + + def []=(key, val) + self.send("#{sanitize key}=", val) + end + + def sanitize(key) + key.gsub(/[^a-zA-Z0-9_-]/, '') + end + end end end