filezor 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.2
1
+ 1.3.3
data/filezor.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{filezor}
8
- s.version = "1.3.2"
8
+ s.version = "1.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kyle Maxwell"]
12
- s.date = %q{2010-09-06}
12
+ s.date = %q{2010-09-07}
13
13
  s.default_executable = %q{filezor}
14
14
  s.description = %q{pure ruby file sync}
15
15
  s.email = %q{kyle@kylemaxwell.com}
@@ -11,9 +11,17 @@ class Filezor::Client
11
11
 
12
12
  attr_reader :options
13
13
 
14
+ def self.last_exception
15
+ @e
16
+ end
17
+
18
+ def self.last_exception=(e)
19
+ @e = e
20
+ end
21
+
14
22
  def initialize(host, port, password, options = {})
15
23
  @root = "http://admin:#{password}@#{host}:#{port}"
16
- @options ||= options
24
+ @options ||= stringify_keys(options)
17
25
  @options.update JSON.parse(post("info", options.to_json, "/"))
18
26
  end
19
27
 
@@ -89,11 +97,17 @@ private
89
97
  def _get(*args)
90
98
  puts args.inspect if ENV["FILEZOR_DEBUG"]
91
99
  RestClient.get(*args)
100
+ rescue => e
101
+ self.class.last_exception = e
102
+ raise
92
103
  end
93
104
 
94
105
  def _post(*args)
95
106
  puts args.inspect if ENV["FILEZOR_DEBUG"]
96
107
  RestClient.post(*args)
108
+ rescue => e
109
+ self.class.last_exception = e
110
+ raise
97
111
  end
98
112
 
99
113
  def test(*files)
@@ -103,4 +117,8 @@ private
103
117
  end
104
118
  end
105
119
  end
120
+
121
+ def stringify_keys(hash)
122
+ hash.inject({}) {|memo, (k, v)| memo.update k.to_s => v }
123
+ end
106
124
  end
@@ -3,6 +3,7 @@ require "cgi"
3
3
  require "fileutils"
4
4
  require "json"
5
5
  require "filezor/util"
6
+ require "logger"
6
7
  class Filezor::Server < Sinatra::Base
7
8
  class BadRequest < RuntimeError; end
8
9
  include FileUtils
@@ -19,6 +20,8 @@ class Filezor::Server < Sinatra::Base
19
20
  authenticate(username, password)
20
21
  end
21
22
 
23
+ logger = Logger.new(STDERR)
24
+
22
25
  use Rack::CommonLogger
23
26
 
24
27
  get INFO do
@@ -37,6 +40,7 @@ class Filezor::Server < Sinatra::Base
37
40
  if File.file?(path)
38
41
  File.read(path)
39
42
  else
43
+ logger.info "Not found: #{path}"
40
44
  404
41
45
  end
42
46
  end
@@ -89,7 +93,9 @@ class Filezor::Server < Sinatra::Base
89
93
  end
90
94
  end
91
95
  "ok"
92
- rescue BadRequest
96
+ rescue BadRequest => e
97
+ logger.error e.message
98
+ logger.error e.backtrace.join("\n")
93
99
  400
94
100
  end
95
101
  end
@@ -41,8 +41,8 @@ describe Filezor::Client do
41
41
  it "should send the md5, not the file" do
42
42
  @file = Filezor::File.new(fixture_file("a.txt"), "b.txt")
43
43
  @client.should_receive(:cached).and_return(["11e561e2cfcd0ac2b4bb0089a665b031"])
44
- @client.should_receive(:post).with("", {"--delete" => "x", "x/b.txt" => "11e561e2cfcd0ac2b4bb0089a665b031" })
45
- @client.sync("x", @file)
44
+ @client.should_receive(:post).with("", {"--root" => "x", "b.txt" => "11e561e2cfcd0ac2b4bb0089a665b031" })
45
+ @client.sync(@file, :root => "x")
46
46
  end
47
47
  end
48
48
  end
@@ -76,7 +76,7 @@ describe Filezor::Client do
76
76
  @unwanted = "#{@root}/a/b/gone.txt"
77
77
  File.open(@unwanted, "w"){|f| f.puts "hi" }
78
78
  file = Filezor::File.new(fixture_file("a.txt"), "c.txt")
79
- @client.sync("a/b", file)
79
+ @client.sync(file, :root => "a/b", :delete => "*")
80
80
  end
81
81
 
82
82
  it "should upload the files" do
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 3
8
- - 2
9
- version: 1.3.2
8
+ - 3
9
+ version: 1.3.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kyle Maxwell
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-06 00:00:00 -07:00
17
+ date: 2010-09-07 00:00:00 -07:00
18
18
  default_executable: filezor
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency