I used LinkedIn gem by pengwynn to get authentication from LinkedIn. Everything works fine, and I get a Mash in a callback that looks like this:
#<LinkedIn::Mash all=[#<LinkedIn::Mash company=#<LinkedIn::Mash id=1422 industry="Banking"
name="Company" size="10,001+ employees" ticker="ABC" type="Public Company"> id=2851554
is_current=true start_date=#<LinkedIn::Mash month=12 year=2008> summary="" title="Boss">] total=1>
How can I parse it to something similar to Rails params in order to create a new object from it?
Thank you.
When you receive list of connections of any sort from LinkedIn, you need to get to the list from
all
. On the object you received from LinkedIn, you have{all, total}
.total
will give you the number of objects in the array,all
will give you all of the objects. So if you wanted to turn the first company into a hash, you would callobject.all.first.to_hash
. You can iterate through all of them by doingobject.all.each {|c| # your block}
.If your own Rails models match the objects being returned from the linkedin gem, you can do:
If they don't map 1:1, you can just choose the fields you want:
You can just call
.to_hash
to turn a Mash into a Hash (likeparams
).Source:
https://github.com/intridea/hashie/blob/master/lib/hashie/hash.rb