sroller icon

StackOverflow question 36750308

sroller | PRO | 04/21/16 02:35:47 AM UTC | 0 ⭐ | 577 👁️ | Never ⏰ | []
Ruby |

4.85 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/env ruby
#
# in response to Stackoverflow question: http://stackoverflow.com/questions/36750308/add-xml-fields-with-savon/36758434
#
 
data = [{:diaria_media=>"103.58908136482939632545931759", 
  :diaria_media_uh=>"251,91982978723404255319148936", 
  :diaria_media_uh_sem_grat=>"101.54572898799313893653516295", 
  :quantidade_adulto=>"2557",
  :quantidade_crianca1=>"33", 
  :quantidade_crianca2=>"154",
  :room_night=>"1143",
  :segmento_id=>"11",
  :segmento_id2=>"11",
  :segmento_mercado=>"AGÊNCIA DE VIAGENS", 
  :segmento_mercado2=>"AGÊNCIA DE VIAGENS",
  :uh=>"470",
  :valor=>"265434.890000", 
  :valor_periodo=>"118402.320000"},   
 {:diaria_media=>"307.46792079207920792079207921", 
  :diaria_media_uh=>"437,38394366197183098591549296", 
  :diaria_media_uh_sem_grat=>"304.45352941176470588235294118", 
  :quantidade_adulto=>"250",
  :quantidade_crianca1=>"19", 
  :quantidade_crianca2=>"56",
  :room_night=>"101",
  :segmento_id=>"14",
  :segmento_id2=>"14",
  :segmento_mercado=>"BALCÃO",
  :segmento_mercado2=>"BALCÃO",
  :uh=>"71",
  :valor=>"31054.260000",
  :valor_periodo=>"31054.260000"},
 {:diaria_media=>"313.000000",
  :diaria_media_uh=>"939,000000",
  :diaria_media_uh_sem_grat=>"234.750000",
  :quantidade_adulto=>"27",
  :quantidade_crianca1=>"0",
  :quantidade_crianca2=>"0",
  :room_night=>"9",
  :segmento_id=>"17",
  :segmento_id2=>"17",
  :segmento_mercado=>"CONVÊNIO",
  :segmento_mercado2=>"CONVÊNIO",
  :uh=>"3",
  :valor=>"2817.000000",
  :valor_periodo=>"2817.000000"},
 {:diaria_media=>"0.0",
  :diaria_media_uh=>"0,0",
  :diaria_media_uh_sem_grat=>"0.0",
  :quantidade_adulto=>"10",
  :quantidade_crianca1=>"0",
  :quantidade_crianca2=>"1",
  :room_night=>"7",
  :segmento_id=>"16",
  :segmento_id2=>"16",
  :segmento_mercado=>"CORPORATIVO ",
  :segmento_mercado2=>"CORPORATIVO ",
  :uh=>"7",
  :valor=>"2458.580000",
  :valor_periodo=>"0.0"},
 {:diaria_media=>"4.4630434782608695652173913043",
  :diaria_media_uh=>"9,524226804123711340206185567",
  :diaria_media_uh_sem_grat=>"4.2378440366972477064220183486",
  :quantidade_adulto=>"998",
  :quantidade_crianca1=>"7",
  :quantidade_crianca2=>"10",
  :room_night=>"414",
  :segmento_id=>"15",
  :segmento_id2=>"15",
  :segmento_mercado=>"INSTITUIÇÃO RELIGIOSA",
  :segmento_mercado2=>"INSTITUIÇÃO RELIGIOSA",
  :uh=>"194",
  :valor=>"117389.030000",
  :valor_periodo=>"1847.700000"},
 {:diaria_media=>"150.89382627422828427853553482",
  :diaria_media_uh=>"505,27668269230769230769230769", 
  :diaria_media_uh_sem_grat=>"145.86752255378209576682859126", 
  :quantidade_adulto=>"2949",
  :quantidade_crianca1=>"108",
  :quantidade_crianca2=>"385",
  :room_night=>"1393",
  :segmento_id=>"19",
  :segmento_id2=>"19",
  :segmento_mercado=>"OPERADORA",
  :segmento_mercado2=>"OPERADORA",
  :uh=>"416",
  :valor=>"242248.380000",
  :valor_periodo=>"210195.100000"}, 
 {:diaria_media=>"221.11425992779783393501805054",
  :diaria_media_uh=>"495,94048582995951417004048583",
  :diaria_media_uh_sem_grat=>"217.19379432624113475177304965",
  :quantidade_adulto=>"1587",
  :quantidade_crianca1=>"138",
  :quantidade_crianca2=>"268",
  :room_night=>"554",
  :segmento_id=>"10",
  :segmento_id2=>"10",
  :segmento_mercado=>"PARTICULAR",
  :segmento_mercado2=>"PARTICULAR",
  :uh=>"247",
  :valor=>"168551.180000",
  :valor_periodo=>"122497.300000"},
 {:diaria_media=>"36.919200",
  :diaria_media_uh=>"70,998461538461538461538461538",
  :diaria_media_uh_sem_grat=>"24.288947368421052631578947368",
  :quantidade_adulto=>"63",
  :quantidade_crianca1=>"2",
  :quantidade_crianca2=>"0",
  :room_night=>"25",
  :segmento_id=>"12",
  :segmento_id2=>"12",
  :segmento_mercado=>"PROPRIETARIO",
  :segmento_mercado2=>"PROPRIETARIO",
  :uh=>"13",
  :valor=>"922.980000",
  :valor_periodo=>"922.980000"},
 {:diaria_media=>"31.967530864197530864197530864",
  :diaria_media_uh=>"117,69863636363636363636363636",
  :diaria_media_uh_sem_grat=>"1.3578238070267435762978500262",
  :quantidade_adulto=>"162",
  :quantidade_crianca1=>"4",
  :quantidade_crianca2=>"12",
  :room_night=>"81",
  :segmento_id=>"13",
  :segmento_id2=>"13",
  :segmento_mercado=>"PROPRIETARIO / AUTORIZADO",
  :segmento_mercado2=>"PROPRIETARIO / AUTORIZADO",
  :uh=>"22",
  :valor=>"2609.370000",
  :valor_periodo=>"2589.370000"},
 {:diaria_media=>"0",
  :diaria_media_uh=>"0",
  :diaria_media_uh_sem_grat=>"0",
  :quantidade_adulto=>"0",
  :quantidade_crianca1=>"0",
  :quantidade_crianca2=>"0",
  :room_night=>"0",
  :segmento_id=>"0",
  :segmento_id2=>"0",
  :segmento_mercado=>"CONTA AVULSA",
  :segmento_mercado2=>nil,
  :uh=>"0",
  :valor=>"0.000000",
  :valor_periodo=>"0.000000"}];
 
sum = 0
data.each do |e|
  sum += e[:room_night].to_i
end
print "Enumerator approach: #{sum}\n"
 
print "Functional approach: ", data.map{|e| e[:room_night].to_i}.reduce(:+)

Comments