ruby-net-nntp 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,4 +1,24 @@
1
- 2007-07-14 12:22 +0200 Anton 'tony' Bangratz <anton.bangratz@gmail.com> (5de9968582e9 [tip])
1
+ 2007-08-22 17:00 +0200 Anton 'tony' Bangratz <anton.bangratz@gmail.com> (1eb71d8b00b4 [tip])
2
+
3
+ * lib/net/nntp.rb, lib/net/nntp/version.rb,
4
+ test/functional/test_nntp.rb:
5
+ added newnews command, response_timeout (used only in xover at the
6
+ moment)
7
+
8
+ * added newnews command
9
+ * added response_timeout variable
10
+ * patched xover to use response_timeout variable instead of static
11
+ value
12
+
13
+ 2007-08-03 17:56 +0200 Anton 'tony' Bangratz <anton.bangratz@gmail.com> (e54f52f53711)
14
+
15
+ * lib/net/nntp.rb, lib/net/nntp/article.rb, lib/net/nntp/version.rb:
16
+ fixed encoding and header parsing bugs
17
+ * lib/net/nntp.rb: fixed encoding ('..') of lines on
18
+ fetching
19
+ * lib/net/nntp/article.rb: fixed header parsing regexp
20
+
21
+ 2007-07-14 12:22 +0200 Anton 'tony' Bangratz <anton.bangratz@gmail.com> (5de9968582e9)
2
22
 
3
23
  * README, lib/net/nntp.rb, lib/net/nntp/article.rb,
4
24
  lib/net/nntp/group.rb, lib/net/nntp/version.rb,
@@ -29,7 +29,8 @@ module Net
29
29
  end
30
30
 
31
31
 
32
- attr_reader :socket, :grouplist, :overview_format
32
+ attr_reader :socket, :grouplist, :overview_format
33
+ attr_accessor :response_timeout
33
34
 
34
35
  def self.logger=(logger)
35
36
  @@logger = logger
@@ -46,10 +47,11 @@ module Net
46
47
  @@logger.debug(message)
47
48
  end
48
49
 
49
- # initializes NNTP class with host and port
50
- def initialize(host, port = 119)
50
+ # initializes NNTP class with host, port and timeout values
51
+ def initialize(host, port = 119, response_timeout = 10)
51
52
  @host = host
52
53
  @port = port
54
+ @response_timeout = response_timeout
53
55
  @socket_class = TCPSocket
54
56
  @group = nil
55
57
  @@logger ||= Log4r::Logger['net::nntp'] || Log4r::Logger.new('net::nntp')
@@ -169,12 +171,26 @@ module Net
169
171
  cmd = [prefix, suffix].join ' '
170
172
  send_cmd(cmd)
171
173
  response = nil
172
- timeout(10) do
174
+ timeout(@response_timeout) do
173
175
  response = read_response()
174
176
  end
175
177
  response
176
178
  end
177
179
 
180
+ def newnews(groups='*', date=nil, time=nil, gmt=true)
181
+ gmt_str = gmt ? '"GMT"' : ""
182
+ debug groups
183
+ debug date
184
+ debug time
185
+ debug gmt_str
186
+ cmd = 'newnews %s %s %s %s' % [groups, date, time, gmt_str]
187
+ debug "Sending #{cmd}"
188
+ send_cmd(cmd)
189
+ response = nil
190
+ response = read_response
191
+ response
192
+ end
193
+
178
194
  # Issues 'LISTGROUP' command to NNTP Server, and returns raw response. Checks if group has been selected, selects group
179
195
  # otherwise.
180
196
  #
@@ -342,6 +358,7 @@ module Net
342
358
  loop do
343
359
  str = @socket.readline
344
360
  #debug " -> got line: '#{str}'"
361
+ str = str[1..-1] if str && str[0..1] == '..'
345
362
  ra << str.chomp if str
346
363
  break if force_oneline || (!str || str.chomp == "." || (linecnt == 0 && ONELINE_STATUSES.include?(str[0..2])) )
347
364
  linecnt += 1
@@ -134,7 +134,7 @@ module Net
134
134
  # (Example: "Message-ID: <abc@def.gh>" will become @headers.message_id with the
135
135
  # value '<abc@def.gh>'.
136
136
  def set_header(line)
137
- name, value = line.scan(/^(.*)?: (.*)$/).flatten
137
+ name, value = line.scan(/^(.*?): (.*)$/).flatten
138
138
  key = name.strip.gsub(/[^\w]/, '_').downcase
139
139
  @headers.add_pair(key, value)
140
140
  @headers
@@ -1,5 +1,5 @@
1
1
  module Net
2
2
  class NNTP
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -22,12 +22,16 @@ module TestNet
22
22
  def test_new
23
23
  host = 'localhost'
24
24
  port = '119'
25
+ timeout = 14
25
26
  assert_nothing_raised do
26
27
  @nntp = Net::NNTP.new(host)
27
28
  end
28
29
  assert_nothing_raised do
29
30
  nntp_new(host, port)
30
31
  end
32
+ assert_nothing_raised do
33
+ @nntp = Net::NNTP.new(host, port, timeout)
34
+ end
31
35
  end
32
36
 
33
37
  def test_connect
@@ -36,6 +40,12 @@ module TestNet
36
40
  end
37
41
  end
38
42
 
43
+ def test_response_timeout
44
+ assert_equal 10, @nntp.response_timeout
45
+ @nntp.response_timeout = 11
46
+ assert_equal 11, @nntp.response_timeout
47
+ end
48
+
39
49
  def test_help
40
50
  help = @nntp.help.join
41
51
  assert_equal '100', help[0..2]
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: ruby-net-nntp
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2007-07-14 00:00:00 +02:00
6
+ version: 0.2.0
7
+ date: 2007-08-22 00:00:00 +02:00
8
8
  summary: Net::XXX style NNTP Library for easy access.
9
9
  require_paths:
10
10
  - lib
@@ -31,8 +31,8 @@ authors:
31
31
  files:
32
32
  - lib/net
33
33
  - lib/net/nntp
34
- - lib/net/nntp/article.rb
35
34
  - lib/net/nntp/group.rb
35
+ - lib/net/nntp/article.rb
36
36
  - lib/net/nntp/version.rb
37
37
  - lib/net/nntp.rb
38
38
  - test/functional
@@ -42,7 +42,6 @@ files:
42
42
  - test/unit
43
43
  - test/unit/test_nntp_article.rb
44
44
  - test/unit/test_nntp_group.rb
45
- - test/logs
46
45
  - README
47
46
  - CHANGELOG
48
47
  - MIT-LICENSE
@@ -54,7 +53,6 @@ test_files:
54
53
  - test/unit
55
54
  - test/unit/test_nntp_article.rb
56
55
  - test/unit/test_nntp_group.rb
57
- - test/logs
58
56
  rdoc_options:
59
57
  - -S
60
58
  - -N