On 12/03/2010 09:25 AM, [email protected] wrote: ... > + def self.check_hwp_property(p1, p2) > + if p1.kind == 'range' > + calculate_range_match(p1, p2) > + elsif p2.kind == 'range' > + calculate_range_match(p2, p1) > + else > + return !(create_array_from_property(p1)& > create_array_from_property(p2)).empty? > + end > + end > + > + def self.calculate_range_match(p1, p2) > + case p2.kind > + when 'range' > + return !(p1.range_first.to_f> p2.range_last.to_f || > p1.range_last.to_f< p2.range_first.to_f) > + > + when 'enum' > + p2.property_enum_entries.each do |enum| > + if (p1.range_first.to_f..p1.range_last.to_f) === enum.value.to_f > + return true > + end > + end > + return false > + > + when 'fixed' > + return (p1.range_first.to_f..p1.range_last.to_f) === p2.value.to_f > + > + end > + end > + > + def self.create_array_from_property(p) > + case p.kind > + when 'fixed' > + return [p.value.to_f] > + > + when 'enum' > + return p.property_enum_entries.map { |enum| enum.value.to_f } > + end > + end > end
Hi, just a minor note: above methods could be instance methods of HardwareProfileProperty model. So for example: check_hwp_property(p1, p2) could be called: p1.matches?(p2) (or whatever else method name...) Jan _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel
