[#408634] How do I make lots of classes aware of each other? — "Andrew S." <lists@...>

I'm apparently missing something fundamental in my knowledge of classes

10 messages 2013/07/02

[#408712] Ruby web service with REST support — "Shubhada S." <lists@...>

Hi All,

17 messages 2013/07/05

[#408812] create variables depending on counter — stefan heinrich <lists@...>

Hi community,

21 messages 2013/07/09

[#408854] execute commands within SMTP email code: send content in variables and not actual variables — dJD col <lists@...>

I am trying to send an email using the code below. I am able to send the

9 messages 2013/07/10

[#409031] tap { break } idiom deserves its own Kernel method? — Andy Lowry <lists@...>

I use this idiom from time to time:

13 messages 2013/07/22

[#409072] Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...>

This is what I want to do.

19 messages 2013/07/23
[#409102] Re: Link To Masses Of External Data In Openoffice? — Tamara Temple <tamouse.lists@...> 2013/07/24

[#409103] Re: Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...> 2013/07/25

tamouse m. wrote in post #1116598:

[#409122] Re: Link To Masses Of External Data In Openoffice? — Tamara Temple <tamouse.lists@...> 2013/07/26

[#409142] Re: Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...> 2013/07/26

tamouse m. wrote in post #1116750:

[#409073] class <=> module — Bráulio Bhavamitra <lists@...>

Hello all,

17 messages 2013/07/23

[#409104] Ruby newbie question on Methods (NoMethoderror) — "Crispian A." <lists@...>

I have recently started learning ruby and so I am writing a small little

10 messages 2013/07/25

[#409170] Working through Ch.10 for learning to program 2.0 (Chris Pine) — JD JD <lists@...>

So, I have been working through this book, and have been doing ok up

33 messages 2013/07/28
[#409195] Re: Working through Ch.10 for learning to program 2.0 (Chris Pine) — Harry Kakueki <list.push@...> 2013/07/29

I tried this and came up with a one-liner that seems to do it. It sorts the

[#409258] WATIR - ScriptError popup on IE - Unable to get rid of! — Graeme Halls <lists@...>

I am new to Ruby & Watir, and I am having a nightmare with IE and Script

11 messages 2013/07/31

Re: ActiveSupport undercore behaviour

From: Tamara Temple <tamouse.lists@...>
Date: 2013-07-21 16:53:24 UTC
List: ruby-talk #409019
On Jul 21, 2013, at 12:21 AM, Serguei Cambour <lists@ruby-forum.com> wrote:

> tamouse m. wrote in post #1116149:
>> On Jul 20, 2013, at 2:51 PM, Serguei Cambour <lists@ruby-forum.com>
>> wrote:
>> 
>>>                             {"Seat"=>"2", "Colour"=>18, },
>>> TECHS.each_value do |value|
>>> \"available_posts\"=>[{\"seat\"=>\"2\", \"colour\"=>18},
>>> {\"seat\"=>\"3\", \"colour\"=>19}, {\"seat\"=>\"4\", \"colour\"=>181},
>>> {\"seat\"=>\"5\", \"colour\"=>183}]}]}", nil]]
>>> 
>>> Why are there some extra quotes and nil in the very end ? Thkx
>>> 
>>> --
>>> Posted via http://www.ruby-forum.com/.
>>> 
>> 
>> Not 100% sure what you're seeing as extra quotes, but the nil is what
>> you get from declaring two passed in values from the map method -- it
>> only passes in the current value of the array that your original
>> TECH['platform'] is pointing at, so k is current value, v is always nil.
>> 
>> 2.0.0-p247 :008 > [1, 2, 3, 4].map{|k,v| [k,v]}
>> => [[1, nil], [2, nil], [3, nil], [4, nil]]
>> 
>> Even if your array elements are hashes, there's still only one value
>> passed in from map:
>> 2.0.0-p247 :009 > [{a: 1, b: 2, c: 3}, {aa: 11, bb: 22, cc:
>> 33}].map{|k,v| [k,v]}
>> => [[{:a=>1, :b=>2, :c=>3}, nil], [{:aa=>11, :bb=>22, :cc=>33}, nil]]
> 
> Thanks a lot for the reply. My hash has one value - an array of nested 
> hashes, that's why I looped on that array and tried to format the keys 
> with 'underscore' method. I hoped to get them formatted with 
> 'underscore' as follows:
> 
> ARR: [[{"assigned_name"=>"p1", "export_price"=>"usd"... etc.
> 
> but got all of them prefixed with a backslash, just before every quote:
> 
> "{\"assigned_name\"=>\"p1\"
> 
> I'd like to pass that hash to update an ActiveRecord value with 
> update_attributes and it will fails with the above hashes. Any idea? 
> Thank you.


Oh, I see -- the "extra" quotes and backslashes are the output of inspect. Note the difference in irb:

2.0.0-p247 :011 >   TECHS.inspect
 => "{\"platform\"=>[{\"AssignedName\"=>\"P1\", \"ExportPrice\"=>\"USD\", \"Id\"=>\"1\", \"Delivery\"=>\"Y\", \"RegisteredMembers\"=>[{\"Name\"=>\"Admin\", \"Id\"=>\"3\", \"AvailablePosts\"=>[{\"Seat\"=>\"2\", \"Colour\"=>18}, {\"Seat\"=>\"3\", \"Colour\"=>19}, {\"Seat\"=>\"4\", \"Colour\"=>181}, {\"Seat\"=>\"5\", \"Colour\"=>183}]}]}]}" 
2.0.0-p247 :012 > TECHS
 => {"platform"=>[{"AssignedName"=>"P1", "ExportPrice"=>"USD", "Id"=>"1", "Delivery"=>"Y", "RegisteredMembers"=>[{"Name"=>"Admin", "Id"=>"3", "AvailablePosts"=>[{"Seat"=>"2", "Colour"=>18}, {"Seat"=>"3", "Colour"=>19}, {"Seat"=>"4", "Colour"=>181}, {"Seat"=>"5", "Colour"=>183}]}]}]} 
2.0.0-p247 :013 > 

The second one is the actual value of TECHS.

Let's take another stab at this.

TECHS is a hash with only one key: 'platform':

2.0.0-p247 :019 > TECHS.class
 => Hash 
2.0.0-p247 :020 > TECHS.keys
 => ["platform"] 


which contains an array of 1 item:

2.0.0-p247 :021 > TECHS['platform']
 => [{"AssignedName"=>"P1", "ExportPrice"=>"USD", "Id"=>"1", "Delivery"=>"Y", "RegisteredMembers"=>[{"Name"=>"Admin", "Id"=>"3", "AvailablePosts"=>[{"Seat"=>"2", "Colour"=>18}, {"Seat"=>"3", "Colour"=>19}, {"Seat"=>"4", "Colour"=>181}, {"Seat"=>"5", "Colour"=>183}]}]}] 
2.0.0-p247 :022 > TECHS['platform'].class
 => Array 
2.0.0-p247 :023 > TECHS['platform'].count
 => 1 

That one item is the thing you actually want to convert to pass to you model, yes? So without all the hoopla, try:

2.0.0-p247 :027 > params = Hash[TECHS['platform'].first.map{|k,v| [ActiveSupport::Inflector.underscore(k.to_s),v]}]
 => {"assigned_name"=>"P1", "export_price"=>"USD", "id"=>"1", "delivery"=>"Y", "registered_members"=>[{"Name"=>"Admin", "Id"=>"3", "AvailablePosts"=>[{"Seat"=>"2", "Colour"=>18}, {"Seat"=>"3", "Colour"=>19}, {"Seat"=>"4", "Colour"=>181}, {"Seat"=>"5", "Colour"=>183}]}]} 

I'm not sure what you want to be doing with the registered_members value, and the AvailablePosts key underneath that. Are these nested parameters for going in other tables with relationships? If so, you'll need to run those through the same method above. It would probably be very worthwhile to make that an actual method, that could be called recursively if v is something you want to work on (Hash, Array, Object).


In This Thread