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.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/filbunke.gemspec +25 -26
- data/lib/filbunke/client.rb +35 -16
- 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.
|
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
|
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.
|
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{
|
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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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.
|
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::
|
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"])
|
data/lib/filbunke/client.rb
CHANGED
@@ -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
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
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
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
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
|
-
-
|
8
|
-
-
|
9
|
-
version: 1.
|
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:
|
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
|
-
|
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.
|
143
|
+
rubygems_version: 1.3.7
|
130
144
|
signing_key:
|
131
145
|
specification_version: 3
|
132
146
|
summary: Filbunke client
|