dshelf 0.2.5 → 0.2.7

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/lib/dshelf/dfile.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'rest_client'
2
+ # require 'httpclient'
2
3
  require 'mime/types'
3
4
 
4
5
  class DistributedFile
@@ -71,6 +72,15 @@ class DistributedFile
71
72
  end
72
73
 
73
74
  def read length=0, offset=0
75
+ # if RUBY_VERSION >= '1.8.7' then
76
+ # # stream
77
+ # Stream.new "#{server_url}/storage#{URI.escape absolutepath}"
78
+ # else
79
+ # read_full length, offset
80
+ # end
81
+ # end
82
+ #
83
+ # def read_full length=0, offset=0
74
84
  params = {}
75
85
  params[:length] = length unless length == 0
76
86
  params[:offset] = offset unless offset == 0
@@ -79,17 +89,29 @@ class DistributedFile
79
89
  case response.code
80
90
  when 200
81
91
  response
92
+ when 402
93
+ raise Errno::ENOSPC
82
94
  when 404
83
95
  raise Errno::ENOENT
84
- end
96
+ end
85
97
  end
86
98
  end
87
99
 
100
+ def puts *args
101
+ write args.join("\n")
102
+ end
103
+
88
104
  def write string
89
- RestClient.put "#{server_url}/storage#{URI.escape absolutepath}", string, :content_type => mimetype
90
- string.size
105
+ RestClient.put "#{server_url}/storage#{URI.escape absolutepath}", string, :content_type => mimetype do |response, request, result|
106
+ case response.code
107
+ when 204
108
+ string.size
109
+ when 402
110
+ raise Errno::ENOSPC
111
+ end
112
+ end
91
113
  end
92
-
114
+
93
115
  # File.open(filename, mode="r" [, opt]) => file
94
116
  # File.open(filename [, mode [, perm]] [, opt]) => file
95
117
  # File.open(filename, mode="r" [, opt]) {|file| block } => obj
@@ -104,8 +126,22 @@ class DistributedFile
104
126
  f
105
127
  end
106
128
  end
107
-
129
+
108
130
  def method_missing method
109
131
  raise "Distributed File error: #{method} not implemented"
110
132
  end
111
133
  end
134
+
135
+ # class Stream
136
+ # def initialize path
137
+ # @path = path
138
+ # end
139
+ #
140
+ # def each
141
+ # HTTPClient.get_content(@path) do |chunk|
142
+ # p "chunk rcv: #{chunk.size}"
143
+ # yield chunk
144
+ # p "chunk rcv rt: #{chunk.size}"
145
+ # end
146
+ # end
147
+ # end
data/lib/dshelf/dir.rb CHANGED
@@ -56,6 +56,8 @@ class Dir
56
56
  case response.code
57
57
  when 204
58
58
  0
59
+ when 402
60
+ raise Errno::ENOSPC
59
61
  when 409
60
62
  raise Errno::EEXIST
61
63
  end
data/lib/dshelf/file.rb CHANGED
@@ -33,6 +33,8 @@ class File
33
33
  case response.code
34
34
  when 200
35
35
  args.size
36
+ when 402
37
+ raise Errno::ENOSPC
36
38
  when 404
37
39
  raise Errno::ENOENT
38
40
  end
@@ -47,6 +49,8 @@ class File
47
49
  case response.code
48
50
  when 200
49
51
  0
52
+ when 402
53
+ raise Errno::ENOSPC
50
54
  when 404
51
55
  raise Errno::ENOENT
52
56
  end
@@ -60,6 +64,8 @@ class File
60
64
  case response.code
61
65
  when 200
62
66
  0
67
+ when 402
68
+ raise Errno::ENOSPC
63
69
  when 404
64
70
  raise Errno::ENOENT
65
71
  end
data/lib/dshelf.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module DistributedShelf
2
- VERSION = '0.2.5'
2
+ VERSION = '0.2.7'
3
3
 
4
4
  @@config = {}
5
5
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 5
9
- version: 0.2.5
8
+ - 7
9
+ version: 0.2.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Phil Pirozhkov
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-31 00:00:00 +04:00
17
+ date: 2010-11-08 00:00:00 +03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency