base32 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,6 +1,6 @@
1
1
  = base32
2
2
 
3
- For Version: 0.1.0
3
+ For Version: 0.1.2
4
4
 
5
5
  This package contains base32, a ruby extension for encoding and decoding
6
6
  in base32 per RFC 3548.
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007 Samuel Tesla
1
+ # Copyright (c) 2007-2009 Samuel Tesla
2
2
 
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -41,7 +41,7 @@ gemspec = Gem::Specification.new do |s|
41
41
  s.require_paths << 'ext'
42
42
  s.requirements << 'none'
43
43
  s.summary = "Ruby extension for base32 encoding and decoding"
44
- s.version = "0.1.1"
44
+ s.version = "0.1.2"
45
45
  end
46
46
 
47
47
  Rake::GemPackageTask.new(gemspec) do |pkg|
@@ -49,7 +49,7 @@ Rake::GemPackageTask.new(gemspec) do |pkg|
49
49
  end
50
50
 
51
51
  namespace :test do
52
- Rake::TestTask.new :all => [:extension] do |t|
52
+ Rake::TestTask.new :all => [:test_extension] do |t|
53
53
  t.libs << 'test'
54
54
  t.libs << 'ext'
55
55
  t.pattern = 'test/**/*_test.rb'
@@ -59,12 +59,19 @@ namespace :test do
59
59
  end
60
60
 
61
61
  task :extension => "ext/base32.bundle"
62
+ task :test_extension do
63
+ sh 'rake TEST=1 ext/base32.bundle'
64
+ end
62
65
 
63
66
  extension_source = FileList["ext/**/*.c", "ext/**/*.h"]
64
67
 
65
68
  file "ext/base32.bundle" => ["ext/Makefile", *extension_source] do
66
69
  cd "ext" do
67
- sh "make"
70
+ if ENV['TEST']
71
+ sh "make cflags=\"-D TEST\""
72
+ else
73
+ sh "make"
74
+ end
68
75
  end
69
76
  end
