On Sep 6, 7:29 pm, "Simon Schuster" <significa... / gmail.com> wrote: > I know this could be more idiomatic to ruby. > > it's basically to turnhttp://www.gutenberg.org/etext/18362into an > array. the "_no_extras" refers to me having snipped the intro and > outro of the text outside of ruby. I still have to do something with > the "SECTION" fields and the "A", "B", etc. fields. (not to mention > some kind of linguistic parsing which would make f[rand(f.size)] + " " > f[rand(f.size)] + " " .... link together in a coherent matter, but > that's a little beyond me. any direction in this area would be kindly > appreciated though! I'm thinking of separating it into different text > files maybe. certain sections are almost whole sentences, they're > grouped in all kinds of ways that will maybe help with this. no > long-term goal, really, just learning ruby and having fun. :) > > anyhow, the sloppy newbie code is as follows: > > f = File.read("phrases_no_extra.txt") > f = f.to_a > f = f.each { |x| x.chop! } > f.each_with_index { |x,y| # deletes the empty array items > if x.size == 0 > f.delete_at(y) > end > } > f.each_with_index { |x,y| # deleting all but the last (which is > spread of two lines) > if x.include? "]" # of his comments > f.delete_at(y) > end > } > f.each_with_index { |x,y| # yes, this is me unable to recall > how to do "or" hahaha. > if x.include? "[" > f.delete_at(y) > end > } > f.delete_at(-1) # random whitespace item at the end from the last quote > > puts f[rand(f.size)] a = IO.read("phrases_no_extra.txt"). split( /[\r?\n]+/ ). reject{|s| # Reject if length is less than 2 or if it contains # a [ or if it's composed entirely of upper case # letters and spaces. s.size < 2 or s.index "[" or s =~ /^[A-Z ]+$/ } puts a[ rand( a.size ) ]