Advertisement
sroller

StackOverflow question 36750308

Apr 20th, 2016
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.85 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. #
  3. # in response to Stackoverflow question: http://stackoverflow.com/questions/36750308/add-xml-fields-with-savon/36758434
  4. #
  5.  
  6. data = [{:diaria_media=>"103.58908136482939632545931759",
  7.   :diaria_media_uh=>"251,91982978723404255319148936",
  8.   :diaria_media_uh_sem_grat=>"101.54572898799313893653516295",
  9.   :quantidade_adulto=>"2557",
  10.   :quantidade_crianca1=>"33",
  11.   :quantidade_crianca2=>"154",
  12.   :room_night=>"1143",
  13.   :segmento_id=>"11",
  14.   :segmento_id2=>"11",
  15.   :segmento_mercado=>"AGÊNCIA DE VIAGENS",
  16.   :segmento_mercado2=>"AGÊNCIA DE VIAGENS",
  17.   :uh=>"470",
  18.   :valor=>"265434.890000",
  19.   :valor_periodo=>"118402.320000"},  
  20.  {:diaria_media=>"307.46792079207920792079207921",
  21.   :diaria_media_uh=>"437,38394366197183098591549296",
  22.   :diaria_media_uh_sem_grat=>"304.45352941176470588235294118",
  23.   :quantidade_adulto=>"250",
  24.   :quantidade_crianca1=>"19",
  25.   :quantidade_crianca2=>"56",
  26.   :room_night=>"101",
  27.   :segmento_id=>"14",
  28.   :segmento_id2=>"14",
  29.   :segmento_mercado=>"BALCÃO",
  30.   :segmento_mercado2=>"BALCÃO",
  31.   :uh=>"71",
  32.   :valor=>"31054.260000",
  33.   :valor_periodo=>"31054.260000"},
  34.  {:diaria_media=>"313.000000",
  35.   :diaria_media_uh=>"939,000000",
  36.   :diaria_media_uh_sem_grat=>"234.750000",
  37.   :quantidade_adulto=>"27",
  38.   :quantidade_crianca1=>"0",
  39.   :quantidade_crianca2=>"0",
  40.   :room_night=>"9",
  41.   :segmento_id=>"17",
  42.   :segmento_id2=>"17",
  43.   :segmento_mercado=>"CONVÊNIO",
  44.   :segmento_mercado2=>"CONVÊNIO",
  45.   :uh=>"3",
  46.   :valor=>"2817.000000",
  47.   :valor_periodo=>"2817.000000"},
  48.  {:diaria_media=>"0.0",
  49.   :diaria_media_uh=>"0,0",
  50.   :diaria_media_uh_sem_grat=>"0.0",
  51.   :quantidade_adulto=>"10",
  52.   :quantidade_crianca1=>"0",
  53.   :quantidade_crianca2=>"1",
  54.   :room_night=>"7",
  55.   :segmento_id=>"16",
  56.   :segmento_id2=>"16",
  57.   :segmento_mercado=>"CORPORATIVO ",
  58.   :segmento_mercado2=>"CORPORATIVO ",
  59.   :uh=>"7",
  60.   :valor=>"2458.580000",
  61.   :valor_periodo=>"0.0"},
  62.  {:diaria_media=>"4.4630434782608695652173913043",
  63.   :diaria_media_uh=>"9,524226804123711340206185567",
  64.   :diaria_media_uh_sem_grat=>"4.2378440366972477064220183486",
  65.   :quantidade_adulto=>"998",
  66.   :quantidade_crianca1=>"7",
  67.   :quantidade_crianca2=>"10",
  68.   :room_night=>"414",
  69.   :segmento_id=>"15",
  70.   :segmento_id2=>"15",
  71.   :segmento_mercado=>"INSTITUIÇÃO RELIGIOSA",
  72.   :segmento_mercado2=>"INSTITUIÇÃO RELIGIOSA",
  73.   :uh=>"194",
  74.   :valor=>"117389.030000",
  75.   :valor_periodo=>"1847.700000"},
  76.  {:diaria_media=>"150.89382627422828427853553482",
  77.   :diaria_media_uh=>"505,27668269230769230769230769",
  78.   :diaria_media_uh_sem_grat=>"145.86752255378209576682859126",
  79.   :quantidade_adulto=>"2949",
  80.   :quantidade_crianca1=>"108",
  81.   :quantidade_crianca2=>"385",
  82.   :room_night=>"1393",
  83.   :segmento_id=>"19",
  84.   :segmento_id2=>"19",
  85.   :segmento_mercado=>"OPERADORA",
  86.   :segmento_mercado2=>"OPERADORA",
  87.   :uh=>"416",
  88.   :valor=>"242248.380000",
  89.   :valor_periodo=>"210195.100000"},
  90.  {:diaria_media=>"221.11425992779783393501805054",
  91.   :diaria_media_uh=>"495,94048582995951417004048583",
  92.   :diaria_media_uh_sem_grat=>"217.19379432624113475177304965",
  93.   :quantidade_adulto=>"1587",
  94.   :quantidade_crianca1=>"138",
  95.   :quantidade_crianca2=>"268",
  96.   :room_night=>"554",
  97.   :segmento_id=>"10",
  98.   :segmento_id2=>"10",
  99.   :segmento_mercado=>"PARTICULAR",
  100.   :segmento_mercado2=>"PARTICULAR",
  101.   :uh=>"247",
  102.   :valor=>"168551.180000",
  103.   :valor_periodo=>"122497.300000"},
  104.  {:diaria_media=>"36.919200",
  105.   :diaria_media_uh=>"70,998461538461538461538461538",
  106.   :diaria_media_uh_sem_grat=>"24.288947368421052631578947368",
  107.   :quantidade_adulto=>"63",
  108.   :quantidade_crianca1=>"2",
  109.   :quantidade_crianca2=>"0",
  110.   :room_night=>"25",
  111.   :segmento_id=>"12",
  112.   :segmento_id2=>"12",
  113.   :segmento_mercado=>"PROPRIETARIO",
  114.   :segmento_mercado2=>"PROPRIETARIO",
  115.   :uh=>"13",
  116.   :valor=>"922.980000",
  117.   :valor_periodo=>"922.980000"},
  118.  {:diaria_media=>"31.967530864197530864197530864",
  119.   :diaria_media_uh=>"117,69863636363636363636363636",
  120.   :diaria_media_uh_sem_grat=>"1.3578238070267435762978500262",
  121.   :quantidade_adulto=>"162",
  122.   :quantidade_crianca1=>"4",
  123.   :quantidade_crianca2=>"12",
  124.   :room_night=>"81",
  125.   :segmento_id=>"13",
  126.   :segmento_id2=>"13",
  127.   :segmento_mercado=>"PROPRIETARIO / AUTORIZADO",
  128.   :segmento_mercado2=>"PROPRIETARIO / AUTORIZADO",
  129.   :uh=>"22",
  130.   :valor=>"2609.370000",
  131.   :valor_periodo=>"2589.370000"},
  132.  {:diaria_media=>"0",
  133.   :diaria_media_uh=>"0",
  134.   :diaria_media_uh_sem_grat=>"0",
  135.   :quantidade_adulto=>"0",
  136.   :quantidade_crianca1=>"0",
  137.   :quantidade_crianca2=>"0",
  138.   :room_night=>"0",
  139.   :segmento_id=>"0",
  140.   :segmento_id2=>"0",
  141.   :segmento_mercado=>"CONTA AVULSA",
  142.   :segmento_mercado2=>nil,
  143.   :uh=>"0",
  144.   :valor=>"0.000000",
  145.   :valor_periodo=>"0.000000"}];
  146.  
  147. sum = 0
  148. data.each do |e|
  149.   sum += e[:room_night].to_i
  150. end
  151. print "Enumerator approach: #{sum}\n"
  152.  
  153. print "Functional approach: ", data.map{|e| e[:room_night].to_i}.reduce(:+)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement