Please review pull request #86: (#12484) Strips whitespace from parameter keys opened by (djsauble2)

Description:

Parameter keys for groups and nodes aren't allowed to have
trailing spaces. This commit adds a filter before validation
that strips these spaces.

Fixes http://projects.puppetlabs.com/issues/12484

  • Opened: Tue Feb 14 17:44:01 UTC 2012
  • Based on: puppetlabs:master (6dae29eb72a5d1b6ecfa3f5e49109040fbf4f02f)
  • Requested merge: djsauble2:12484_strip_whitespace (b5afd67f27acc8bba83d6bc351b7b6965f053a82)

Diff follows:

diff --git a/app/models/parameter.rb b/app/models/parameter.rb
index 8d56807..4ad85a8 100644
--- a/app/models/parameter.rb
+++ b/app/models/parameter.rb
@@ -1,4 +1,9 @@
+require 'trimmer'
+
 class Parameter < ActiveRecord::Base
+  include Trimmer
+  trimmed_fields :key
+
   belongs_to :parameterable, :polymorphic => true
   validates_presence_of :key
 
diff --git a/lib/trimmer.rb b/lib/trimmer.rb
new file mode 100644
index 0000000..3af29fc
--- /dev/null
+++ b/lib/trimmer.rb
@@ -0,0 +1,15 @@
+module Trimmer
+  def self.included(base)
+    base.extend ClassMethods
+  end
+
+  module ClassMethods
+    def trimmed_fields *field_list
+      before_validation do |model|
+        field_list.each do |n|
+          model[n] = model[n].strip if model[n].respond_to?('strip')
+        end
+      end
+    end
+  end
+end
diff --git a/spec/models/parameter_spec.rb b/spec/models/parameter_spec.rb
index 24b78d3..1a3b9c3 100644
--- a/spec/models/parameter_spec.rb
+++ b/spec/models/parameter_spec.rb
@@ -11,4 +11,10 @@
     @parameter.save
     Parameter.find(@parameter.id).value.should == [1,2,3]
   end
+
+  it { "strips whitespace from keys" do
+    @parameter.key = "test   "
+    @parameter.save
+    Parameter.find(@parameter.id).key.should == "test"
+  end
 end

    

--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to