[#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: Josh Cheek <josh.cheek@...>
Date: 2013-07-21 18:31:05 UTC
List: ruby-talk #409020
On Sun, Jul 21, 2013 at 7:03 AM, Serguei Cambour <lists@ruby-forum.com>wrote:

> I changed as follows and it works for the first nest level for the
> moment:
>
> def format_hash_key(hash)
>   Hash[hash.map {|k, v| [ActiveSupport::Inflector.underscore(k.to_s), v]
> }]
> end
>
> arr = []
> TECHS.each_value do |array_values|
>   array_values.each do |hash|
>     arr << format_hash_key(hash)
>   end
> end
> puts arr
>
> Output:
>
>
> {"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}]}]}
>
> Is there any elegant way to call the same method for other nested levels
> (values) ?
>
> Thank you.
>
> --
> Posted via http://www.ruby-forum.com/.
>
>
I'd probably do it like this. (I like using the word "json" in the name b/c
it makes it informs the caller of what the data structure can contain)

require 'active_support/inflector'

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, }
        ]
      }
    ]
  }]
}

def normalize_json(deserialized_json)
  case deserialized_json
  when Array
    deserialized_json.map { |v| normalize_json v }
  when Hash
    deserialized_json.each_with_object Hash.new do |(k, v), new_hash|
      new_hash[ActiveSupport::Inflector.underscore(k)] = normalize_json(v)
    end
  else
    deserialized_json
  end
end

require 'pp'
pp normalize_json TECHS

# >> {"platform"=>
# >>   [{"assigned_name"=>"P1",
# >>     "export_price"=>"USD",
# >>     "id"=>"1",
# >>     "delivery"=>"Y",
# >>     "registered_members"=>
# >>      [{"name"=>"Admin",
# >>        "id"=>"3",
# >>        "available_posts"=>
# >>         [{"seat"=>"2", "colour"=>18},
# >>          {"seat"=>"3", "colour"=>19},
# >>          {"seat"=>"4", "colour"=>181},
# >>          {"seat"=>"5", "colour"=>183}]}]}]}

In This Thread