Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

What to do with #<URI::MailTo:0xb762601c URL:mailto:username@company.com>

13 views
Skip to first unread message

Thomas Gagne

unread,
Mar 14, 2013, 9:24:26 PM3/14/13
to
I'm trying to figure out how Ruby might unpack an .ics file for me.

When I look at a meeting's attendee and inspect the variable it outputs as

#<URI::MailTo:0xb762601c URL:mailto:user...@company.com>

Being unfamiliar with Ruby, I can't tell if by looking at this output there's a way for me to get user...@company.com from the variable or not.

If reading the code helps, it's below.

tgagne@ubuntu:~/work/heroku/ruby-sample$ cat test.rb
require 'rubygems'
require 'icalendar'
require 'date'

invite = File.open("invite.ics")

cals = Icalendar.parse(invite)

for each in cals do
puts each.inspect
puts

for eachEvent in each.events do
puts eachEvent.summary
puts eachEvent.description
puts eachEvent.location
puts eachEvent.status
puts eachEvent.dtstart
puts eachEvent.dtend
puts
puts eachEvent.organizer.inspect
for eachAttendee in eachEvent.attendees do
puts eachAttendee.inspect
end

end
end

Thomas Gagne

unread,
Mar 14, 2013, 9:35:49 PM3/14/13
to
I figured it out.

#<URI

is telling me the object is a uri class or something of mailto:

I looked up the doc for URI, found its subclass mailto, and discovered "to" to get the user's email.

Yea!

Robert Klemme

unread,
Mar 15, 2013, 6:49:13 AM3/15/13
to
On 15.03.2013 02:24, Thomas Gagne wrote:
> I'm trying to figure out how Ruby might unpack an .ics file for me.
>
> When I look at a meeting's attendee and inspect the variable it outputs as
>
> #<URI::MailTo:0xb762601c URL:mailto:user...@company.com>
>
> Being unfamiliar with Ruby, I can't tell if by looking at this output there's a way for me to get user...@company.com from the variable or not.
>
> If reading the code helps, it's below.
>
> tgagne@ubuntu:~/work/heroku/ruby-sample$ cat test.rb
> require 'rubygems'
> require 'icalendar'
> require 'date'
>
> invite = File.open("invite.ics")

Btw you're not closing the file properly. Also, you might want to open
the file with a specific encoding. RFC 2445 does seem to indicate that
we're facing a binary encoding (section 3.4, I didn't read too
extensively though).
http://www.ietf.org/rfc/rfc2445.txt

> cals = Icalendar.parse(invite)
>
> for each in cals do

"each" does not seem to be a good variable name here. Why not "entry"?

> puts each.inspect

p each

> puts
>
> for eachEvent in each.events do
> puts eachEvent.summary
> puts eachEvent.description
> puts eachEvent.location
> puts eachEvent.status
> puts eachEvent.dtstart
> puts eachEvent.dtend

You can combine that in a single puts statement.

> puts
> puts eachEvent.organizer.inspect
> for eachAttendee in eachEvent.attendees do
> puts eachAttendee.inspect
> end
>
> end
> end

Kind regards

robert


--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
0 new messages