filbunke 1.7.3 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/Rakefile +1 -1
  2. data/VERSION +1 -1
  3. data/filbunke.gemspec +25 -26
  4. data/lib/filbunke/client.rb +35 -16
  5. metadata +21 -7
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ begin
9
9
  gem.description = %Q{Filbunke client and library}
10
10
  gem.email = "wouter@deltaprojects.se"
11
11
  gem.homepage = "http://github.com/deltaprojects/filbunke"
12
- gem.authors = ["Wouter de Bie"]
12
+ gem.authors = ["Wouter de Bie", "Björn Sperber"]
13
13
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
14
14
  gem.files.exclude 'pkg'
15
15
  gem.executables = ['filbunked']
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.3
1
+ 1.8.0
data/filbunke.gemspec CHANGED
@@ -1,52 +1,51 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{filbunke}
8
- s.version = "1.7.3"
8
+ s.version = "1.8.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Wouter de Bie"]
12
- s.date = %q{2011-03-16}
11
+ s.authors = ["Wouter de Bie", "Bj\303\266rn Sperber"]
12
+ s.date = %q{2012-05-15}
13
13
  s.default_executable = %q{filbunked}
14
14
  s.description = %q{Filbunke client and library}
15
15
  s.email = %q{wouter@deltaprojects.se}
16
16
  s.executables = ["filbunked"]
17
17
  s.files = [
18
18
  "LICENSE",
19
- "README.rdoc",
20
- "Rakefile",
21
- "VERSION",
22
- "bin/.gitignore",
23
- "bin/filbunked",
24
- "doc/examples/filbunke_config.yml",
25
- "doc/examples/http_evict_cache.rb",
26
- "doc/examples/http_file_upload.rb",
27
- "doc/examples/init_script",
28
- "filbunke.gemspec",
29
- "lib/filbunke.rb",
30
- "lib/filbunke/callbacks.rb",
31
- "lib/filbunke/client.rb",
32
- "lib/filbunke/daemon.rb",
33
- "lib/filbunke/file.rb",
34
- "lib/filbunke/logger.rb",
35
- "lib/filbunke/repository.rb",
36
- "test/helper.rb",
37
- "test/test_filbunke.rb"
19
+ "README.rdoc",
20
+ "Rakefile",
21
+ "VERSION",
22
+ "bin/.gitignore",
23
+ "bin/filbunked",
24
+ "doc/examples/filbunke_config.yml",
25
+ "doc/examples/http_evict_cache.rb",
26
+ "doc/examples/http_file_upload.rb",
27
+ "doc/examples/init_script",
28
+ "filbunke.gemspec",
29
+ "lib/filbunke.rb",
30
+ "lib/filbunke/callbacks.rb",
31
+ "lib/filbunke/client.rb",
32
+ "lib/filbunke/daemon.rb",
33
+ "lib/filbunke/file.rb",
34
+ "lib/filbunke/logger.rb",
35
+ "lib/filbunke/repository.rb",
36
+ "test/helper.rb",
37
+ "test/test_filbunke.rb"
38
38
  ]
