Grouping and split

Although this doesn't account for a typo like leaving off some part of
the pairs...could rescue for that situation.

Thanks for all the feeback.

···

On Jul 5, 7:42 pm, Sam Smoot <ssm...@gmail.com> wrote:

On Jul 5, 10:28 pm, Chris Shea <cms...@gmail.com> wrote:

> On Jul 5, 8:59 pm, SamSmoot<ssm...@gmail.com> wrote:

> > Another nice way to do it would be to split it up into a Hash since
> > that would give you distinct option/value pairs.

> > # s = "-A eth0-IN -i eth0 -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -
> > j ACCEPT"
> > # => "-A eth0-IN -i eth0 -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j
> > ACCEPT"
> > # Hash[s.split]
> > # => {"-m"=>"tcp", "-p"=>"tcp", "-s"=>"192.168.0.0/24", "-i"=>"eth0",
> > "-j"=>"ACCEPT", "--dport"=>"22", "-A"=>"eth0-IN"}

> Don't you need to splat the split?

> mvb:~ cms$ ruby -v
> ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]
> mvb:~ cms$ irb
> irb(main):001:0> s = "-A eth0-IN -i eth0 -s 192.168.0.0/24 -p tcp -m
> tcp --dport 22 -j ACCEPT"
> => "-A eth0-IN -i eth0 -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j
> ACCEPT"
> irb(main):002:0> Hash[s.split]
> ArgumentError: odd number of arguments for Hash
> from (irb):2:in `'
> from (irb):2
> from :0
> irb(main):003:0> Hash[*s.split]
> => {"-m"=>"tcp", "-p"=>"tcp", "-s"=>"192.168.0.0/24", "-i"=>"eth0", "-
> j"=>"ACCEPT", "--dport"=>"22", "-A"=>"eth0-IN"}

Yeah, I'm sorry. Got sloppy with my copy & paste and figured I could
just write it faster I guess. :slight_smile: