lib/procemon/mpatch/array.rb in procemon-0.4.2 vs lib/procemon/mpatch/array.rb in procemon-0.4.3

- old
+ new

@@ -51,10 +51,25 @@ # not in the target array def contain?(oth_array)#anothere array (oth_array & self) == oth_array end + # return boolean by other array + # if any element included from + # the oth_array, return a true + def contain_any_of?(oth_array) + oth_array.each do |element| + if self.include? element + return true + end + end + return false + end + + alias :contains_any_of? :contain_any_of? + alias :has_any_of? :contain_any_of? + # do safe transpose def safe_transpose result = [] max_size = self.max { |a,b| a.size <=> b.size }.size max_size.times do |i| @@ -63,6 +78,63 @@ end result end alias :contains? :contain? + + # return boolean + # if any element class is equal to th given class + # return a true , else false + def contain_element_of_class?(class_name) + target_array= self.map{|e| e.class }.uniq + if class_name.class != Class + raise ArgumentError, "Argument must be a Class!" + end + if target_array.include? class_name + return true + end + return false + end + + alias :contains_element_of_class? :contain_element_of_class? + alias :has_element_of_class? :contain_element_of_class? + + # generate params structure from array + # *args => {:args,:opts} + def params_separation + + options= self.map { |element| + if element.class == Hash + element + end + }.uniq - [ nil ] + #options.each{|e| self.delete(e) } + arguments= self.dup - options + options= Hash[*options] + + return { + arguments: arguments, + args: arguments, + options: options, + opts: options + } + + end + + alias :separate_params :params_separation + alias :process_params :params_separation + + # generate params structure from array + # *args - options {} + def extract_options! + options= self.map { |element| + if element.class == Hash + element + end + }.uniq - [ nil ] + options.each{|e| self.delete(e) } + return Hash[*options] + end + + alias :get_options! :extract_options! + end \ No newline at end of file