binaryparse 1.0.1 → 1.1.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/README.md ADDED
@@ -0,0 +1,7 @@
1
+ History
2
+
3
+ * 1.1.0 Update to be Ruby 1.9.2 compatible
4
+ * Ruby 1.8.x is no longer supported, use v1.0.x
5
+
6
+
7
+
@@ -0,0 +1,26 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "binaryparse"
3
+ s.version = "1.1.0"
4
+ s.author = "Patrick Hurley"
5
+ s.email = "phurley@gmail.com"
6
+ s.homepage = "http://binaryparse.rubyforge.org/"
7
+ s.platform = Gem::Platform::RUBY
8
+ s.summary = "Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx."
9
+ s.description = "Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx. It is similar to ActiveRecord in syntax"
10
+
11
+ files = []
12
+ files << "examples"
13
+ files << "lib"
14
+ files << "test"
15
+ files << "examples/cmasqls.rb"
16
+ files << "examples/readme.txt"
17
+ files << "examples/voter.rb"
18
+ files << "lib/blocker.rb"
19
+ files << "lib/buffered_io.rb"
20
+ files << "test/test_blocker.rb"
21
+ files << "README.md"
22
+ files << "binaryparse.gemspec"
23
+ s.files = files
24
+
25
+ s.has_rdoc = true
26
+ end
data/lib/blocker.rb CHANGED
@@ -6,11 +6,6 @@
6
6
  # (BinaryBlocker::PackedNumberEncoder) and date fields
7
7
  # (BinaryBlocker::PackedDateEncoder)
8
8
 
9
- begin
10
- require 'uconv'
11
- rescue LoadError
12
- end
13
-
14
9
  require 'date'
15
10
  require 'time'
16
11
 
@@ -278,9 +273,9 @@ module BinaryBlocker
278
273
  def include_klasses(klasses, *opts)
279
274
  klasses = klasses.map do |k|
280
275
  case
281
- when @klasses[k] ; lambda { @klasses[k].new(*opts) }
276
+ when @klasses[k] ; lambda { |*foo| @klasses[k].new(*opts) }
282
277
  when k.respond_to?(:call) ; k
283
- when k.respond_to?(:new) ; lambda { k.new(*opts) }
278
+ when k.respond_to?(:new) ; lambda { |*foo| k.new(*opts) }
284
279
  else raise "Unable to process class: #{k}"
285
280
  end
286
281
  end
@@ -523,12 +518,14 @@ module BinaryBlocker
523
518
  end
524
519
 
525
520
  def internal_block(val)
526
- [Uconv.u8tou16(val || "")].pack(@format)
521
+ #[Uconv.u8tou16(val || "")].pack(@format)
522
+ [val.encode("UTF-16LE") || ""].pack(@format)
527
523
  end
528
524
 
529
525
  def internal_deblock(io)
530
526
  buffer = io.read(@length)
531
- Uconv.u16tou8(buffer).sub(/\000+$/,'')
527
+ buffer.force_encoding("UTF-16LE")
528
+ buffer.encode("UTF-8").sub(/\u0000*$/,"")
532
529
  end
533
530
  end
534
531
  BinaryBlocker.register_klass(:utf16_string, FixedUTF16StringEncoder)
data/test/test_blocker.rb CHANGED
@@ -49,7 +49,7 @@ class TestBlocker < Test::Unit::TestCase
49
49
  bb = BBTest2.new
50
50
  bb.bar = 21
51
51
  buf = bb.block
52
- buf[0] = 0
52
+ buf[0] = 0.chr
53
53
 
54
54
  bb2 = BBTest2.new
55
55
  status = bb2.deblock(StringIO.new(buf))
@@ -546,10 +546,10 @@ class TestBlocker < Test::Unit::TestCase
546
546
  bb.items << ia << ib
547
547
 
548
548
  b2 = bb.clone
549
- assert(13, b2.header)
549
+ assert_equal(13, b2.header)
550
550
  b2.header = 21
551
- assert(21, b2.header)
552
- assert(13, bb.header)
551
+ assert_equal(21, b2.header)
552
+ assert_equal(13, bb.header)
553
553
  end
554
554
 
555
555
  class Nested < BinaryBlocker::Blocker
metadata CHANGED
@@ -1,19 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binaryparse
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ prerelease:
5
+ version: 1.1.0
5
6
  platform: ruby
6
7
  authors:
7
8
  - Patrick Hurley
8
- autorequire: binaryparse
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2009-07-21 00:00:00 -04:00
13
+ date: 2011-06-24 00:00:00 -04:00
13
14
  default_executable:
14
15
  dependencies: []
15
16
 
16
- description: Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx.
17
+ description: Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx. It is similar to ActiveRecord in syntax
17
18
  email: phurley@gmail.com
18
19
  executables: []
19
20
 
@@ -28,6 +29,8 @@ files:
28
29
  - lib/blocker.rb
29
30
  - lib/buffered_io.rb
30
31
  - test/test_blocker.rb
32
+ - README.md
33
+ - binaryparse.gemspec
31
34
  has_rdoc: true
32
35
  homepage: http://binaryparse.rubyforge.org/
33
36
  licenses: []
@@ -38,21 +41,21 @@ rdoc_options: []
38
41
  require_paths:
39
42
  - lib
40
43
  required_ruby_version: !ruby/object:Gem::Requirement
44
+ none: false
41
45
  requirements:
42
46
  - - ">="
43
47
  - !ruby/object:Gem::Version
44
48
  version: "0"
45
- version:
46
49
  required_rubygems_version: !ruby/object:Gem::Requirement
50
+ none: false
47
51
  requirements:
48
52
  - - ">="
49
53
  - !ruby/object:Gem::Version
50
54
  version: "0"
51
- version:
52
55
  requirements: []
53
56
 
54
57
  rubyforge_project:
55
- rubygems_version: 1.3.4
58
+ rubygems_version: 1.6.2
56
59
  signing_key:
57
60
  specification_version: 3
58
61
  summary: Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx.