class Trellor::WebTrellor
Public Instance Methods
archive_card(board_name, list_name, name)
click to toggle source
# File lib/web_trellor.rb, line 76 def archive_card(board_name, list_name, name) data = {archive: true, board_name: board_name, list_name: list_name, card_name: name} JSON.parse(post_http('/boards', data).body) end
board_names()
click to toggle source
trellor interface queries ###############
# File lib/web_trellor.rb, line 57 def board_names verbose_log('getting boards') unless @boards @boards = JSON.parse(get_http('/boards').body) end
card_names(board_name, list_name)
click to toggle source
# File lib/web_trellor.rb, line 66 def card_names(board_name, list_name) body = get_http("/boards", {board_name: board_name, list_name: list_name}).body JSON.parse(body) end
create_card(board_name, list_name, name, descript=nil)
click to toggle source
# File lib/web_trellor.rb, line 71 def create_card(board_name, list_name, name, descript=nil) data = {board_name: board_name, list_name: list_name, card_name: name, descript: descript} JSON.parse(post_http('/boards', data).body) end
ensure_webapp_is_running(fork=true)
click to toggle source
# File lib/web_trellor.rb, line 15 def ensure_webapp_is_running(fork=true) v = get_version $stderr.puts "Warning: this version is #{VERSION} but the webapp version is #{v}. You may want to kill the older webapp." unless (!v or (v==VERSION)) fail unless v rescue puts "The background webapp wasn't running. Will run it now." verbose_log "The background webapp wasn't running. Will run it now." run_webapp(fork) end
get_version()
click to toggle source
# File lib/web_trellor.rb, line 47 def get_version response = get_http('/version', nil, nil, false) response.body rescue nil end
list_names(board_name)
click to toggle source
# File lib/web_trellor.rb, line 62 def list_names(board_name) JSON.parse(get_http("/boards", {board_name: board_name}).body) end
run_webapp(fork)
click to toggle source
# File lib/web_trellor.rb, line 25 def run_webapp(fork) path = Pathname.new(__FILE__).parent.parent cmd = "cd '#{path}' && ruby lib/webapi.rb &> /dev/null" verbose_log cmd unless fork $stderr.puts 'running ...' exec cmd exit 0 end job = fork do exec cmd end # give webapp time to run before returning (1..30).each do |n| verbose_log '.' sleep 0.1 ver = get_version return if ver and ver!='' end Process.detach(job) end
Private Instance Methods
default_open_timeout()
click to toggle source
# File lib/web_trellor.rb, line 121 def default_open_timeout @default_open_timeout ||= (ENV['TRELLOR_OPEN_TIMEOUT'] || 1).to_i end
default_read_timeout()
click to toggle source
# File lib/web_trellor.rb, line 125 def default_read_timeout @default_read_timeout = (ENV['TRELLOR_READ_TIMEOUT'] || 30).to_i end
get_http(url, data=nil, timeout=nil, show_error=true)
click to toggle source
private ################
# File lib/web_trellor.rb, line 86 def get_http(url, data=nil, timeout=nil, show_error=true) uri = Addressable::URI.parse("#{site}#{url}") verbose_log('get_http', uri, data) http = Net::HTTP.new uri.host, uri.port http.open_timeout = default_open_timeout http.read_timeout = timeout || default_read_timeout request = Net::HTTP::Get.new(uri.request_uri) # request.basic_auth 'trellor', password if password request.set_form_data data if data response = http.request(request) verbose_log response.code, response.body response rescue Exception => e $stderr.puts "ERROR in get_http(#{url})" if show_error raise e end
port()
click to toggle source
# File lib/web_trellor.rb, line 132 def port 4567 end
post_http(url, data, timeout=nil, show_error=true)
click to toggle source
# File lib/web_trellor.rb, line 103 def post_http(url, data, timeout=nil, show_error=true) uri = URI("#{site}#{url}") verbose_log('post_http', uri, data) http = Net::HTTP.new uri.host, uri.port http.open_timeout = default_open_timeout http.read_timeout = timeout || default_read_timeout request = Net::HTTP::Post.new(uri.request_uri) # request.basic_auth 'trellor', password if password request.set_form_data data response = http.request(request) verbose_log response.code, response.body response rescue Exception => e $stderr.puts "ERROR in post_http(#{url})" if show_error raise e end
site()
click to toggle source
# File lib/web_trellor.rb, line 129 def site "http://localhost:#{port}" end
verbose_log(*args)
click to toggle source
# File lib/web_trellor.rb, line 136 def verbose_log(*args) Trellor.logger.debug(" ****** #{args.inspect}") end