Class: UserChoices::ArbitraryArglist

Inherits:
AbstractArglistStrategy show all
Defined in:
lib/user-choices/arglist-strategies.rb

Overview

The arglist is to be treated as a list, possibly with a Conversion that limits its length. It defers processing of an empty arglist until the last possible moment and only does it if there's no other value for the choice symbol.

Instance Attribute Summary

Attributes inherited from AbstractArglistStrategy

#choice

Instance Method Summary collapse

Methods inherited from AbstractArglistStrategy

#arglist_arity_error, #initialize

Constructor Details

This class inherits a constructor from UserChoices::AbstractArglistStrategy

Instance Method Details

#adjust(all_choices) ⇒ Object



118
119
120
121
122
123
124
125
# File 'lib/user-choices/arglist-strategies.rb', line 118

def adjust(all_choices)
  return if @value_holder[@choice]
  return if all_choices.has_key?(@choice)
  
  all_choices[@choice] = []
  @value_holder[@choice] = all_choices[@choice]
  apply_length_check
end

#apply_claimed_conversionsObject



114
115
116
# File 'lib/user-choices/arglist-strategies.rb', line 114

def apply_claimed_conversions
  apply_length_check
end

#claim_conversions(conversions_map) ⇒ Object



110
111
112
# File 'lib/user-choices/arglist-strategies.rb', line 110

def claim_conversions(conversions_map)
  claim_length_check(conversions_map)
end

#fill(arglist) ⇒ Object

:nodoc:



106
107
108
# File 'lib/user-choices/arglist-strategies.rb', line 106

def fill(arglist)
  @value_holder[@choice] = arglist unless arglist.empty?
end