Class: Oddb2xml::Chapter70xtractor
- Defined in:
- lib/oddb2xml/chapter_70_hack.rb
Constant Summary collapse
- LIMITATIONS =
{ 'L' => 'Kostenübernahme nur nach vorgängiger allergologischer Abklärung.', 'L1' => 'Eine Flasche zu 20 ml Urtinktur einer bestimmten Pflanze pro Monat.', 'L1, L2' => 'Eine Flasche zu 20 ml Urtinktur einer bestimmten Pflanze pro Monat. Für Aesculus, Carduus Marianus, Ginkgo, Hedera helix, Hypericum perforatum, Lavandula, Rosmarinus officinalis, Taraxacum officinale.', 'L3' => 'Alle drei Monate wird eine Verordnung/Originalpackung pro Mittel vergütet.', }
Instance Attribute Summary
Attributes inherited from Extractor
Class Method Summary collapse
- .items ⇒ Object
- .parse(html_file = 'http://bag.e-mediat.net/Sl2007.web.external/varia_De.htm') ⇒ Object
- .parse_td(elem) ⇒ Object
Methods inherited from Extractor
Constructor Details
This class inherits a constructor from Oddb2xml::Extractor
Class Method Details
.items ⇒ Object
26 27 28 |
# File 'lib/oddb2xml/chapter_70_hack.rb', line 26 def self.items @@items end |
.parse(html_file = 'http://bag.e-mediat.net/Sl2007.web.external/varia_De.htm') ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/oddb2xml/chapter_70_hack.rb', line 29 def self.parse(html_file = 'http://bag.e-mediat.net/Sl2007.web.external/varia_De.htm') data = Hash.new{|h,k| h[k] = [] } Ox. = { mode: :generic, effort: :tolerant, smart: true } res = Ox.load(open(html_file).read, mode: :hash_no_attrs).values.first['body'] result = [] idx = 0 @@items = {} res.values.last.each do |item| item.values.first.each do |subElem| what = Chapter70xtractor.parse_td(subElem) idx += 1 puts "#{idx}: xx #{what}" if $VERBOSE result << what end end result2 = result.find_all{ |x| (x.is_a?(Array) && x.first.is_a?(String)) && x.first.to_i > 100} result2.each do |entry| data = {} pharma_code = entry.first ean13 = (Oddb2xml::FAKE_GTIN_START + pharma_code.to_s) german = entry[2].force_encoding('ISO-8859-1').encode('UTF-8') while !german.eql?(HTMLEntities.new.decode(german)) german = HTMLEntities.new.decode(german) end @@items[ean13] = { :data_origin => 'Chapter70', :line => entry.join(","), :ean13 => ean13, :description => Oddb2xml.html_decode(entry[2]), :quantity => entry[3], :pharmacode => pharma_code, :pub_price => entry[4], :limitation => entry[5], :type => :pharma, } end result2 end |
.parse_td(elem) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/oddb2xml/chapter_70_hack.rb', line 8 def Chapter70xtractor.parse_td(elem) begin values = elem.is_a?(Array) ? elem : elem.values res = values.flatten.collect{|x| x.nil? ? nil : x.is_a?(Hash) ? x.values : x.gsub(/\r\n/,'').strip } puts "parse_td returns: #{res}" if $VERBOSE rescue => exc puts "Unable to pars #{elem} #{exc}" binding.pry return nil end res.flatten # .join("\t") end |