bencode_ext 0.2.6 → 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9f32eeeba8927735a02485ab9e5aa48c5e0a21bb
4
+ data.tar.gz: e0b222847806e5910fb5f2ddccab8e7a94b5bd3e
5
+ SHA512:
6
+ metadata.gz: 3fcc9d6aa80abaffd6faa25b2b6d1c933b003772356bb67c277ec2d81a2ce0b591268d232f1efa6674dd3f0b510b60a3bb9c65cb7bdb602947dc8df962a97df7
7
+ data.tar.gz: e937334c85dbf723d3f7feed8793d5469bb987b73a6795c0e22fd844aa2c0c020409e6e48bb296b80d9133966d0969e904865c5c49ff692c64e9414c3ec18a36
data/.document CHANGED
@@ -1,5 +1,6 @@
1
1
  lib/**/*.rb
2
2
  bin/*
3
+ ext/bencode_ext/*.c
3
4
  -
4
5
  features/**/*.feature
5
6
  LICENSE.txt
data/Rakefile CHANGED
@@ -1,22 +1,17 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
- require 'jeweler'
5
- Jeweler::Tasks.new do |gem|
6
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
7
- gem.name = 'bencode_ext'
8
- gem.homepage = 'http://github.com/naquad/bencode_ext'
9
- gem.license = 'MIT'
10
- gem.summary = %Q{BitTorrent encoding parser/writer}
11
- gem.description = %Q{BEncodeExt is implementation of Bencode reader/writer (BitTorent encoding) in C.}
12
- gem.email = 'naquad@gmail.com'
13
- gem.authors = ['naquad']
14
- gem.required_ruby_version = '~>1.9.2'
15
- gem.add_development_dependency 'rake-compiler', '~>0.7.5'
16
- gem.add_development_dependency 'jeweler', '~> 1.5.2'
4
+ NAME = 'bencode_ext'
5
+
6
+ desc 'Build gem'
7
+ task :build do
8
+ Dir.chdir("ext/bencode_ext") do
9
+ ruby 'extconf.rb'
10
+ sh 'make'
11
+ end
12
+
13
+ cp 'ext/bencode_ext/bencode_ext.so', 'lib/bencode_ext.so'
17
14
  end
18
- Jeweler::RubygemsDotOrgTasks.new
19
- Jeweler::GemcutterTasks.new
20
15
 
21
16
  require 'rake/testtask'
22
17
  Rake::TestTask.new(:test) do |test|
@@ -27,7 +22,7 @@ end
27
22
 
28
23
  task :default => :test
29
24
 
30
- require 'rake/rdoctask'
25
+ require 'rdoc/task'
31
26
  Rake::RDocTask.new do |rdoc|
32
27
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
33
28
 
@@ -36,7 +31,3 @@ Rake::RDocTask.new do |rdoc|
36
31
  rdoc.rdoc_files.include('README*')
37
32
  rdoc.rdoc_files.include('ext/**/*.c')
38
33
  end
39
-
40
-
41
- require 'rake/extensiontask'
42
- Rake::ExtensionTask.new('bencode_ext')
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bencode_ext}
8
- s.version = "0.2.6"
8
+ s.version = "0.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["naquad"]
12
- s.date = %q{2011-01-22}
12
+ s.date = %q{2013-05-11}
13
13
  s.description = %q{BEncodeExt is implementation of Bencode reader/writer (BitTorent encoding) in C.}
14
14
  s.email = %q{naquad@gmail.com}
15
15
  s.extensions = ["ext/bencode_ext/extconf.rb"]
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
33
33
  s.homepage = %q{http://github.com/naquad/bencode_ext}
34
34
  s.licenses = ["MIT"]
35
35
  s.require_paths = ["lib"]
36
- s.required_ruby_version = Gem::Requirement.new("~> 1.9.2")
36
+ s.required_ruby_version = Gem::Requirement.new("> 1.9.1")
37
37
  s.rubygems_version = %q{1.3.7}
38
38
  s.summary = %q{BitTorrent encoding parser/writer}
39
39
  s.test_files = [
@@ -44,17 +44,6 @@ Gem::Specification.new do |s|
44
44
  if s.respond_to? :specification_version then
45
45
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
46
  s.specification_version = 3
47
-
48
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
- s.add_development_dependency(%q<rake-compiler>, ["~> 0.7.5"])
50
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
51
- else
52
- s.add_dependency(%q<rake-compiler>, ["~> 0.7.5"])
53
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
54
- end
55
- else
56
- s.add_dependency(%q<rake-compiler>, ["~> 0.7.5"])
57
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
58
47
  end
59
48
  end
60
49
 
@@ -26,6 +26,9 @@
26
26
  static long parse_num(char** str, long* len){
27
27
  long t = 1, ret = 0;
28
28
 
29
+ if(!*len)
30
+ return 0;
31
+
29
32
  if(**str == '-'){
30
33
  t = -1;
31
34
  ++*str;
@@ -110,7 +113,6 @@ static VALUE decode(VALUE self, VALUE encoded){
110
113
 
111
114
  if(len && *str != ':')
112
115
  rb_raise(DecodeError, "Invalid string length specification at %d: %c", rlen - len, *str);
113
-
114
116
  if(!len || len < slen + 1)
115
117
  rb_raise(DecodeError, "Unexpected string end!");
116
118
 
@@ -221,19 +223,25 @@ static VALUE decode_file(VALUE self, VALUE path){
221
223
  */
222
224
 
223
225
  static VALUE encode(VALUE self){
224
- if(TYPE(self) == T_SYMBOL){
226
+ if(TYPE(self) == T_SYMBOL)
225
227
  return encode(rb_id2str(SYM2ID(self)));
226
- }if(rb_obj_is_kind_of(self, rb_cString)){
228
+
229
+ if(rb_obj_is_kind_of(self, rb_cString)){
227
230
  long len = RSTRING_LEN(self);
228
231
  return rb_sprintf("%ld:%.*s", len, len, RSTRING_PTR(self));
229
- }else if(rb_obj_is_kind_of(self, rb_cInteger)){
232
+ }
233
+
234
+ if(rb_obj_is_kind_of(self, rb_cInteger))
230
235
  return rb_sprintf("i%lde", NUM2LONG(self));
231
- }else if(rb_obj_is_kind_of(self, rb_cHash)){
236
+
237
+ if(rb_obj_is_kind_of(self, rb_cHash)){
232
238
  VALUE ret = rb_str_new2("d");
233
239
  rb_hash_foreach(self, hash_traverse, ret);
234
240
  rb_str_cat2(ret, "e");
235
241
  return ret;
236
- }else if(rb_obj_is_kind_of(self, rb_cArray)){
242
+ }
243
+
244
+ if(rb_obj_is_kind_of(self, rb_cArray)){
237
245
  long i, c;
238
246
  VALUE *ptr, ret = rb_str_new2("l");
239
247
 
@@ -242,8 +250,9 @@ static VALUE encode(VALUE self){
242
250
 
243
251
  rb_str_cat2(ret, "e");
244
252
  return ret;
245
- }else
246
- rb_raise(EncodeError, "Don't know how to encode %s!", rb_class2name(CLASS_OF(self)));
253
+ }
254
+
255
+ rb_raise(EncodeError, "Don't know how to encode %s!", rb_class2name(CLASS_OF(self)));
247
256
  }
248
257
 
249
258
  static int hash_traverse(VALUE key, VALUE val, VALUE str){
metadata CHANGED
@@ -1,62 +1,25 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bencode_ext
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 2
8
- - 6
9
- version: 0.2.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.7
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - naquad
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2011-01-22 00:00:00 +02:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rake-compiler
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 7
31
- - 5
32
- version: 0.7.5
33
- type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: jeweler
37
- prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 1
45
- - 5
46
- - 2
47
- version: 1.5.2
48
- type: :development
49
- version_requirements: *id002
50
- description: BEncodeExt is implementation of Bencode reader/writer (BitTorent encoding) in C.
11
+ date: 2013-05-11 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: BEncodeExt is implementation of Bencode reader/writer (BitTorent encoding)
14
+ in C.
51
15
  email: naquad@gmail.com
52
16
  executables: []
53
-
54
- extensions:
17
+ extensions:
55
18
  - ext/bencode_ext/extconf.rb
56
- extra_rdoc_files:
19
+ extra_rdoc_files:
57
20
  - LICENSE.txt
58
21
  - README.rdoc
59
- files:
22
+ files:
60
23
  - .document
61
24
  - LICENSE.txt
62
25
  - README.rdoc
@@ -68,40 +31,30 @@ files:
68
31
  - ext/bencode_ext/extconf.rb
69
32
  - test/helper.rb
70
33
  - test/test_bencode_ext.rb
71
- has_rdoc: true
72
34
  homepage: http://github.com/naquad/bencode_ext
73
- licenses:
35
+ licenses:
74
36
  - MIT
37
+ metadata: {}
75
38
  post_install_message:
76
39
  rdoc_options: []
77
-
78
- require_paths:
40
+ require_paths:
79
41
  - lib
80
- required_ruby_version: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- segments:
86
- - 1
87
- - 9
88
- - 2
89
- version: 1.9.2
90
- required_rubygems_version: !ruby/object:Gem::Requirement
91
- none: false
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- segments:
96
- - 0
97
- version: "0"
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - '>'
45
+ - !ruby/object:Gem::Version
46
+ version: 1.9.1
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
98
52
  requirements: []
99
-
100
53
  rubyforge_project:
101
- rubygems_version: 1.3.7
54
+ rubygems_version: 2.0.0
102
55
  signing_key:
103
56
  specification_version: 3
104
57
  summary: BitTorrent encoding parser/writer
105
- test_files:
58
+ test_files:
106
59
  - test/helper.rb
107
60
  - test/test_bencode_ext.rb