Sha256: a9f1d029105b945ad7196707a8a8e6c8cae75751104d061a24145694bf17a678
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
class Wc attr_reader :filename, :occurrences, :words attr_accessor :hide_list def initialize(filename, words, hide_list) puts filename if ! filename.nil? @filename = filename @hide_list = hide_list @occurrences = read else @filename = STDIN @hide_list = hide_list @occurrences = feed end @sorted = Array(occurrences).sort { |one, two| -(one[1] <=> two[1]) } @words = words end def to_text if @words == -1 @sorted.each { |elem| puts "\"#{elem[0]}\" has #{elem[1]} occurrences" } else @sorted[0..@words-1].each { |elem| puts "\"#{elem[0]}\" has #{elem[1]} occurrences" } end end def to_json if @words == -1 return @sorted.to_json else return @sorted[0..@words-1].to_json end end def to_cloud if @words == -1 cloud_items = @sorted else cloud_item = @sorted[0..@words-1] end ret = "<dl>" i=1 cloud_item.each { |elem| ret+="<dt id=\"a"+i.to_s+"\">" + elem[0] +"</dt>" i+=1 } ret += "</dl>" ret end private def read() occurrences = Hash.new { |h, k| h[k] = 0 } File.open(@filename, "r") { |f| f.each_line { |line| words = line.split words.each { |w| if ! hide_list.include?(w.downcase) occurrences[w.downcase] += 1 end } } } occurrences end def feed() occurrences = Hash.new { |h, k| h[k] = 0 } filename.each_line { |line| words = line.split words.each { |w| if ! hide_list.include?(w.downcase) occurrences[w.downcase] += 1 end } } occurrences end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wc-0.94.0 | lib/wc.rb |