lib/hackpad/cli/client.rb in hackpad-cli-0.0.6 vs lib/hackpad/cli/client.rb in hackpad-cli-0.0.7
- old
+ new
@@ -9,11 +9,12 @@
module Hackpad
module Cli
class Client
- def initialize(options)
+ def initialize(options, output=STDOUT)
+ @output = output
@options = options
Store.prepare @options
@config = Config.load @options
Api.prepare @config
if @options[:plain]
@@ -23,56 +24,72 @@
# GET /api/1.0/pads/all
def search(term,start=0)
payload = Api.search(term,start)
payload.each do |a|
- puts "#{(@config['site'] + '/') if @options['urls']}#{a['id'].bold} - #{unescape(a['title']).yellow}"
- puts " #{extract a['snippet']}"
+ @output.puts "#{(@config['site'] + '/') if @options[:urls]}#{a['id'].bold} - #{unescape(a['title']).yellow}"
+ @output.puts " #{extract a['snippet']}"
end
end
def list
- padlist = Padlist.new @options['refresh']
- puts padlist.all.map { |pad|
- "#{(@config['site'] + '/') if @options['urls']}#{pad.id} - #{pad.title}"
+ @output.puts Padlist.get_list(@options['refresh']).map { |pad|
+ padline pad
}
end
+ def check
+ @output.puts "New pads:"
+ padlist = Padlist.check_list.map
+ if padlist.count == 0
+ @output.puts "There is no new pad."
+ else
+ @output.puts padlist.map { |pad|
+ padline pad
+ }
+ end
+ end
+
def info(id)
pad = Pad.new id
pad.load 'txt'
table "Id", "#{id}".bold
table "Title", "#{pad.title}".yellow
table "URI", "#{@config['site']}/#{id}"
table "Chars", "#{pad.chars}"
table "Lines", "#{pad.lines}"
table "Guest Policy", "#{pad.guest_policy}"
table "Moderated", "#{pad.moderated}"
+ table "Cached", "#{pad.cached_at || 'unknown'}"
end
def show(id,format)
ext = (format == 'md') ? 'html' : format
pad = Pad.new id
pad.load ext
if format == 'md'
- puts ReverseMarkdown.convert(pad.content, github_flavored: true)
+ @output.puts ReverseMarkdown.convert(pad.content, github_flavored: true)
else
- puts pad.content
+ @output.puts pad.content
end
end
private
+ def padline(pad)
+ "#{(@config['site'] + '/') if @options[:urls]}#{pad.id} - #{pad.title}"
+ end
+
def unescape(s)
CGI.unescapeHTML s
end
def extract(s)
unescape(s).gsub(/<b class="hit">([^<]*)<\/b>/) { |e| $1.cyan.bold }
end
def table(key,value)
- printf "%-20s %s\n", key, value
+ @output.printf "%-20s %s\n", key, value
end
end
end
end