[#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:
>>=20
>>>                             {"Seat"=3D>"2", "Colour"=3D>18, },
>>> TECHS.each_value do |value|
>>> \"available_posts\"=3D>[{\"seat\"=3D>\"2\", \"colour\"=3D>18},
>>> {\"seat\"=3D>\"3\", \"colour\"=3D>19}, {\"seat\"=3D>\"4\", =
\"colour\"=3D>181},
>>> {\"seat\"=3D>\"5\", \"colour\"=3D>183}]}]}", nil]]
>>>=20
>>> Why are there some extra quotes and nil in the very end ? Thkx
>>>=20
>>> --
>>> Posted via http://www.ruby-forum.com/.
>>>=20
>>=20
>> 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.
>>=20
>> 2.0.0-p247 :008 > [1, 2, 3, 4].map{|k,v| [k,v]}
>> =3D> [[1, nil], [2, nil], [3, nil], [4, nil]]
>>=20
>> 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]}
>> =3D> [[{:a=3D>1, :b=3D>2, :c=3D>3}, nil], [{:aa=3D>11, :bb=3D>22, =
:cc=3D>33}, nil]]
>=20
> Thanks a lot for the reply. My hash has one value - an array of nested=20=

> hashes, that's why I looped on that array and tried to format the keys=20=

> with 'underscore' method. I hoped to get them formatted with=20
> 'underscore' as follows:
>=20
> ARR: [[{"assigned_name"=3D>"p1", "export_price"=3D>"usd"... etc.
>=20
> but got all of them prefixed with a backslash, just before every =
quote:
>=20
> "{\"assigned_name\"=3D>\"p1\"
>=20
> I'd like to pass that hash to update an ActiveRecord value with=20
> update_attributes and it will fails with the above hashes. Any idea?=20=

> 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
 =3D> "{\"platform\"=3D>[{\"AssignedName\"=3D>\"P1\", =
\"ExportPrice\"=3D>\"USD\", \"Id\"=3D>\"1\", \"Delivery\"=3D>\"Y\", =
\"RegisteredMembers\"=3D>[{\"Name\"=3D>\"Admin\", \"Id\"=3D>\"3\", =
\"AvailablePosts\"=3D>[{\"Seat\"=3D>\"2\", \"Colour\"=3D>18}, =
{\"Seat\"=3D>\"3\", \"Colour\"=3D>19}, {\"Seat\"=3D>\"4\", =
\"Colour\"=3D>181}, {\"Seat\"=3D>\"5\", \"Colour\"=3D>183}]}]}]}"=20
2.0.0-p247 :012 > TECHS
 =3D> {"platform"=3D>[{"AssignedName"=3D>"P1", "ExportPrice"=3D>"USD", =
"Id"=3D>"1", "Delivery"=3D>"Y", "RegisteredMembers"=3D>[{"Name"=3D>"Admin"=
, "Id"=3D>"3", "AvailablePosts"=3D>[{"Seat"=3D>"2", "Colour"=3D>18}, =
{"Seat"=3D>"3", "Colour"=3D>19}, {"Seat"=3D>"4", "Colour"=3D>181}, =
{"Seat"=3D>"5", "Colour"=3D>183}]}]}]}=20
2.0.0-p247 :013 >=20

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
 =3D> Hash=20
2.0.0-p247 :020 > TECHS.keys
 =3D> ["platform"]=20


which contains an array of 1 item:

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

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

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