lib/ooz/model/ooze.rb in ooze-parser-0.1.8 vs lib/ooz/model/ooze.rb in ooze-parser-0.1.9
- old
+ new
@@ -38,11 +38,29 @@
def fields
membranes
end
- def fields_hash(key: "_id")
- to_hash(fields, key: key)
+ def fields_hash(key: "_id", silent: true)
+ fields.group_by do |fld|
+ fld.send(key)
+ end.transform_values do |flds|
+ if flds.length == 1
+ flds.first
+ else
+ master = flds.first
+ next master unless master.is_a?(Ooz::Model::Field::Select)
+ rest = flds[1..-1]
+ rest.each do |fld|
+ if fld.is_a?(Ooz::Model::Field::Select)
+ master.other ||= fld.other
+ master.multiple ||= fld.multiple
+ Ooz::Base::Field::Select.merge_options(master, fld, silent: silent)
+ end
+ end
+ master
+ end
+ end
end
def sections
flow_nodes
end