lib/rewritten/server.rb in rewritten-0.1.0 vs lib/rewritten/server.rb in rewritten-0.2.0

- old
+ new

@@ -76,10 +76,15 @@ when 'zset' Resque.redis.zrange(key, start, start + 20) end end + def extract_translations + text = params[:translations] or "" + text.split("\n").map(&:strip).reject(&:empty?) + end + def show_args(args) Array(args).map { |a| a.inspect }.join("\n") end def worker_hosts @@ -171,16 +176,45 @@ show 'translations' end get "/new" do + @translations = [] show "new" end + get "/edit" do + @old_to = @to = params[:to] + @translations = Rewritten.get_all_translations(@to) + show "edit" + end + + post "/edit" do + + @old_to = params[:old].strip + @to = params[:to].strip + @translations = extract_translations + + if @to != '' and @translations.size > 0 + + # delete old translations + Rewritten.remove_all_translations(@old_to) + # create new translations + Rewritten.add_translations(@to, @translations) + + redirect u("/to?to=#{escape(@to)}") + else + show "edit" + end + + end + post "/translations" do - if params[:from]!='' && params[:to]!='' - Rewritten.add_translation(params[:from], params[:to]) + @to = params[:to].strip + @translations = extract_translations + if @to != '' && @translations.size > 0 + Rewritten.add_translations(@to, @translations) redirect u('translations') else show "new" end end @@ -188,29 +222,43 @@ get "/to" do translations = Rewritten.list_range(params[:to], 0, -1) show "to" end + get "/cleanup" do + # find keys that have no target + @from_without_tos= [] + Rewritten.redis.lrange("froms", 0, -1).each do |from| + if Rewritten.redis.get("from:#{from}").empty? + @from_without_tos << from + end + end + + show "cleanup" + end + get "/delete" do @from = params[:from] @to = params[:to] show "delete" end post '/delete' do - from = params[:from] to = params[:to] - Rewritten.remove_translation(from, to) + redirect u("/") + end - if Rewritten.num_translations(to) > 0 - redirect u("/to?to=#{escape(to)}") - else - redirect u("/") - end + get "/delete_all" do + @to = params[:to] + show "delete_all" + end + post "/delete_all" do + Rewritten.remove_all_translations(params[:to]) + redirect u("/") end get "/hits" do show "hits" end @@ -223,13 +271,12 @@ Rewritten.redis.del("hits") redirect u("/hits") end def self.tabs - #@tabs ||= ["Overview", "Working", "Failed", "Queues", "Workers", "Stats"] @tabs ||= ["Translations", "Hits"] end - + end end