39
39
  s.homepage = %q{http://github.com/deltaprojects/filbunke}
40
- s.rdoc_options = ["--charset=UTF-8"]
41
40
  s.require_paths = ["lib"]
42
- s.rubygems_version = %q{1.3.6}
41
+ s.rubygems_version = %q{1.3.7}
43
42
  s.summary = %q{Filbunke client}
44
43
 
45
44
  if s.respond_to? :specification_version then
46
45
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
47
46
  s.specification_version = 3
48
47
 
49
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
49
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
51
50
  s.add_runtime_dependency(%q<json>, [">= 1.1.7"])
52
51
  s.add_runtime_dependency(%q<typhoeus>, [">= 0.2.0"])
@@ -12,10 +12,11 @@ module Filbunke
12
12
  HASH_KEY = 'hash'
13
13
 
14
14
 
15
- def initialize(repository, logger, callbacks = [])
15
+ def initialize(repository, logger, callbacks = [], failed_request_log_file_name = nil)
16
16
  @repository = repository
17
17
  @logger = logger
18
18
  @callbacks = callbacks
19
+ @failed_request_log_file_name = failed_request_log_file_name
19
20
  end
20
21
 
21
22
  def with_updated_files(last_checkpoint)
@@ -66,27 +67,37 @@ module Filbunke
66
67
  end
67
68
 
68
69
  def register_updated_file!(path, url, hash = nil)
69
- register_http = Net::HTTP.new(@repository.host, @repository.port)
70
- register_http.start do |http|
71
- register_path = "/#{FILES_ACTION}/#{@repository.name}/#{path}?#{URL_KEY}=#{url}"
72
- register_path += "&#{HASH_KEY}=#{hash}" if hash
73
- request = Net::HTTP::Put.new(register_path)
74
- response = http.request(request)
75
- if response.code.to_i != 204
76
- raise "Failed to register updated file: #{path}"
70
+ register_path = "/#{FILES_ACTION}/#{@repository.name}/#{path}?#{URL_KEY}=#{url}"
71
+ register_path += "&#{HASH_KEY}=#{hash}" if hash
72
+ begin
73
+ register_http = Net::HTTP.new(@repository.host, @repository.port)
74
+ register_http.start do |http|
75
+ request = Net::HTTP::Put.new(register_path)
76
+ response = http.request(request)
77
+ if response.code.to_i != 204
78
+ raise "Failed to register updated file: #{path}"
79
+ end
77
80
  end
81
+ rescue Exception => e
82
+ log_failed_request(%Q{curl -XPUT "http://#{@repository.host}:#{@repository.port}#{register_path}"}, e)
83
+ raise e
78
84
  end
79
85
  end
80
86
 
81
87
  def register_deleted_file!(path)
82
- register_http = Net::HTTP.new(@repository.host, @repository.port)
83
- register_http.start do |http|
84
- register_path = "/#{FILES_ACTION}/#{@repository.name}/#{path}"
85
- request = Net::HTTP::Delete.new(register_path)
86
- response = http.request(request)
87
- if response.code.to_i != 204
88
- raise "Failed to register deleted file: #{path}"
88
+ register_path = "/#{FILES_ACTION}/#{@repository.name}/#{path}"
89
+ begin
90
+ register_http = Net::HTTP.new(@repository.host, @repository.port)
91
+ register_http.start do |http|
92
+ request = Net::HTTP::Delete.new(register_path)
93
+ response = http.request(request)
94
+ if response.code.to_i != 204
95
+ raise "Failed to register deleted file: #{path}"
96
+ end
89
97
  end
98
+ rescue Exception => e
99
+ log_failed_request(%Q{curl -XDELETE "http://#{@repository.host}:#{@repository.port}#{register_path}"}, e)
100
+ raise e
90
101
  end
91
102
  end
92
103
 
@@ -117,6 +128,14 @@ module Filbunke
117
128
 
118
129
  private
119
130
 
131
+ def log_failed_request(failed_request_command, e)
132
+ return unless @failed_request_log_file_name
133
+ ::File.open(@failed_request_log_file_name, 'a+') do |f|
134
+ f.puts("# #{Time.now}: #{e.message if e}")
135
+ f.puts(failed_request_command)
136
+ end
137
+ end
138
+
120
139
  def update_file!(file, local_file_path)
121
140
 
122
141
  if file.url =~ /^http:\/\//
metadata CHANGED
@@ -1,29 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filbunke
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 55
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
- - 7
8
- - 3
9
- version: 1.7.3
8
+ - 8
9
+ - 0
10
+ version: 1.8.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Wouter de Bie
14
+ - "Bj\xC3\xB6rn Sperber"
13
15
  autorequire:
14
16
  bindir: bin
15
17
  cert_chain: []
16
18
 
17
- date: 2011-03-16 00:00:00 +01:00
19
+ date: 2012-05-15 00:00:00 +02:00
18
20
  default_executable: filbunked
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
21
23
  name: thoughtbot-shoulda
22
24
  prerelease: false
23
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
30
+ hash: 3
27
31
  segments:
28
32
  - 0
29
33
  version: "0"
@@ -33,9 +37,11 @@ dependencies:
33
37
  name: json
34
38
  prerelease: false
35
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
36
41
  requirements:
37
42
  - - ">="
38
43
  - !ruby/object:Gem::Version
44
+ hash: 29
39
45
  segments:
40
46
  - 1
41
47
  - 1
@@ -47,9 +53,11 @@ dependencies:
47
53
  name: typhoeus
48
54
  prerelease: false
49
55
  requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
50
57
  requirements:
51
58
  - - ">="
52
59
  - !ruby/object:Gem::Version
60
+ hash: 23
53
61
  segments:
54
62
  - 0
55
63
  - 2
@@ -61,9 +69,11 @@ dependencies:
61
69
  name: open4
62
70
  prerelease: false
63
71
  requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
64
73
  requirements:
65
74
  - - ">="
66
75
  - !ruby/object:Gem::Version
76
+ hash: 21
67
77
  segments:
68
78
  - 1
69
79
  - 0
@@ -105,28 +115,32 @@ homepage: http://github.com/deltaprojects/filbunke
105
115
  licenses: []
106
116
 
107
117
  post_install_message:
108
- rdoc_options:
109
- - --charset=UTF-8
118
+ rdoc_options: []
119
+
110
120
  require_paths:
111
121
  - lib
112
122
  required_ruby_version: !ruby/object:Gem::Requirement
123
+ none: false
113
124
  requirements:
114
125
  - - ">="
115
126
  - !ruby/object:Gem::Version
127
+ hash: 3
116
128
  segments:
117
129
  - 0
118
130
  version: "0"
119
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
+ none: false
120
133
  requirements:
121
134
  - - ">="
122
135
  - !ruby/object:Gem::Version
136
+ hash: 3
123
137
  segments:
124
138
  - 0
125
139
  version: "0"
126
140
  requirements: []
127
141
 
128
142
  rubyforge_project:
129
- rubygems_version: 1.3.6
143
+ rubygems_version: 1.3.7
130
144
  signing_key:
131
145
  specification_version: 3
132
146
  summary: Filbunke client