Class: Paypal::Api::Enum
- Defined in:
- lib/paypal_api/support/parameter.rb
Instance Attribute Summary collapse
-
#allowed_values ⇒ Object
readonly
needs to return the exact string if given instead of symbol.
Attributes inherited from Parameter
Instance Method Summary collapse
-
#initialize(*values) ⇒ Enum
constructor
A new instance of Enum.
- #normalize(val) ⇒ Object
- #parse(val) ⇒ Object
Methods inherited from Parameter
Constructor Details
#initialize(*values) ⇒ Enum
Returns a new instance of Enum.
131 132 133 134 135 136 137 138 139 |
# File 'lib/paypal_api/support/parameter.rb', line 131 def initialize(*values) if values.length == 1 && values[0].is_a?(::Hash) @hash_enum = true @allowed_values = values[0] else @allowed_values = values @normalized_values = @allowed_values.inject({}){|acc, v| acc[normalize(v)] = v; acc} end end |
Instance Attribute Details
#allowed_values ⇒ Object (readonly)
needs to return the exact string if given instead of symbol
129 130 131 |
# File 'lib/paypal_api/support/parameter.rb', line 129 def allowed_values @allowed_values end |
Instance Method Details
#normalize(val) ⇒ Object
158 159 160 |
# File 'lib/paypal_api/support/parameter.rb', line 158 def normalize(val) return val.to_s.downcase.gsub(/[^a-z0-9]/,"") end |
#parse(val) ⇒ Object
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/paypal_api/support/parameter.rb', line 141 def parse(val) if @hash_enum if @allowed_values.include?(val) return @allowed_values[val] else raise Paypal::InvalidParameter, "'#{val}' must be a key in #{@allowed_values.keys}" end else normed = normalize(val) if @normalized_values.include?(normed) return @normalized_values[normed] else raise Paypal::InvalidParameter, "'#{val}' must be one of #{@allowed_values}" end end end |