[#24183] "yield called out of block" — Mark Slagell <ms@...>

Having just talked with a nuby in email, I believe this error message

27 messages 2001/11/02
[#24243] Re: "yield called out of block" — matz@... (Yukihiro Matsumoto) 2001/11/03

Hi,

[#24223] Too much eval evil? (tell me why I shouldn't do this) — gandy@... (Thomas Gandy)

I've been doodling with Ruby (experimenting with it in order to figure

13 messages 2001/11/02

[#24335] Joys of eval — Albert Wagner <alwagner@...>

A few weeks ago I posted a request for help with regexp, split, scan, et.

30 messages 2001/11/04
[#24337] Re: Joys of eval — Sean Middleditch <elanthis@...> 2001/11/04

On Sun, 2001-11-04 at 13:29, Albert Wagner wrote:

[#24338] Re: Joys of eval — Albert Wagner <alwagner@...> 2001/11/04

On Sunday 04 November 2001 12:43 pm, you wrote:

[#24339] Re: Joys of eval — Sean Middleditch <elanthis@...> 2001/11/04

On Sun, 2001-11-04 at 14:01, Albert Wagner wrote:

[#24340] Re: Joys of eval — Todd Gillespie <toddg@...> 2001/11/04

On Mon, 5 Nov 2001, Sean Middleditch wrote:

[#24351] Re: Joys of eval — Sean Middleditch <elanthis@...> 2001/11/04

On Sun, 2001-11-04 at 14:31, Todd Gillespie wrote:

[#24466] Why is ruby slow (compared to perl) — "Aqil Azmi" <aazmi@...>

Hello,

29 messages 2001/11/06
[#24688] Re: Why is ruby slow (compared to perl) — Sean Russell <ser@...> 2001/11/08

Niko Schwarz wrote:

[#24694] Re: Why is ruby slow (compared to perl) — Robert Feldt <feldt@...> 2001/11/08

On Fri, 9 Nov 2001, Sean Russell wrote:

[#24511] kill rdtool? — Stefan Nobis <stefan@...>

Hi.

51 messages 2001/11/07
[#24530] RE: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24534] Re: kill rdtool? — Pierre-Charles David <Pierre-Charles.David@...> 2001/11/07

Mark Hahn wrote:

[#24535] Re: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24536] Re: kill rdtool? — Eric Lee Green <eric@...> 2001/11/07

On Wednesday 07 November 2001 09:34 am, Mark Hahn wrote:

[#24538] Re: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24540] Re: kill rdtool? — Eric Lee Green <eric@...> 2001/11/07

On Wednesday 07 November 2001 10:04 am, Mark Hahn wrote:

[#24541] Re: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24542] Re: kill rdtool? — Eric Lee Green <eric@...> 2001/11/07

On Wednesday 07 November 2001 10:14 am, Mark Hahn wrote:

[#24666] I've ported the python nntplib class to Ruby. I will be adding comments to it soon. Here it is for public commentary and criticism — jheard <jheard@...>

require 'socket'

9 messages 2001/11/08

[#24698] ruby and webservices — Markus Jais <info@...>

hello

46 messages 2001/11/08
[#24715] Re: ruby and webservices — ptkwt@...1.aracnet.com (Phil Tomson) 2001/11/09

In article <9setsu$1378d4$1@ID-75083.news.dfncis.de>,

[#24730] Re: ruby and webservices — "Rich Kilmer" <rich@...> 2001/11/09

Actually...its me.

[#24801] Re: XML libraries (Re: Re: ruby and webservices) — Tobias Reif <tobiasreif@...> 2001/11/09

Yukihiro Matsumoto wrote:

[#24861] Re: XML libraries (Re: Re: ruby and webservices) — TAKAHASHI Masayoshi <maki@...> 2001/11/11

Hi,

[#24877] Re: XML libraries (Re: Re: ruby and webservices) — Bob Hutchison <hutch@...> 2001/11/11

On 01/11/11 2:20 AM, "TAKAHASHI Masayoshi" <maki@open-news.com> wrote:

[#24700] Strange behaviour of Array#[] — Michael Neumann <neumann@...>

Hi,

12 messages 2001/11/08

[#24750] BUG: net/telnet.rb gives select invalid argument excepition — Ville Mattila <mulperi@...>

20 messages 2001/11/09

[#24810] Ruby-Tk; feature/bug/misunderstanding? mouse-location during when a key is pressed in the presence of TkMenubutton — Armin Roehrl <armin@...>

Hi,

8 messages 2001/11/09

[#24820] ANN: Triple-R - The Rubicon Results Repository — Dave Thomas <Dave@...>

16 messages 2001/11/10

[#24926] XML support in the standard lib — Tobias Reif <tobiasreif@...>

Hi,

128 messages 2001/11/12
[#24928] Re: XML support in the standard lib — Bob Hutchison <hutch@...> 2001/11/12

[#25011] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

PaulC wrote:

[#25014] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

P.S.

[#25023] Re: XML support in the standard lib; what exactly? — Bob Hutchison <hutch@...> 2001/11/13

On 01/11/13 9:56 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:

[#25027] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

Bob Hutchison wrote:

[#25037] Re: XML support in the standard lib; what exactly? — Bob Hutchison <hutch@...> 2001/11/13

On 01/11/13 11:21 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:

[#25018] Re: XML support in the standard lib; what exactly? — "Nat Pryce" <nat.pryce@...13media.com> 2001/11/13

The DOM is a pretty awkward API to both use and implement. An API based on

[#25126] Re: XML support in the standard lib; what exactly? — "James Britt (rubydev)" <james@...> 2001/11/14

>

[#25138] Re: XML support in the standard lib; what exactly? — "Simon St.Laurent" <simonstl@...> 2001/11/14

On Tue, 2001-11-13 at 20:53, James Britt (rubydev) wrote:

[#25151] Re: XML support in the standard lib; whatexactly? — "James Britt (rubydev)" <james@...> 2001/11/14

[#25202] Re: XML support in the standard lib;whatexactly? — "Nat Pryce" <nat.pryce@...13media.com> 2001/11/14

From: "Simon St.Laurent" <simonstl@simonstl.com>

[#25231] Re: XML support in the standard lib;whatexactly? — "James Britt (rubydev)" <james@...> 2001/11/15

[#25250] Re: XML support in the standard lib;whatexactly? — Tobias Reif <tobiasreif@...> 2001/11/15

James Britt (rubydev) wrote:

[#25251] Re: XML support in the standard lib;whatexactly? — Robert Feldt <feldt@...> 2001/11/15

On Thu, 15 Nov 2001, Tobias Reif wrote:

[#25020] Re: XML support in the standard lib; what exactly? — Robert Feldt <feldt@...> 2001/11/13

On Wed, 14 Nov 2001, Nat Pryce wrote:

[#25059] Re: XML support in the standard lib; what exactly? — Sean Russell <ser@...> 2001/11/13

Robert Feldt wrote:

[#25078] Re: XML support in the standard lib; what exactly? — Robert Feldt <feldt@...> 2001/11/13

On Wed, 14 Nov 2001, Sean Russell wrote:

[#25080] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

Hi all XMLers,

[#25102] Re: XML support in the standard lib; what exactly? — David Alan Black <dblack@...> 2001/11/13

Hello --

[#25157] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/14

Dave Thomas wrote:

[#25170] Re: XML support in the standard lib; what exactly? — chad fowler <chadfowler@...> 2001/11/14

[#24948] Refactoring tool for Ruby... — Stephan K舂per <Stephan.Kaemper@...>

Just being curious if someone has worked on a refactoring tool for

12 messages 2001/11/12

[#24955] Teach your kid math w/ruby — pete@... (Peter J. Kernan)

14 messages 2001/11/12

[#24958] Linux Magazine article — Dave Thomas <Dave@...>

53 messages 2001/11/12
[#26103] Re: Linux Magazine article — "Bill Kelly" <billk@...> 2001/11/22

[#26116] Re: Linux Magazine article — Jos Backus <josb@...> 2001/11/22

On Thu, Nov 22, 2001 at 10:20:04AM +0900, Bill Kelly wrote:

[#25029] Set class in Ruby — Yuri Leikind <YuriLeikind@...>

Hello all Ruby coders,

18 messages 2001/11/13

[#25082] exiting blox — Niko Schwarz <niko.schwarz@...>

Hi there,

17 messages 2001/11/13

[#25101] ANN: REXML 1.1a3 — Sean Russell <ser@...>

Hiho,

23 messages 2001/11/13

[#25276] GC question — Tony Smith <tony@...>

Hi there!

20 messages 2001/11/15
[#25777] Ruby in windows — "Mark Hahn" <mchahn@...> 2001/11/18

[#25788] RE: Ruby in windows — "Mark Hahn" <mchahn@...> 2001/11/18

This is what I get from command line:

[#25291] Re: ANN: REXML 1.1a3 — Ben Schumacher <BSchumacher@...>

Tobias Reif wrote:

24 messages 2001/11/15

[#25383] Arrays, iterators, and map/collect — "Hal E. Fulton" <hal9000@...>

Hello all...

12 messages 2001/11/16

[#25432] Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "Christian Boos" <cboos@...>

32 messages 2001/11/16
[#25678] RE: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "James Britt (rubydev)" <james@...> 2001/11/16

> I may have missed something, but the original question that started the

[#25722] RE: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — Sean Russell <ser@...> 2001/11/17

James Britt (rubydev) wrote:

[#25732] Re: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "James Britt (rubydev)" <james@...> 2001/11/17

>

[#25850] Re: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — Sean Russell <ser@...> 2001/11/19

James Britt (rubydev) wrote:

[#25689] Would like feedback on script to remove unused import statements in java — "Thomas R. Corbin" <tc@...>

I use this script all the time when developing in java, it really helps a

20 messages 2001/11/17
[#25829] Re: Would like feedback on script to remove unused import statements in java — "Ralph Mason" <ralph.mason@...> 2001/11/19

Is there any documentation on this anywhere?

[#25830] Re: Would like feedback on script to remove unused import statements in java — ts <decoux@...> 2001/11/19

>>>>> "R" == Ralph Mason <ralph.mason@telogis.com> writes:

[#25916] Why the appended '\n' in IO.readlines — Jim Freeze <jim@...> 2001/11/20

Hi

[#25753] Misunderstanding or bug? — Dave Thomas <Dave@...>

18 messages 2001/11/18

[#25808] KDE or GNOME curiosity question... — Robert Hicks <bobhicks@...>

I was just curious which desktop (of the two mentioned in the subject)

80 messages 2001/11/19
[#26360] Re: [OT] Re: KDE or GNOME curiosity question... — "Bill Kelly" <billk@...> 2001/11/24

[#26374] Re: [OT] Re: KDE or GNOME curiosity question... — "Mark Hahn" <mchahn@...> 2001/11/24

[#26518] Re: [OT] Re: KDE or GNOME curiosity question... — Paul Brannan <pbrannan@...> 2001/11/26

> How hard would it be to have an option to use reference counting in a

[#26544] Re: [OT] Re: KDE or GNOME curiosity question... — "mark hahn" <mchahn@...> 2001/11/26

> Circular references will cause the object to stay around indefinitely

[#26746] Re: [OT] Re: KDE or GNOME curiosity question... — matz@... (Yukihiro Matsumoto) 2001/11/28

Hi,

[#26825] RE: Ref Counting (was KDE or GNOME curiosity question...) — "Mark Hahn" <mchahn@...> 2001/11/28

[#26827] Re: Ref Counting (was KDE or GNOME curiosity question...) — "Matt Armstrong" <matt+dated+1007407366.0f6d51@...> 2001/11/28

"Mark Hahn" <mchahn@facelink.com> writes:

[#25861] A bug invoking a method with send? — chr_news@... (chr_news@...)

Hi,

12 messages 2001/11/19

[#25907] String#== : Why not error with different type? — furufuru@... (Ryo Furue)

Hi there,

17 messages 2001/11/20

[#25954] a quick question — Tobias DiPasquale <anany@...>

Hi all,

21 messages 2001/11/20
[#25959] PocketPC — "Chad Fowler" <chadfowler@...> 2001/11/20

Has anyone gotten Ruby running (perhaps in some limited form) on the

[#26006] R: Re: Hello World considered harmful — Alessandro Caruso <a.caruso@...>

I thought the main reason people are moving towards Ruby instead of keep

19 messages 2001/11/21
[#26023] Re: R: Re: Hello World considered harmful — Dave Thomas <Dave@...> 2001/11/21

Alessandro Caruso <a.caruso@creditonline.it> writes:

[#26029] Re: R: Re: Hello World considered harmful — Erik B虍fors <erik@...> 2001/11/21

On Wed, 2001-11-21 at 15:31, Dave Thomas wrote:

[#26126] Conformance Test of XML Parsers in Ruby(20011122) — TAKAHASHI Masayoshi <maki@...>

Hi all,

27 messages 2001/11/22
[#26128] Re: Conformance Test of XML Parsers in Ruby(20011122) — Tobias Reif <tobiasreif@...> 2001/11/22

TAKAHASHI Masayoshi wrote:

[#26134] Re: Conformance Test of XML Parsers in Ruby(20011122) — David Alan Black <dblack@...> 2001/11/22

Hello --

[#26145] Re: Conformance Test of XML Parsers in Ruby(20011122) — Kevin Smith <kevinbsmith@...> 2001/11/22

--- David Alan Black <dblack@candle.superlink.net

[#26181] Re: NQXML Conformance (was Re: Conformance Test of XML Parsers in Ruby(20011122)) — martin@... (Martin v. Loewis) 2001/11/22

Jim Menard <jimm@io.com> writes:

[#26141] Passing class names to constructors. — Hugh Sasse Staff Elec Eng <hgs@...>

If I want to create a variable number of objects, all of

14 messages 2001/11/22

[#26205] Book "Rub in 21 days" Table of contents online — Markus Jais <mjais@...>

hi

17 messages 2001/11/23

[#26214] generating and serving SVG — Tobias Reif <tobiasreif@...>

Hi,

39 messages 2001/11/23
[#26215] Re: generating and serving SVG — Robert Feldt <feldt@...> 2001/11/23

On Fri, 23 Nov 2001, Tobias Reif wrote:

[#26270] Table: Ruby versus Smalltalk, Objective-C, C++, Java; — Armin Roehrl <armin@...>

Hi,

28 messages 2001/11/24

[#26293] The results are in... — Dave Thomas <Dave@...>

28 messages 2001/11/24
[#26365] Re: The results are in... — Albert Wagner <alwagner@...> 2001/11/24

<snip>

[#26377] Re: The results are in... — Robert Feldt <feldt@...> 2001/11/24

On Sun, 25 Nov 2001, Albert Wagner wrote:

[#26389] Re: The results are in... — Albert Wagner <alwagner@...> 2001/11/25

On Saturday 24 November 2001 05:03 pm, you wrote:

[#26391] Re: The results are in... — Robert Feldt <feldt@...> 2001/11/25

On Sun, 25 Nov 2001, Albert Wagner wrote:

[#26337] Re: Table: Ruby versus Smalltalk, Objective-C, C++, Java; — "john%johnknight.com@..." <john%johnknight.com@...>

16 messages 2001/11/24

[#26362] Selector Namespaces: A Standard Feature for Smalltalk? — "David Simmons" <david.simmons@...>

Here is an incentive for classic Smalltalk evolution...

26 messages 2001/11/24

[#26537] Ruby vs. Python: Decisions, Decisions — "Bob Calco" <rcalco@...>

Everyone:

32 messages 2001/11/26

[#26557] Re: Ruby vs. Python: Decisions, Decisions — "Mike Wilson" <wmwilson01@...>

21 messages 2001/11/26

[#26651] Vote in the current poll! — Robert Feldt <feldt@...>

Hi,

26 messages 2001/11/27
[#26685] Re: Vote in the current poll! — ptkwt@...1.aracnet.com (Phil Tomson) 2001/11/27

In article <Pine.GSO.4.21.0111271419390.9896-100000@godzilla.ce.chalmers.se>,

[#26702] Re: Vote in the current poll! — Robert Feldt <feldt@...> 2001/11/27

On Wed, 28 Nov 2001, Phil Tomson wrote:

[#26752] Anyone know of a Regexp pattern random string generator? — "Ross Shaw" <rshaw1961@...>

I'm looking for some Ruby that given a Regexp pattern will generate a random

10 messages 2001/11/28

[#26782] RE: overload possible? — Wyss Clemens <WYS@...>

No, UNLESS you ask Guy Decoux (ts) to give you his *extension*

31 messages 2001/11/28
[#26791] Re: overload possible? — ts <decoux@...> 2001/11/28

>>>>> "W" == Wyss Clemens <WYS@helbling.ch> writes:

[#26792] Re: overload possible? — Robert Feldt <feldt@...> 2001/11/28

On Wed, 28 Nov 2001, ts wrote:

[#26847] Re: overload possible? — "Harry Ohlsen" <harryo@...> 2001/11/28

Here's a slightly better version, which also fixes the problem that

[#26860] Re: overload possible? — nobu.nokada@... 2001/11/29

At Thu, 29 Nov 2001 08:13:36 +0900,

[#26861] Re: overload possible? — "Rich Kilmer" <rich@...> 2001/11/29

excellent idea...how about this refactoring...

[#26894] short article draft for review — Tobias Reif <tobiasreif@...>

Hi,

26 messages 2001/11/29
[#26898] Re: short article draft for review — David Alan Black <dblack@...> 2001/11/29

Hi --

[#26899] Re: short article draft for review — Tobias Reif <tobiasreif@...> 2001/11/29

David,

[#26902] Re: short article draft for review — David Alan Black <dblack@...> 2001/11/29

Hi --

[#26973] thoughts on virtual base classes, interfaces — ptkwt@...1.aracnet.com (Phil Tomson)

16 messages 2001/11/29

[#26976] first class functions in Ruby — "MikkelFJ" <mikkelj-anti-spam@...1.dknet.dk>

In the thread on language design, I mentioned a wish for functions as first

15 messages 2001/11/29

[#26984] Can someone explain TupleSpaces? — ptkwt@...1.aracnet.com (Phil Tomson)

I looked at the examples that came with drb, but I'm still not quite

16 messages 2001/11/29

[#27054] Using Enumerable — Peter Hickman <peter@...>

Im trying to write my own each method for a 'sort of' range class that

19 messages 2001/11/30
[#27057] Re: Using Enumerable — David Alan Black <dblack@...> 2001/11/30

Hello --

[#27060] Re: Using Enumerable — Peter Hickman <peter@...> 2001/11/30

Thanks to all who replied, like all ruby it was alot simpler than I

[#27066] Musing — Dave Thomas <Dave@...>

32 messages 2001/11/30
[#27079] RE: Musing — "Rich Kilmer" <rich@...> 2001/11/30

Do it Dude!

[ruby-talk:25689] Would like feedback on script to remove unused import statements in java

From: "Thomas R. Corbin" <tc@...>
Date: 2001-11-17 00:06:41 UTC
List: ruby-talk #25689
I use this script all the time when developing in java, it really helps a 
lot.  But I'd like to get feedback on how to improve it, and I'd like to 
share it with others.  It helps me a lot, I hope it helps others.

One thing I'd like to add is the ability to have the java import statements 
sorted by the package names.  Also, I'd like to be able to ignore comments 
while scanning the java file.

#!/usr/bin/env ruby
#    -*- Mode: ruby -*-

#
#    "impfilt"   (java import filter)
#

require 'getoptlong'
require 'find'
require 'ftools'

def usage
    print <<"END_OF_DATA"
    #{$0}: --modify --backup <backup extension> --find
        --modify [-m]                  modify the files
        --backup [-i] <extension>      use this file extension for backups, 
                                       defaults to '.bak'
        --find                         do  a find from the current 
directory, 
                                       looking for java files
END_OF_DATA
end

class Class

    #
    #  Create an attr_reader method on the Class class for class atrributes
    #  attr_reader doesn't work for class attributes, so now we've modified
    #  the ruby Class class to be able to support this feature so that
    #  we don't have to write extra, scurrilous methods just to access
    #  class attributes, when we don't have to for regular attributes.
    #
    #  Ain't ruby grand!?!?
    #
    def cattr_reader( *cvs )
        cvs.each do |cv|
            class_eval %Q{def self.#{cv}; @@#{cv} end}
      end
    end
end


#
#  Test cattr_reader
#
#class Foo
#    @@foo = "Root"
#    @@bar = 66
#
#    cattr_reader :foo, :bar
#end

#p [Foo.foo, Foo.bar]                   #=> ["Root", 66]


class Import
    attr_reader( :fileName, :lineNumber, :line, :className )

    def initialize( fileName, lineNumber, line, className )
        @fileName     = fileName
        @lineNumber   = lineNumber
        @line         = line
        @className    = className
    end

    def to_s
        "Import: filename: #{@fileName}  lineNum: #{@lineNumber}  line: 
#{@line}  className: #{@className}\n"
    end

    def <=>( other )
        self.lineNumber <=> other.lineNumber
    end
end



class ImportFilter

    @@totalExtraImports = 0
    @@totalFiles = 0
    @@totalAffectedFiles = 0

    cattr_reader( :totalExtraImports, :totalFiles, :totalAffectedFiles )

    def initialize( fileName, modify, backup, backupExtension, verbose )
        @fileName        = fileName
        @hash            = Hash.new
        @violations      = Array.new
        @modify          = modify
        @verbose         = verbose
        @backup          = backup
        @backupExtension = backupExtension
        @backupName      = @fileName + backupExtension
        @lineCount       = 1
        @extraImports    = 0

        @@totalFiles    += 1
    end

    def process()

        File.open( @fileName ).each do |line|

            next if checkViolation( line )

            filter( line ) if not saveImport( line )

            @lineCount += 1
        end

        lineList = buildLineList()

        modifyFile( lineList )

        #
        #  Print the header and then all the results, violations,
        #  or otherwise.
        #
        printHeader()
        reportViolations()
        reportResults()
        printFooter()
    end

    def filter( line )

        #
        #  Remove any '//' based comments from this line
        #


        #
        #  Break the line into separate words and look for things
        #  that match import statements.
        #
        words = line.scan( /\w+/ )
        words.each do |word|
            @hash.delete( word )
        end
    end

    def saveImport( line )
        re = /^\s*import\s+(\w*\.)*(\w*)\s*;/
        match = re.match( line )

        return false if not match

        #
        #  Get the class name.
        #
        className = match[2]

        #
        #  Got a match, store it away in the hash table.
        #
        @hash[className] = Import.new( @fileName, @lineCount, line, 
className )
        return true
    end


    def checkViolation( line )
        re = /^\s*import\s+(\w*\.)*(\*)\s*;/
        match = re.match( line )

        return false if not match

        #
        #  Get the class name.
        #
        className = match[2]


        #
        #  Make sure this isn't a "*" import
        #
        if className == "*"
            @violations[@violations.length] = Import.new( @fileName,
                                                          @lineCount,
                                                          line,
                                                          className )
            return true
        end
    end

    def printHeader()
        printf "File: #{@fileName}\n"
    end

    def printFooter()
        printf "\n\t%d extra import(s)\n\n", @extraImports
    end

    def reportViolations()

        #  If there are no "relics" for this file, nothing to report
        return if @violations.length < 1

        @violations.each do |entry|
            printf "    VIOLATION -     line:%d    %s",
                                          entry.lineNumber,
                                          entry.line
        end
    end


    def reportResults()

        #  If there are no "relics" for this file, nothing to report
        return if @hash.length < 1

        #  Ok, this file is affected.
        @@totalAffectedFiles += 1
        @@totalExtraImports += @hash.length

        @extraImports = @hash.length

        list = Array.new
        @hash.each do |key, value|
            list.push( value )
        end

        list.sort!()

        list.each do |entry|
            printf "    line:%d    %s", entry.lineNumber, entry.line
        end

    end

    def buildLineList()

        list = []
        @hash.each do |key, value|
            list.push( value.lineNumber )
        end

        return list
    end

    def modifyFile( lineList )

        return if not @modify

        File.copy( @fileName, @backupName )

        lineList.sort!
        lineList.reverse!

        lineCount = 0
        marker = lineList.pop()

        output = File.open( @fileName, "w" )

        File.open( @backupName ).each do |line|

            lineCount += 1

            if marker and lineCount == marker
                marker = lineList.pop()

                if @verbose
                    print "skipping: #{lineCount} - #{line}"
                end

                next
            end

            output.print line
        end

        if not @backup
            File.delete( @backupName )
        end
    end
end


#  $-i = '.orig'


opts = GetoptLong.new(
    ["--find", "-f", GetoptLong::NO_ARGUMENT],
    ["--recurse", "-r", GetoptLong::NO_ARGUMENT],
    ["--modify", "-m", GetoptLong::NO_ARGUMENT],
    ["--verbose", "-v", GetoptLong::NO_ARGUMENT],
    ["--backup", "-i", GetoptLong::REQUIRED_ARGUMENT]
)



modify              = false
backup              = false
backupExtension     = ".bak"
find                = false
verbose             = false
opts.each do |opt, arg|
    #puts "Option: #{opt} arg: #{arg}"

    case opt

    when "--modify" then
        modify = true

    when "--verbose" then
        verbose = true

    when "--find" then
        find = true

    when "--recurse" then
        find = true

    when "--backup" then
        backup = true
        backupExtension = arg
    end
end

if (not modify) and backup
    print "You cannot choose the '--backup' option w/o also choosing the 
'--modify' option."
    usage
    exit
end


if find
    Find.find( "." ) do |file|

        next if not file =~ /.*\.java$/

        filter = ImportFilter.new( file,
                                  modify,
                                  backup,
                                  backupExtension,
                                  verbose )
        filter.process()
    end
end


ARGV.each do |fileName|
    filter = ImportFilter.new( fileName,
                              modify,
                              backup,
                              backupExtension,
                              verbose )
    filter.process()
end


printf "Total extra imports: %d\n", ImportFilter.totalExtraImports
printf "Total affected files: %d\n", ImportFilter.totalAffectedFiles
printf "Total inspected files: %d\n", ImportFilter.totalFiles

In This Thread

Prev Next