class OddbPrevalence def check_active_agent_accessor_class methods = [:substance, :chemical_substance, :equivalent_substance, :dose, :chemical_dose, :equivalent_dose, :sequence] open("/home/masa/work/active_agent_class.dat","w") do |out| methods.each do |m| p m classes = registrations.values.map do |reg| reg.sequences.values.map do |seq| seq.active_agents.map do |aa| aa.send(m).class.to_s end end end.flatten.uniq out.print ":" + m.to_s, " => ", classes.join(","), "\n" end end end def check_package_accessor_class accessors = [:sequence, :ikscat, :generic_group, :sl_generic_type, :price_exfactory, :price_public, :pretty_dose, :market_date, :medwin_ikscd, :out_of_trade, :refdata_override, :deductible, :lppv, :disable, :swissmedic_source, :descr, :preview_with_market_date, :generic_group_factor, :photo_link, :disable_ddd_price, :ddd_dose, :sl_entry, :deductible_m, # for just-medical :bm_flag, :mail_order_prices ] open("/home/masa/work/package_class.dat","w") do |out| accessors.each do |m| p m classes = registrations.values.map do |reg| reg.sequences.values.map do |seq| seq.packages.values.map do |pac| pac.send(m).class.to_s end end end.flatten.uniq out.print ":" + m.to_s, " => \"", classes.join(","), "\",\n" end end end def check_atcclass_accessor_class accessors = [:code, :sequences, :descriptions] open("/home/masa/work/atcclass_class.dat","w") do |out| accessors.each do |m| classes = atc_classes.values.map do |atc| atc.send(m).class.to_s end.flatten.uniq out.print ":" + m.to_s, " => \"", classes.join(","), "\",\n" end end end def check_sequence_accessor_class accessors = [:registration, :atc_class, :export_flag, :patinfo, :pdf_patinfo, :atc_request_time, :deactivate_patinfo, :sequence_date, :activate_patinfo, :composition_text, :dose, :inactive_date] open("/home/masa/work/sequence_class.dat","w") do |out| accessors.each do |m| p m classes = registrations.values.map do |reg| reg.sequences.values.map do |seq| if seq.respond_to?(m) seq.send(m).class.to_s else seq.instance_variable_get('@'+m.to_s).class.to_s end end end.flatten.uniq out.print ":" + m.to_s, " => \"", classes.join(","), "\",\n" end end end def check_registration_accessor_class accessors = [:generic_type, :complementary_type, :registration_date, :export_flag, :company, :revision_date, :indication, :expiration_date, :inactive_date, :manual_inactive_date, :deactivate_fachinfo, :activate_fachinfo, :market_date, :fachinfo, :source, :ikscat, :renewal_flag, #:pdf_fachinfos, :renewal_flag_swissmedic, :index_therapeuticus, :comarketing_with, :vaccine, :ignore_patent, :parallel_import, :minifi, :product_group, :production_science, :ith_swissmedic, :keep_generic_type ] open("/home/masa/work/registration_class.dat","w") do |out| accessors.each do |m| classes = registrations.values.map do |reg| if reg.respond_to?(m) reg.send(m).class.to_s else reg.instance_variable_get('@'+m.to_s).class.to_s end end.flatten.uniq if classes.length = 1 out.print ":" + m.to_s, " => \"", classes.join(","), "\",\n" else out.print ":" + m.to_s, " => [", classes.map{|c| '"' + c.to_s + '"'}.join(","), "],\n" end end end end end