[#345382] Nice algorithm for 'spreading' indexes across an array? — Max Williams <toastkid.williams@...>

Little ruby algorithm puzzle...

13 messages 2009/09/01

[#345437] clogger 0.0.4 - configurable request logging for Rack — Eric Wong <normalperson@...>

* http://clogger.rubyforge.org/

10 messages 2009/09/02
[#345439] Re: [ANN] clogger 0.0.4 - configurable request logging for Rack — Iñaki Baz Castillo <ibc@...> 2009/09/02

2009/9/2 Eric Wong <normalperson@yhbt.net>:

[#345446] rdoc — Oleg Puchinin <ruby_talk@...>

Hello !

17 messages 2009/09/02
[#346260] Ruby 1.9 rdoc never ends (Re: rdoc) — James Britt <james.britt@...> 2009/09/12

Oleg Puchinin wrote:

[#346267] Re: Ruby 1.9 rdoc never ends (Re: rdoc) — Ryan Davis <ryand-ruby@...> 2009/09/12

[#346276] Re: Ruby 1.9 rdoc never ends (Re: rdoc) — Roger Pack <rogerpack2005@...> 2009/09/12

Ryan Davis wrote:

[#345493] What licensing info is needed in code headers? — "Shot (Piotr Szotkowski)" <shot@...>

Disclaimer: I know that some of you live in jurisdictions that do not

10 messages 2009/09/02

[#345535] Simple New Ruby Programmer Problem with $stdin.gets — Mason Kelsey <masonkelsey@...>

I'm having difficulty getting any command to work to pick up input from a

14 messages 2009/09/02

[#345573] Type checking function parameters — Nick Green <cruzmail.ngreen@...>

More or less all my functions look something like

22 messages 2009/09/03
[#345593] Re: Type checking function parameters — Eleanor McHugh <eleanor@...> 2009/09/03

On 3 Sep 2009, at 05:04, Nick Green wrote:

[#345606] Re: Type checking function parameters — Paul Smith <paul@...> 2009/09/03

My first stab at some Ruby started like this too.

[#345667] Re: Type checking function parameters — Nick Green <cruzmail.ngreen@...> 2009/09/03

OK...

[#345676] Re: Type checking function parameters — Eleanor McHugh <eleanor@...> 2009/09/04

On 3 Sep 2009, at 23:47, Nick Green wrote:

[#345687] Re: Type checking function parameters — James Edward Gray II <james@...> 2009/09/04

On Sep 3, 2009, at 7:30 PM, Eleanor McHugh wrote:

[#345745] Re: Type checking function parameters — Eleanor McHugh <eleanor@...> 2009/09/04

On 4 Sep 2009, at 03:56, James Edward Gray II wrote:

[#345828] Re: Type checking function parameters — spiralofhope <spiralofhope@...> 2009/09/06

Along the lines of this thread..

[#345835] Re: Type checking function parameters — "David A. Black" <dblack@...> 2009/09/06

Hi --

[#345773] Rubyscript instead of javascript — Damjan Rems <d_rems@...>

30 messages 2009/09/05
[#345970] Re: Rubyscript instead of javascript — Jg W Mittag <JoergWMittag+Usenet@...> 2009/09/08

David Masover wrote:

[#345774] how to compare two object instances? is "m1.to_yaml.eql?(m2.to_yaml)" a good way? — Greg Hauptmann <greg.hauptmann.ruby@...>

Hi,

8 messages 2009/09/05

[#345848] i need to strip \n and nil — Bigmac Turdsplash <i8igmac@...>

im sending files back and forth form a client and a server using

16 messages 2009/09/06

[#345883] Executing system commands in threads under Ruby 1.8.6 — vhaerun vh <etaern@...>

I tried to write a script that makes use of external binaries. Each

17 messages 2009/09/07
[#345889] Re: Executing system commands in threads under Ruby 1.8.6 — Robert Klemme <shortcutter@...> 2009/09/07

2009/9/7 vhaerun vh <etaern@yahoo.com>:

[#345893] Re: Executing system commands in threads under Ruby 1.8.6 — vhaerun vh <etaern@...> 2009/09/07

Here's a link to the question I asked on SO:

[#345901] Re: Executing system commands in threads under Ruby 1.8.6 — Eleanor McHugh <eleanor@...> 2009/09/07

On 7 Sep 2009, at 09:55, vhaerun vh wrote:

[#345904] Re: Executing system commands in threads under Ruby 1.8.6 — Bertram Scharpf <lists@...> 2009/09/07

Hi,

[#345886] Ruby 1.9, Rubygems, and .gemspec warnings — Rob Sanheim <rsanheim@...>

Hi all

14 messages 2009/09/07

[#346018] Tutorial challenge program help — Chris Logan <t-logan3@...>

Hello all im really new to ruby as in a few days and getting into it. i

20 messages 2009/09/09
[#346023] Re: Tutorial challenge program help — 7stud -- <bbxx789_05ss@...> 2009/09/09

Chris Logan wrote:

[#346027] Re: Tutorial challenge program help — Chris Logan <t-logan3@...> 2009/09/09

7stud -- wrote:

[#346091] How Are Variables Kept Independent of Each Other Yet Pass Values? — Mason Kelsey <masonkelsey@...>

Somewhere in the several books I've been learning Ruby from there was the

14 messages 2009/09/10
[#346096] Re: How Are Variables Kept Independent of Each Other Yet Pass Values? — venkatesh Peddi <venkat.peddi@...> 2009/09/10

[#346106] Asynchronous http POST? — Ivan Shevanski <ocelot117@...>

Hey everyone, I'm new to Ruby and to the mailing list, so go easy.

14 messages 2009/09/10
[#346166] Re: Asynchronous http POST? — Ezra Zygmuntowicz <ezmobius@...> 2009/09/10

[#346193] populating a hash from an array using inject — Glenn Jackman <glennj@...>

I was looking at this problem on Stack Overflow (this one:

12 messages 2009/09/10

[#346324] module to overwrite method defined via define_method — Gaspard Bucher <gaspard@...>

Hi List !

17 messages 2009/09/13
[#346326] Re: module to overwrite method defined via define_method — "David A. Black" <dblack@...> 2009/09/13

Hi --

[#346328] Re: module to overwrite method defined via define_method — Gaspard Bucher <gaspard@...> 2009/09/13

David A. Black wrote:

[#346347] FasterCSV.foreach loop — Dot Baiki <dot_baiki@...>

Hello community,

16 messages 2009/09/13

[#346367] .map.with_object(3){|v|v+3} #=> 3 Is this a bug? — ErMaker <ermaker@...>

At ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-mswin32_90]

15 messages 2009/09/14

[#346383] Pre-allocate large amount of memory? — Carsten Gehling <carsten@...>

I've created a small daemon, that serves certain data very fast to our

15 messages 2009/09/14
[#346404] Re: Pre-allocate large amount of memory? — Robert Klemme <shortcutter@...> 2009/09/14

2009/9/14 Carsten Gehling <carsten@sarum.dk>:

[#346419] whats the best way to package deploy a Ruby app to windows??? (no UI, also standalone if possible) — Greg Hauptmann <greg.hauptmann.ruby@...>

Hi,

8 messages 2009/09/14

[#346452] Command line — Rong <ron.green@...>

Please forgive this stupid newb question but I thought it was possible

13 messages 2009/09/15

[#346500] Array of Hashes in an array of hashes - Complicated! — Matt Brooks <mattbrooks@...>

I have an unique problem that I can't solve. I am sorry this is long,

17 messages 2009/09/15
[#346505] Re: Array of Hashes in an array of hashes - Complicated! — John W Higgins <wishdev@...> 2009/09/15

Morning Matt,

[#346508] Re: Array of Hashes in an array of hashes - Complicated! — Matt Brooks <mattbrooks@...> 2009/09/15

Hi John,

[#346510] Re: Array of Hashes in an array of hashes - Complicated! — John W Higgins <wishdev@...> 2009/09/15

Matt,

[#346515] Re: Array of Hashes in an array of hashes - Complicated! — Aldric Giacomoni <aldric@...> 2009/09/15

+1 on object creation

[#346574] string to array — Re BR <rereis@...>

Hello all,

15 messages 2009/09/16

[#346611] block issues... — Dylan Lukes <revenantphoenix@...>

In the following block, each plugin in the constant hash PLUGINS is

17 messages 2009/09/16

[#346621] Monkey Patching 2 Methods, Overrides One Method, Not The Other — MaggotChild <hsomob1999@...>

I'm monkey patching 2 methods of an existing module: some_method() and

18 messages 2009/09/17

[#346645] Mucking about with dynamically adding methods to objects — Paul Smith <paul@...>

I've been toying with Ruby for a while, but only now am I beginning to

12 messages 2009/09/17
[#346652] Re: Mucking about with dynamically adding methods to objects — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2009/09/17

On Thu, Sep 17, 2009 at 11:44 AM, Paul Smith <paul@pollyandpaul.co.uk> wrote:

[#346665] Re: Mucking about with dynamically adding methods to objects — Paul Smith <paul@...> 2009/09/17

2009/9/17 Jes俍 Gabriel y Gal疣 <jgabrielygalan@gmail.com>:

[#346676] Value isn't appended in puts statement(appears on next line) — Mrmaster Mrmaster <mrsolarlife@...>

Hello,

13 messages 2009/09/17
[#346678] Re: Value isn't appended in puts statement(appears on next line) — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2009/09/17

On Thu, Sep 17, 2009 at 8:51 PM, Mrmaster Mrmaster

[#346759] Newbie: Are Ruby regexp's a subset, superset, or equal to Perl's? — Harry <simonsharry@...>

Hi,

13 messages 2009/09/18

[#346774] Exceptional Rails Developer — Richard Price <richard.price100@...>

Hi all,

32 messages 2009/09/18
[#347451] Re: Exceptional Rails Developer — Ilan Berci <ilan.berci@...> 2009/09/30

Richard Price wrote:

[#347452] Re: Exceptional Rails Developer — Zundra Daniel <zundra.daniel@...> 2009/09/30

At least he didn't say "Rockstar" or "Ninja"

[#347476] Re: Exceptional Rails Developer — David Masover <ninja@...> 2009/09/30

On Wednesday 30 September 2009 01:45:27 pm Zundra Daniel wrote:

[#347477] Re: Exceptional Rails Developer — Greg Donald <gdonald@...> 2009/09/30

On Wed, Sep 30, 2009 at 6:44 PM, David Masover <ninja@slaphack.com> wrote:

[#347482] Re: Exceptional Rails Developer — David Masover <ninja@...> 2009/10/01

On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:

[#347514] Re: Exceptional Rails Developer — Eleanor McHugh <eleanor@...> 2009/10/01

On 1 Oct 2009, at 01:32, David Masover wrote:

[#347551] Re: Exceptional Rails Developer — David Masover <ninja@...> 2009/10/01

On Thursday 01 October 2009 08:20:26 am Eleanor McHugh wrote:

[#347592] Re: Exceptional Rails Developer — Eleanor McHugh <eleanor@...> 2009/10/02

On 1 Oct 2009, at 19:15, David Masover wrote:

[#347596] Re: Exceptional Rails Developer — Aldric Giacomoni <aldric@...> 2009/10/02

[#346775] Determining if a file is binary or text — James Masters <james.d.masters@...>

Hi all,

15 messages 2009/09/18

[#346891] Incrementing variable names in a loop? — Matt Brooks <mattbrooks@...>

I have a function write_log that takes in a string and it prints to

10 messages 2009/09/21

[#347044] the great ruby editor and ide roundup — Martin DeMello <martindemello@...>

https://spreadsheets.google.com/ccc?key=0Al_hzYODcgxwdG9tUFhqcVVoUDVaLTlqT2YtNjV1N0E&hl=en

26 messages 2009/09/23
[#347045] Re: the great ruby editor and ide roundup — Rajinder Yadav <devguy.ca@...> 2009/09/23

On Wed, Sep 23, 2009 at 4:02 PM, Martin DeMello <martindemello@gmail.com> wrote:

[#347058] How do you limit the line length of the output commands? Where is pqueue library documented? — Mason Kelsey <masonkelsey@...>

There must be an easy way to solve the problem of controlling the length of

12 messages 2009/09/23

[#347156] Roulette & rand — Semih Ozkoseoglu <ozansemih@...>

Hi,

22 messages 2009/09/25
[#347161] Re: Roulette & rand — Stefano Crocco <stefano.crocco@...> 2009/09/25

On Friday 25 September 2009, Semih Ozkoseoglu wrote:

[#347164] Re: Roulette & rand — Semih Ozkoseoglu <ozansemih@...> 2009/09/25

Hi again Stefano,

[#347171] Re: Roulette & rand — Stefano Crocco <stefano.crocco@...> 2009/09/25

On Friday 25 September 2009, Semih Ozkoseoglu wrote:

[#347173] Re: Roulette & rand — Semih Ozkoseoglu <ozansemih@...> 2009/09/25

Stefano, Paul,

[#347179] Re: Roulette & rand — Semih Ozkoseoglu <ozansemih@...> 2009/09/25

Hi again,

[#347193] How to remove duplicate elements in a 2D array — Li Chen <chen_li3@...>

Hi all,

20 messages 2009/09/25

[#347202] Backporting Enumerator.new { ... } to Ruby 1.8.7 — "Shot (Piotr Szotkowski)" <shot@...>

Hello, good people of ruby-talk.

12 messages 2009/09/25

[#347260] handling of regexp objects that aren't referenced by variables, arrays, tables or objects — ThomasW <x.zupftom@...>

Hi,

12 messages 2009/09/27

[#347354] How do I use nitpick — "Michael W. Ryder" <_mwryder@...>

I was looking for a program like lint in C and came across nitpick. I

23 messages 2009/09/29
[#347366] Re: How do I use nitpick — Hassan Schroeder <hassan.schroeder@...> 2009/09/29

On Mon, Sep 28, 2009 at 9:25 PM, Michael W. Ryder

[#347397] Re: How do I use nitpick — "Michael W. Ryder" <_mwryder@...> 2009/09/29

Hassan Schroeder wrote:

[#347398] Re: How do I use nitpick — Ryan Davis <ryand-ruby@...> 2009/09/29

[#347364] Group by unique entries of a hash — Ne Scripter <stuart.clarke@...>

I have two data sets loaded into a hash to give the following output

15 messages 2009/09/29

[#347443] Get current working copy version in subversion/git — Anthony Metcalf <anthony.metcalf@...>

Hi,

11 messages 2009/09/30

[#347456] SystemStackError: stack level too deep > how make it deeper? — Joshua Muheim <forum@...>

Hi all

15 messages 2009/09/30
[#347459] Re: SystemStackError: stack level too deep > how make it deeper? — Jason Roelofs <jameskilton@...> 2009/09/30

On Wed, Sep 30, 2009 at 3:47 PM, Joshua Muheim <forum@josh.ch> wrote:

Re: Getting to one attribute of my marshalled array of objects

From: Brian Tickler <btickler@...>
Date: 2009-09-19 19:18:26 UTC
List: ruby-talk #346825
Thanks Doug,

I implemented all those changes.  I guess I just went too far down the 
wrong road with trying to handle the empty inventory, so I removed that 
whole mechanic.  Part of that was that I tried to marshal @carArray 
originally but messed it up somehow (it only dumped the object ID or 
something), and that's when I tried to marshal self instead and it 
worked.  Not sure what I did there since when I tried again with 
@carArray it worked fine.

I am having another issue, though.  In order to delete a car, I need to 
number the inventory when it displays so that I can ask the user to tell 
me which car to delete by its number on the list (this is part of the 
assignment so I can't really do it another way).

At first I thought I would modify the to_s on CarInventory which right 
now just iterates through the array of Cars using .each and calls 
Cars.to_s, but then I decided it would be more robust if Cars.to_s was 
aware of whether it was being called repeatedly as part of a listing or 
not, from anywhere.

So I added a parameter "def to_s(listPosition=0)" to Car.to_s and 
changed the .each call in the CarInventory.to_s to pass a position 
number.  When I run the progrma now though I get a really bizarre 
behavior...I was supposed to get this type of output with 2 cars in my 
data file (simplified because I am also formatting it to comform to 
columns, etc.):

[1] VIN# Year Make Model Color Price
[2] ...

Instead I got the same results without any bracketed list numbers...so I 
added a debug counter and a puts of the relevent part of my string 
output, and I got this:

Called 1 times
[1]
Called 2 times
[2]
Called 3 times
nil
VIN# [...]
Called 4 times
nil
VIN# [...]

Which is where I am stuck...after adding the parameter Ruby appears to 
be calling to_s 4 times now instead of 2 times and I have no idea why. 
The first 2 times it gets the first part of the string I am building set 
up correctly, but loses everything else and the second 2 times it does 
the whole rest of the string build correctly but ignores the first part. 
I have tried everything I cna thinnk of to display the strings invloved 
at every stage/state and it seems ok...I just can't figure out why the 
to_s is calling four times when it should be twice.

Source below (you can run it, add a car or two, then uncomment the DEBUG 
lines to see what happens):

----SOURCE

class Car

  # DEBUG: @@debugCounter = 0

  def initialize(vin, year, make, model, color, price)
    @vin = vin
    @year = year
    @make = make
    @model = model
    @color = color
    @price = price
  end

  def to_s(listPosition=0) # allow for a listing position to be passed
    # DEBUG: @@debugCounter = @@debugCounter + 1
    # DEBUG: puts "Called #@@debugCounter times"
    displayString = ""
    80.times {displayString << " "} # lay down a canvas of spaces to 
build the full displayString
    if !self.vin
      displayVIN = "(No VIN)"
    else
      displayVIN = self.vin
    end
    if !self.color
      displayColor = ""
    else
      displayColor = "(#@color)"
    end
    # DEBUG: debugString = "[" + listPosition.to_s + "]" if listPosition 
!= 0
    # DEBUG: puts debugString
    displayString[0, 0] = "[" + listPosition.to_s + "]" if listPosition 
!= 0
    displayString[6, 0] = displayVIN
    displayString[25, 0] = @year + " " + @make + " " + @model + " " + 
displayColor
    displayString[70, 0] = @price
    displayString = displayString.strip # make the format look like a 
"normal" to_s call if passed no list position
  end

  def <=> (compare)
    self.year  <=> compare.year
  end

  attr_accessor :vin, :year, :make, :model, :color, :price

end

class CarInventory

  @@inventoryFile = "cars.data"

  def initialize
    if File.exists?(@@inventoryFile)
      File.open(@@inventoryFile) do |file|
        @carArray = Marshal.load(file)
      end
    else
        @carArray = Array.new
    end
  end

  def save
    File.open(@@inventoryFile, "w+") do |file|
      Marshal.dump(@carArray, file)
    end
  end

  def addCar(car)
    @carArray << car
  end

  def updateCar(car)
    updateIndex = @carArray.index(car)
    if updateIndex
      @carArray[updateIndex]  = car
    else
      puts "Cannot find car #car.vin\n"
    end
  end

  def delCar(car)
    @carArray.delete(car)
  end

  def to_s
    if @carArray.first
      @carArray.each {|car| car.to_s(@carArray.index(car) + 1)}
    else
      return "(No inventory)"
    end
  end

  def ==(compare)
    self.vin == compare.vin
  end

  def sort(sortBy)
    case sortBy
      when "V":
      when "M":
      when "P":
      when "Y":
    else
    end
  end

  def filter(filterArray)

  end

attr_reader :carArray, :inventoryFile

end

puts "Car Inventory 1.0 - Brian Tickler\n"

cars = CarInventory.new

loop do
  puts "\n#     VIN                 Car Description 
Price\n"
  puts 
"----------------------------------------------------------------------------\n"
  puts cars.to_s
  puts 
"----------------------------------------------------------------------------\n"
  puts "(A)dd a new car\n"
  puts "(E)dit a car\n"
  puts "(D)elete a car\n"
  puts "(S)ave changes\n"
  puts "(Q)uit\n"
  puts "\nCommand: "
  command = gets.chomp.upcase
  case
    when command =~ /^A/ :
      puts "\nAdd a new car:\n"
      puts "\nVIN:"
      vin = gets.chomp
      puts "\nYear:"
      year = gets.chomp
      puts "\nMake:"
      make = gets.chomp
      puts "\nModel:"
      model = gets.chomp
      puts "\nColor:"
      color = gets.chomp
      puts "\nPrice:"
      price = gets.chomp
      newCar = Car.new(vin, year, make, model, color, price)
      cars.addCar(newCar)
    when command =~ /^E/ :
      puts "\nEdit a car:\n"
    when command =~ /^D/ :
      puts "\nDelete a car:\n"
    when command =~ /^S/ :
      cars.save
      puts "\nSaved to #cars.inventoryFile\n"
    when command =~ /^Q/ :
      puts "Are you sure? [Y/N]"
      confirm = gets.chomp.upcase
      exit if confirm =~ /^Y/
      next
    else puts "Illegal Command: #{command}"
  end
end


-- 
Posted via http://www.ruby-forum.com/.

In This Thread