70
77
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007 Samuel Tesla
1
+ # Copyright (c) 2007-2009 Samuel Tesla
2
2
 
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
data/ext/decoder.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2007 Samuel Tesla
1
+ /* Copyright (c) 2007-2009 Samuel Tesla
2
2
  *
3
3
  * Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  * of this software and associated documentation files (the "Software"), to deal
@@ -53,7 +53,7 @@ base32_decode_buffer_size (const size_t encodedTextLength)
53
53
  {
54
54
  if (encodedTextLength == 0 || encodedTextLength % 8 != 0)
55
55
  return 0;
56
- return encodedTextLength * 8 / 5;
56
+ return encodedTextLength * 5 / 8;
57
57
  }
58
58
 
59
59
  size_t
data/ext/decoder.h CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2007 Samuel Tesla
1
+ /* Copyright (c) 2007-2009 Samuel Tesla
2
2
  *
3
3
  * Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  * of this software and associated documentation files (the "Software"), to deal
data/ext/encoder.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2007 Samuel Tesla
1
+ /* Copyright (c) 2007-2009 Samuel Tesla
2
2
  *
3
3
  * Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  * of this software and associated documentation files (the "Software"), to deal
data/ext/encoder.h CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2007 Samuel Tesla
1
+ /* Copyright (c) 2007-2009 Samuel Tesla
2
2
  *
3
3
  * Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  * of this software and associated documentation files (the "Software"), to deal
data/ext/ext.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2007 Samuel Tesla
1
+ /* Copyright (c) 2007-2009 Samuel Tesla
2
2
  *
3
3
  * Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  * of this software and associated documentation files (the "Software"), to deal
@@ -39,6 +39,9 @@ b32_decode (VALUE self, VALUE value)
39
39
  return value;
40
40
 
41
41
  VALUE result = rb_str_new (0, base32_decode_buffer_size (RSTRING (value)->len));
42
+ #ifdef TEST
43
+ memset(RSTRING (result)->ptr, 0xff, RSTRING (result)->len);
44
+ #endif
42
45
  size_t length = base32_decode ((uint8_t *) RSTRING (result)->ptr, RSTRING (result)->len,
43
46
  (uint8_t *) RSTRING (value)->ptr, RSTRING (value)->len);
44
47
  if (length == 0)
@@ -60,17 +63,36 @@ b32_encode (VALUE self, VALUE value)
60
63
  value = StringValue(value);
61
64
 
62
65
  VALUE result = rb_str_new (0, base32_encoder_buffer_size (RSTRING (value)->len));
66
+ #ifdef TEST
67
+ memset(RSTRING (result)->ptr, 0xff, RSTRING (result)->len);
68
+ #endif
63
69
  base32_encode ((uint8_t *) RSTRING (result)->ptr, RSTRING (result)->len,
64
70
  (uint8_t *) RSTRING (value)->ptr, RSTRING (value)->len);
65
71
 
66
72
  return result;
67
73
  }
68
74
 
75
+ #ifdef TEST
76
+ static VALUE
77
+ b32_test_strlen (VALUE self, VALUE value)
78
+ {
79
+ return UINT2NUM (strlen (RSTRING (value)->ptr));
80
+ }
81
+ #endif
82
+
83
+
69
84
  VALUE mBase32;
85
+ #ifdef TEST
86
+ VALUE mBase32Test;
87
+ #endif
70
88
 
71
89
  void Init_base32 ()
72
90
  {
73
91
  mBase32 = rb_define_module ("Base32");
74
92
  rb_define_module_function(mBase32, "decode", b32_decode, 1);
75
93
  rb_define_module_function(mBase32, "encode", b32_encode, 1);
94
+ #ifdef TEST
95
+ mBase32Test = rb_define_module ("Base32Test");
96
+ rb_define_module_function(mBase32Test, "strlen", b32_test_strlen, 1);
97
+ #endif
76
98
  }
data/ext/extconf.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007 Samuel Tesla
1
+ # Copyright (c) 2007-2009 Samuel Tesla
2
2
 
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
data/test/base32_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007 Samuel Tesla
1
+ # Copyright (c) 2007-2009 Samuel Tesla
2
2
 
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -23,11 +23,15 @@ require 'base32'
23
23
 
24
24
  class TestBase32 < Test::Unit::TestCase
25
25
  def assert_decoding(encoded, plain)
26
- assert_equal(plain, Base32.decode(encoded))
26
+ decoded = Base32.decode(encoded)
27
+ assert_equal(plain, decoded)
28
+ assert_equal(decoded.size, Base32Test.strlen(decoded))
27
29
  end
28
30
 
29
31
  def assert_encoding(encoded, plain)
30
- assert_equal(encoded, Base32.encode(plain))
32
+ actual = Base32.encode(plain)
33
+ assert_equal(encoded, actual)
34
+ assert_equal(actual.size, Base32Test.strlen(actual))
31
35
  end
32
36
 
33
37
  def assert_encode_and_decode(encoded, plain)
metadata CHANGED
@@ -1,34 +1,26 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: base32
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.1.1
7
- date: 2007-06-29 00:00:00 -05:00
8
- summary: Ruby extension for base32 encoding and decoding
9
- require_paths:
10
- - lib
11
- - ext
12
- email: samuel@thoughtlocker.net
13
- homepage: http://base32.rubyforge.org
14
- rubyforge_project:
15
- description:
16
- autorequire:
17
- default_executable:
18
- bindir: bin
19
- has_rdoc: true
20
- required_ruby_version: !ruby/object:Gem::Version::Requirement
21
- requirements:
22
- - - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
25
- version:
4
+ version: 0.1.2
26
5
  platform: ruby
27
- signing_key:
28
- cert_chain:
29
- post_install_message:
30
6
  authors:
31
7
  - Samuel Tesla
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-06 00:00:00 -06:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: samuel@thoughtlocker.net
18
+ executables: []
19
+
20
+ extensions:
21
+ - ext/extconf.rb
22
+ extra_rdoc_files:
23
+ - README
32
24
  files:
33
25
  - Rakefile
34
26
  - config/environment.rb
@@ -40,17 +32,34 @@ files:
40
32
  - ext/encoder.h
41
33
  - ext/extconf.rb
42
34
  - README
43
- test_files: []
35
+ has_rdoc: true
36
+ homepage: http://base32.rubyforge.org
37
+ licenses: []
44
38
 
39
+ post_install_message:
45
40
  rdoc_options: []
46
41
 
47
- extra_rdoc_files:
48
- - README
49
- executables: []
50
-
51
- extensions:
52
- - ext/extconf.rb
42
+ require_paths:
43
+ - lib
44
+ - ext
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
53
57
  requirements:
54
58
  - none
55
- dependencies: []
59
+ rubyforge_project:
60
+ rubygems_version: 1.3.5
61
+ signing_key:
62
+ specification_version: 3
63
+ summary: Ruby extension for base32 encoding and decoding
64
+ test_files: []
56
65