Sha256: 632ea4408c92b9a8be12126e5782495b6ae58d4b93fe0507c20352641676d53f

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

module Stars
  class Client

    def self.load!(new_username=nil)
      remember_username(new_username) if new_username
      @recent = Stars::Favstar.new.recent(username)
      display
    end
    
    def self.display
      system 'clear'
      puts "\n ★  by @#{username}"
      puts Stars::Formatter.new(@recent)
      select_star
    end

    def self.input
      STDIN.gets
    end
  
    def self.username
      File.exists?(config_path) ? File.read(config_path) : prompt_for_username
    end
  
    def self.prompt_for_username
      puts ""
      puts ""
      puts " ★ stars"
      puts ""
      puts "Type your Twitter username:"
      remember_username(self.input.chomp)
    end
  
    def self.remember_username(username)
      File.open(config_path, 'w') {|f| f.write(username) }
      username
    end
  
    def self.config_path
      File.join(ENV['HOME'], '.stars')
    end
    
    def self.select_star
      selection = ''
      while true
        puts "Type the number of the toot that you want to learn about"
        print "  (or hit return to view all again, you ego-maniac)   >> "
        selection = self.input.chomp
        break if ['','q','quit','exit','fuckthis'].include?(selection.downcase)
        show_selection(selection)
      end
      display if selection == ''
    end
    
    def self.show_selection(id)
      puts ''
      puts wrap_text('  ' + @recent[id.to_i - 1]['title'], 60)
      puts parse_who(@recent[id.to_i - 1]['guid'])
      puts ''
    end
    
    def self.parse_who(url)
      Stars::Favstar.new.show(url)
    end
    
    def self.wrap_text(txt, col = 80)
      txt.gsub(/(.{1,#{col}})( +|$\n?)|(.{1,#{col}})/,
        "\\1\\3\n    ") 
    end
  
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stars-0.3.0 lib/stars/client.rb