It depends on two things: whether you want to preserve the input lines =
or not.

First of all, I would do such stuff in a function that takes an =
argument. It keeps
you from being dependent on an instance variable. So I will use:

    def strip_python_loads(input)

This makes the code usable in more contexts.

Now, if you don't care about preserving line numbers, you can do the =
following:

    text =3D <<PYTHON
    from foo import bar

    batz
    PYTHON

    def strip_python_loads(input)
      input.reject { |line| line =3D~ /\s*from[ =
A-Za-z0-9\_.]*import\s*\w*/ }=20
      # or reject! if you want to destruct input
    end

    puts strip_python_loads(text.split("\n")).join("\n")

Preserving input can be done using #map:

    text =3D <<PYTHON
    from foo import bar

    batz
    PYTHON

    def strip_python_loads(input)
      input.map do |line|
        unless line =3D~ /\s*from[ A-Za-z0-9\_.]*import\s*\w*/
          line
        end
      end
      #same here, #map! works destructively
    end

    puts strip_python_loads(text.split("\n")).join("\n")
    # or even
    puts strip_python_loads(text.lines).join("\n")

Regards,
Florian


On Aug 9, 2011, at 9:38 PM, serialhex wrote:

> ok, many responses, all very good and reasonable, but i guess my point =
is
> kinda missed so i'll explain deeper...
>=20
> here is an awesome kludge of a program i wrote last night:
> https://gist.github.com/1133359
>=20
> yes it's ugly, and yes it's horrible, but it's not meant to be used =
for
> anything more than what it was used for (which is quickly converting =
python
> to ruby, and give kinda workable results most of the time, and since =
it's
> simply single file programs that i was going to edit & fix later, i'm =
not
> worried as to how ugly the translator is, or the translation, it just =
did
> 90% of my work for me)
>=20
> look at the strip_python_loads method, that is the *best* way i can =
come up
> with at the moment.  yes i know there are better ways (to write this =
and the
> entire program) but what are they?  if i wanted to edit the contents =
of an
> array while iterating through it how do it do it besides that?  like i =
said,
> a method such as each! which will allow you to modify the receiver =
would be
> nice...
> hex
>=20
> p.s. oh, and if you want to fork & edit that gist to make it prettier =
& more
> useful feel free to do so!
>=20
>=20
> --=20
> my blog is cooler than yours: serialhex.github.com
>=20
> The wise man said: "Never argue with an idiot. They bring you down to =
their
> level and beat you with experience."
>=20
>>> Other than the fact Linux has a cool name, could someone explain why =
I
>>> should use Linux over BSD?
>>=20
>> No.  That's it.  The cool name, that is.  We worked very hard on
>> creating a name that would appeal to the majority of people, and it
>> certainly paid off: thousands of people are using linux just to be =
able
>> to say "OS/2? Hah.  I've got Linux.  What a cool name".  386BSD made =
the
>> mistake of putting a lot of numbers and weird abbreviations into the
>> name, and is scaring away a lot of people just because it sounds too
>> technical.
> 	-- Linus Torvalds' follow-up to a question about Linux

--
Florian Gilcher

smtp:   flo / andersground.net
jabber: Skade / jabber.ccc.de
gpg:    533148E2