summaryrefslogtreecommitdiffstats
path: root/lib/puppet/string/action.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/string/action.rb')
-rw-r--r--lib/puppet/string/action.rb16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/puppet/string/action.rb b/lib/puppet/string/action.rb
index 4219aca0a..692e467b4 100644
--- a/lib/puppet/string/action.rb
+++ b/lib/puppet/string/action.rb
@@ -29,13 +29,19 @@ class Puppet::String::Action
end
def add_option(option)
- if option? option.name then
- raise ArgumentError, "#{option.name} duplicates an existing option on #{self}"
- elsif @string.option? option.name then
- raise ArgumentError, "#{option.name} duplicates an existing option on #{@string}"
+ option.aliases.each do |name|
+ if conflict = get_option(name) then
+ raise ArgumentError, "Option #{option} conflicts with existing option #{conflict}"
+ elsif conflict = @string.get_option(name) then
+ raise ArgumentError, "Option #{option} conflicts with existing option #{conflict} on #{@string}"
+ end
end
- @options[option.name] = option
+ option.aliases.each do |name|
+ @options[name] = option
+ end
+
+ option
end
def option?(name)