filbunke 1.1.15 → 1.2.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 CHANGED
@@ -12,7 +12,8 @@ begin
12
12
  gem.authors = ["Wouter de Bie"]
13
13
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
14
14
  gem.files.exclude 'pkg'
15
- gem.executables = ['filbunked']
15
+ gem.executables = ['filbunked']
16
+ gem.add_dependency 'json', '>= 1.1.7'
16
17
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
18
  end
18
19
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.15
1
+ 1.2.0
data/filbunke.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{filbunke}
8
- s.version = "1.1.15"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wouter de Bie"]
12
- s.date = %q{2010-11-16}
12
+ s.date = %q{2010-11-17}
13
13
  s.default_executable = %q{filbunked}
14
14
  s.description = %q{Filbunke client and library}
15
15
  s.email = %q{wouter@deltaprojects.se}
@@ -47,11 +47,14 @@ Gem::Specification.new do |s|
47
47
 
48
48
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
49
49
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
50
+ s.add_runtime_dependency(%q<json>, [">= 1.1.7"])
50
51
  else
51
52
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
53
+ s.add_dependency(%q<json>, [">= 1.1.7"])
52
54
  end
53
55
  else
54
56
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
57
+ s.add_dependency(%q<json>, [">= 1.1.7"])
55
58
  end
56
59
  end
57
60
 
@@ -1,8 +1,3 @@
1
- require 'json'
2
- require 'net/http'
3
- require 'fileutils'
4
- require 'digest/md5'
5
-
6
1
  module Filbunke
7
2
  class Client
8
3
 
@@ -10,10 +5,13 @@ module Filbunke
10
5
 
11
6
  UPDATES_ACTION = 'updates'
12
7
  FILES_ACTION = 'files'
8
+ LAST_CHECKPOINT_ACTION = 'last_checkpoint'
9
+ TOUCH_ACTION = 'touch'
13
10
  URL_KEY = 'url'
14
11
  FROM_CHECKPOINT_KEY = 'from_checkpoint'
15
12
  HASH_KEY = 'hash'
16
13
 
14
+
17
15
  def initialize(repository, logger, callbacks = [])
18
16
  @repository = repository
19
17
  @logger = logger
@@ -83,6 +81,31 @@ module Filbunke
83
81
  end
84
82
  end
85
83
 
84
+ def touch_repository!
85
+ touch_http = Net::HTTP.new(@repository.host, @repository.port)
86
+ touch_http.start do |http|
87
+ touch_path = "/#{UPDATES_ACTION}/#{@repository.name}/#{TOUCH_ACTION}"
88
+ request = Net::HTTP::Put.new(touch_path)
89
+ response = http.request(request)
90
+ if response.code.to_i != 204
91
+ raise "Failed to touch repository: #{@repository.name}"
92
+ end
93
+ end
94
+ end
95
+
96
+ def last_checkpoint
97
+ last_checkpoint_http = Net::HTTP.new(@repository.host, @repository.port)
98
+ last_checkpoint_http.start do |http|
99
+ last_checkpoint_path = "/#{UPDATES_ACTION}/#{@repository.name}/#{LAST_CHECKPOINT_ACTION}"
100
+ request = Net::HTTP::Get.new(last_checkpoint_path)
101
+ response = http.request(request)
102
+ if response.code.to_i != 200
103
+ raise "Failed to get last checkpoint for repository: #{@repository.name}"
104
+ end
105
+ return response.body.chomp.to_i
106
+ end
107
+ end
108
+
86
109
  private
87
110
 
88
111
  def file_needs_update?(file, local_file_path)
data/lib/filbunke.rb CHANGED
@@ -1,3 +1,9 @@
1
+ require 'rubygems'
2
+ require 'json'
3
+ require 'net/http'
4
+ require 'fileutils'
5
+ require 'digest/md5'
6
+
1
7
  require 'filbunke/client.rb'
2
8
  require 'filbunke/file.rb'
3
9
  require 'filbunke/repository.rb'
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
- - 1
8
- - 15
9
- version: 1.1.15
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Wouter de Bie
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-11-16 00:00:00 +01:00
17
+ date: 2010-11-17 00:00:00 +01:00
18
18
  default_executable: filbunked
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -29,6 +29,20 @@ dependencies:
29
29
  version: "0"
30
30
  type: :development
31
31
  version_requirements: *id001
32
+ - !ruby/object:Gem::Dependency
33
+ name: json
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ segments:
40
+ - 1
41
+ - 1
42
+ - 7
43
+ version: 1.1.7
44
+ type: :runtime
45
+ version_requirements: *id002
32
46
  description: Filbunke client and library
33
47
  email: wouter@deltaprojects.se
34
48
  executables: