filbunke 1.7.3 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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