Class: BinData::SanitizedParameters
- Inherits:
-
Object
- Object
- BinData::SanitizedParameters
- Defined in:
- lib/bindata/sanitize.rb
Overview
A BinData object accepts arbitrary parameters. This class sanitizes those parameters so they can be used by the BinData object.
Instance Method Summary collapse
- #[](param) ⇒ Object
- #[]=(param, value) ⇒ Object
- #all_sanitized? ⇒ Boolean
- #delete(param) ⇒ Object
- #has_parameter?(param) ⇒ Boolean
-
#initialize(params, the_class) ⇒ SanitizedParameters
constructor
A new instance of SanitizedParameters.
- #length ⇒ Object (also: #size)
- #move_unknown_parameters_to(dest) ⇒ Object
- #needs_sanitizing?(param) ⇒ Boolean
- #sanitize!(sanitizer) ⇒ Object
Constructor Details
#initialize(params, the_class) ⇒ SanitizedParameters
Returns a new instance of SanitizedParameters.
11 12 13 14 15 16 17 18 19 |
# File 'lib/bindata/sanitize.rb', line 11 def initialize(params, the_class) @all_sanitized = false @the_class = the_class @parameters = {} params.each { |param, value| @parameters[param.to_sym] = value } ensure_no_nil_values end |
Instance Method Details
#[](param) ⇒ Object
26 27 28 |
# File 'lib/bindata/sanitize.rb', line 26 def [](param) @parameters[param] end |
#[]=(param, value) ⇒ Object
30 31 32 |
# File 'lib/bindata/sanitize.rb', line 30 def []=(param, value) @parameters[param] = value unless @all_sanitized end |
#all_sanitized? ⇒ Boolean
42 43 44 |
# File 'lib/bindata/sanitize.rb', line 42 def all_sanitized? @all_sanitized end |
#delete(param) ⇒ Object
69 70 71 |
# File 'lib/bindata/sanitize.rb', line 69 def delete(param) @parameters.delete(param) end |
#has_parameter?(param) ⇒ Boolean
34 35 36 |
# File 'lib/bindata/sanitize.rb', line 34 def has_parameter?(param) @parameters.has_key?(param) end |
#length ⇒ Object Also known as: size
21 22 23 |
# File 'lib/bindata/sanitize.rb', line 21 def length @parameters.size end |
#move_unknown_parameters_to(dest) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/bindata/sanitize.rb', line 59 def move_unknown_parameters_to(dest) unless @all_sanitized unused_keys = @parameters.keys - @the_class.accepted_parameters.all unused_keys.each do |param| next if param == :onlyif dest[param] = @parameters.delete(param) end end end |
#needs_sanitizing?(param) ⇒ Boolean
38 39 40 |
# File 'lib/bindata/sanitize.rb', line 38 def needs_sanitizing?(param) has_parameter?(param) and not self[param].is_a?(SanitizedParameter) end |
#sanitize!(sanitizer) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/bindata/sanitize.rb', line 46 def sanitize!(sanitizer) unless @all_sanitized merge_default_parameters! @the_class.sanitize_parameters!(self, sanitizer) ensure_mandatory_parameters_exist ensure_mutual_exclusion_of_parameters @all_sanitized = true end end |