class BinData::BaseArgProcessor
ArgProcessors process the arguments passed to BinData::Base.new
into the form required to initialise the BinData
object.
Any passed parameters are sanitized so the BinData
object doesn't need to perform error checking on the parameters.
Public Instance Methods
extract_args(obj_class, obj_args)
click to toggle source
Takes the arguments passed to BinData::Base.new
and extracts [value, sanitized_parameters, parent].
# File lib/bindata/base.rb, line 299 def extract_args(obj_class, obj_args) value, params, parent = separate_args(obj_class, obj_args) sanitized_params = SanitizedParameters.sanitize(params, obj_class) [value, sanitized_params, parent] end
sanitize_parameters!(obj_class, obj_params)
click to toggle source
Performs sanity checks on the given parameters. This method converts the parameters to the form expected by the data object.
# File lib/bindata/base.rb, line 332 def sanitize_parameters!(obj_class, obj_params) end
separate_args(_obj_class, obj_args)
click to toggle source
Separates the arguments passed to BinData::Base.new
into [value, parameters, parent]. Called by extract_args
.
# File lib/bindata/base.rb, line 308 def separate_args(_obj_class, obj_args) args = obj_args.dup value = parameters = parent = nil if args.length > 1 && args.last.is_a?(BinData::Base) parent = args.pop end if args.length > 0 && args.last.is_a?(Hash) parameters = args.pop end if args.length > 0 value = args.pop end parameters ||= @@empty_hash [value, parameters, parent] end