I have been using autotest/zentest 3.5.0 with my rails 2.0.2 and rspec. I upgraded my gems and got 3.9.3 and had a problem. I went back to 3.5.0 and it worked. I stayed there until moving to rails 2.1. I again updated my gems and got 3.10. This one had the same problem. This time I need to figure out what is wrong. Here is what I get: /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:394:in `find_files_to_test'': undefined method `values'' for #<Array:0x18b2530> (NoMethodError) from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:239:in `run_tests'' from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:228:in `get_to_green'' from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:208:in `run'' from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:206:in `loop'' from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:206:in `run'' from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:136:in `run'' from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/bin/autotest:55 from /usr/bin/autotest:19:in `load'' from /usr/bin/autotest:19 Here is the failing code: def find_files result = {} targets = self.find_directories + self.extra_files self.find_order.clear targets.each do |target| order = [] Find.find(target) do |f| Find.prune if f =~ self.exceptions next if test ?d, f next if f =~ /(swp|~|rej|orig)$/ # temporary/patch files next if f =~ /\/\.?#/ # Emacs autosave/cvs merge files filename = f.sub(/^\.\//, '''') result[filename] = File.stat(filename).mtime rescue next order << filename end self.find_order.push(*order.sort) end return result # this should return as a hash but is received as an array end ## # Find the files which have been modified, update the recorded # timestamps, and use this to update the files to test. Returns true # if any file is newer than the previously recorded most recent # file. def find_files_to_test(files=find_files) # for some reason files comes in as a array needs to be hash #myfiles = {} #files.each do |key, value| #myfiles[key] = value #end #files = myfiles updated = files.select { |filename, mtime| self.last_mtime < mtime } p updated if $v unless updated.empty? or self.last_mtime.to_i == 0 updated.map { |f,m| test_files_for(f) }.flatten.uniq.each do |filename| self.files_to_test[filename] # creates key with default value end if updated.empty? then nil else files.values.max <= line 394 end end For some reason the files is an array instead of a hash. I added the little change that is commented out and it works. But that should not have to be done. Any ideas? -- View this message in context: http://www.nabble.com/autotest-failing-on-startup-tp18246365p18246365.html Sent from the rspec-users mailing list archive at Nabble.com.
On Jul 3, 2008, at 3:08 AM, Don French wrote:> I have been using autotest/zentest 3.5.0 with my rails 2.0.2 and > rspec. I > upgraded my gems and got 3.9.3 and had a problem. I went back to > 3.5.0 and > it worked. I stayed there until moving to rails 2.1. I again updated > my gems > and got 3.10. This one had the same problem. This time I need to > figure out > what is wrong. Here is what I get: > > /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:394:in > `find_files_to_test'': undefined method `values'' for #<Array:0x18b2530> > (NoMethodError) > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: > 239:in > `run_tests'' > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: > 228:in > `get_to_green'' > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: > 208:in > `run'' > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: > 206:in > `loop'' > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: > 206:in > `run'' > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: > 136:in > `run'' > from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/bin/autotest:55 > from /usr/bin/autotest:19:in `load'' > from /usr/bin/autotest:19This is all autotest so I don''t think it''s related to rspec. That said, what version of rspec are you using?> Here is the failing code: > > def find_files > result = {} > targets = self.find_directories + self.extra_files > self.find_order.clear > > targets.each do |target| > order = [] > Find.find(target) do |f| > Find.prune if f =~ self.exceptions > > next if test ?d, f > next if f =~ /(swp|~|rej|orig)$/ # temporary/patch files > next if f =~ /\/\.?#/ # Emacs autosave/cvs merge > files > > filename = f.sub(/^\.\//, '''') > > result[filename] = File.stat(filename).mtime rescue next > order << filename > end > self.find_order.push(*order.sort) > end > return result # this should return as a hash but is received as an > array > end > > ## > # Find the files which have been modified, update the recorded > # timestamps, and use this to update the files to test. Returns true > # if any file is newer than the previously recorded most recent > # file. > > def find_files_to_test(files=find_files) > # for some reason files comes in as a array needs to be hash > #myfiles = {} > #files.each do |key, value| > #myfiles[key] = value > #end > #files = myfiles > updated = files.select { |filename, mtime| self.last_mtime < > mtime } > > p updated if $v unless updated.empty? or self.last_mtime.to_i == 0 > > updated.map { |f,m| test_files_for(f) }.flatten.uniq.each do | > filename| > self.files_to_test[filename] # creates key with default value > end > > if updated.empty? then > nil > else > files.values.max <= line 394 > end > end > > For some reason the files is an array instead of a hash. I added > the little > change that is commented out and it works. But that should not have > to be > done. > > Any ideas? > > > -- > View this message in context: http://www.nabble.com/autotest-failing-on-startup-tp18246365p18246365.html > Sent from the rspec-users mailing list archive at Nabble.com. > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
Mahalo for the information. I am using version 1.1.4 of rspec. Is there a list somewhere for autotest? Don French David Chelimsky-2 wrote:> > On Jul 3, 2008, at 3:08 AM, Don French wrote: > >> I have been using autotest/zentest 3.5.0 with my rails 2.0.2 and >> rspec. I >> upgraded my gems and got 3.9.3 and had a problem. I went back to >> 3.5.0 and >> it worked. I stayed there until moving to rails 2.1. I again updated >> my gems >> and got 3.10. This one had the same problem. This time I need to >> figure out >> what is wrong. Here is what I get: >> >> /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:394:in >> `find_files_to_test'': undefined method `values'' for #<Array:0x18b2530> >> (NoMethodError) >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >> 239:in >> `run_tests'' >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >> 228:in >> `get_to_green'' >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >> 208:in >> `run'' >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >> 206:in >> `loop'' >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >> 206:in >> `run'' >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >> 136:in >> `run'' >> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/bin/autotest:55 >> from /usr/bin/autotest:19:in `load'' >> from /usr/bin/autotest:19 > > This is all autotest so I don''t think it''s related to rspec. That > said, what version of rspec are you using? > >> Here is the failing code: >> >> def find_files >> result = {} >> targets = self.find_directories + self.extra_files >> self.find_order.clear >> >> targets.each do |target| >> order = [] >> Find.find(target) do |f| >> Find.prune if f =~ self.exceptions >> >> next if test ?d, f >> next if f =~ /(swp|~|rej|orig)$/ # temporary/patch files >> next if f =~ /\/\.?#/ # Emacs autosave/cvs merge >> files >> >> filename = f.sub(/^\.\//, '''') >> >> result[filename] = File.stat(filename).mtime rescue next >> order << filename >> end >> self.find_order.push(*order.sort) >> end >> return result # this should return as a hash but is received as an >> array >> end >> >> ## >> # Find the files which have been modified, update the recorded >> # timestamps, and use this to update the files to test. Returns true >> # if any file is newer than the previously recorded most recent >> # file. >> >> def find_files_to_test(files=find_files) >> # for some reason files comes in as a array needs to be hash >> #myfiles = {} >> #files.each do |key, value| >> #myfiles[key] = value >> #end >> #files = myfiles >> updated = files.select { |filename, mtime| self.last_mtime < >> mtime } >> >> p updated if $v unless updated.empty? or self.last_mtime.to_i == 0 >> >> updated.map { |f,m| test_files_for(f) }.flatten.uniq.each do | >> filename| >> self.files_to_test[filename] # creates key with default value >> end >> >> if updated.empty? then >> nil >> else >> files.values.max <= line 394 >> end >> end >> >> For some reason the files is an array instead of a hash. I added >> the little >> change that is commented out and it works. But that should not have >> to be >> done. >> >> Any ideas? >> >> >> -- >> View this message in context: >> http://www.nabble.com/autotest-failing-on-startup-tp18246365p18246365.html >> Sent from the rspec-users mailing list archive at Nabble.com. >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > >-- View this message in context: http://www.nabble.com/autotest-failing-on-startup-tp18246365p18265467.html Sent from the rspec-users mailing list archive at Nabble.com.
On Jul 3, 2008, at 1:19 PM, Don French wrote:> Mahalo for the information. I am using version 1.1.4 of rspec. > > Is there a list somewhere for autotest?No list that I know of, but there''s a tracker: http://rubyforge.org/projects/zentest> > > Don French > > David Chelimsky-2 wrote: >> >> On Jul 3, 2008, at 3:08 AM, Don French wrote: >> >>> I have been using autotest/zentest 3.5.0 with my rails 2.0.2 and >>> rspec. I >>> upgraded my gems and got 3.9.3 and had a problem. I went back to >>> 3.5.0 and >>> it worked. I stayed there until moving to rails 2.1. I again updated >>> my gems >>> and got 3.10. This one had the same problem. This time I need to >>> figure out >>> what is wrong. Here is what I get: >>> >>> /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:394:in >>> `find_files_to_test'': undefined method `values'' for #<Array: >>> 0x18b2530> >>> (NoMethodError) >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >>> 239:in >>> `run_tests'' >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >>> 228:in >>> `get_to_green'' >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >>> 208:in >>> `run'' >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >>> 206:in >>> `loop'' >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >>> 206:in >>> `run'' >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb: >>> 136:in >>> `run'' >>> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/bin/autotest:55 >>> from /usr/bin/autotest:19:in `load'' >>> from /usr/bin/autotest:19 >> >> This is all autotest so I don''t think it''s related to rspec. That >> said, what version of rspec are you using? >> >>> Here is the failing code: >>> >>> def find_files >>> result = {} >>> targets = self.find_directories + self.extra_files >>> self.find_order.clear >>> >>> targets.each do |target| >>> order = [] >>> Find.find(target) do |f| >>> Find.prune if f =~ self.exceptions >>> >>> next if test ?d, f >>> next if f =~ /(swp|~|rej|orig)$/ # temporary/patch files >>> next if f =~ /\/\.?#/ # Emacs autosave/cvs merge >>> files >>> >>> filename = f.sub(/^\.\//, '''') >>> >>> result[filename] = File.stat(filename).mtime rescue next >>> order << filename >>> end >>> self.find_order.push(*order.sort) >>> end >>> return result # this should return as a hash but is received as >>> an >>> array >>> end >>> >>> ## >>> # Find the files which have been modified, update the recorded >>> # timestamps, and use this to update the files to test. Returns true >>> # if any file is newer than the previously recorded most recent >>> # file. >>> >>> def find_files_to_test(files=find_files) >>> # for some reason files comes in as a array needs to be hash >>> #myfiles = {} >>> #files.each do |key, value| >>> #myfiles[key] = value >>> #end >>> #files = myfiles >>> updated = files.select { |filename, mtime| self.last_mtime < >>> mtime } >>> >>> p updated if $v unless updated.empty? or self.last_mtime.to_i == 0 >>> >>> updated.map { |f,m| test_files_for(f) }.flatten.uniq.each do | >>> filename| >>> self.files_to_test[filename] # creates key with default value >>> end >>> >>> if updated.empty? then >>> nil >>> else >>> files.values.max <= line 394 >>> end >>> end >>> >>> For some reason the files is an array instead of a hash. I added >>> the little >>> change that is commented out and it works. But that should not have >>> to be >>> done. >>> >>> Any ideas? >>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/autotest-failing-on-startup-tp18246365p18246365.html >>> Sent from the rspec-users mailing list archive at Nabble.com. >>> >>> _______________________________________________ >>> rspec-users mailing list >>> rspec-users at rubyforge.org >>> http://rubyforge.org/mailman/listinfo/rspec-users >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> >> > > -- > View this message in context: http://www.nabble.com/autotest-failing-on-startup-tp18246365p18265467.html > Sent from the rspec-users mailing list archive at Nabble.com. > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users