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.
