bindata-contrib 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8111cafa2643f375230de41d2ac0cb8b16a51edb
4
- data.tar.gz: 5d3074e4e7d7e8f4be201fc397e540536c5a67f7
3
+ metadata.gz: 8ffa7d572716ebd2fdb76833b6c35a338da122e7
4
+ data.tar.gz: cccd0027c6c9edc49244bd34337619542e9e4c35
5
5
  SHA512:
6
- metadata.gz: 22989e7b66b48366cb71a28d67d66d6e5a235a1b94d78f564784796714d61eba8268d09eb65d0090d59c6edac83a7b0bb77def5a692b9bed3a54e8ba5914eb21
7
- data.tar.gz: d6459f2762c7cc0c06b1225f4af6604d203e8c486b1444dc232c0f392cf4c89f5ce56fffc32e2e022a81f2863759099abd55f69bd4391a336244db45f7a01e25
6
+ metadata.gz: 490f62be5c3d49db8a77475bf81d9a6bcc0cd8435a3033af68e2e97ab3606dcb6c695d7c60961def6c2e66df0b81efd1af468bfe433d5251e794f585e786b397
7
+ data.tar.gz: a34ab5f2a69f2494a31c0c5011a1a86951503ddbdeed63426791d80eba08a7ab250ed24b1b705b052d4a5ae63a364143b7f83d46c9178fc3b35355bac663641e
@@ -0,0 +1,5 @@
1
+ module BinData
2
+ module Contrib
3
+ VERSION = '0.1.1'
4
+ end
5
+ end
data/lib/bool.rb CHANGED
@@ -8,6 +8,6 @@ class Bool < BinData::Primitive
8
8
  end
9
9
 
10
10
  def set(value)
11
- self.bool == value ? 1 : 0
11
+ self.bool = value ? 1 : 0
12
12
  end
13
13
  end
data/lib/ipv6_address.rb CHANGED
@@ -2,10 +2,10 @@ require 'bindata'
2
2
 
3
3
  class Ipv6Address < BinData::Primitive
4
4
  endian :big
5
- array :octets, type: :uint8, initial_length: 16
5
+ array :octets, type: :uint16, initial_length: 8
6
6
 
7
7
  def get
8
- octets.map { |o| o.to_s(16) }.join(':')
8
+ octets.map { |o| o.to_i.to_s(16) }.join(':')
9
9
  end
10
10
 
11
11
  def set(value)
data/spec/bool_spec.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bool do
4
+ it 'should read binary' do
5
+ bool = Bool.read [0x80].pack('C*')
6
+ expect(bool).to eq(true)
7
+
8
+ bool = Bool.read [0].pack('C*')
9
+ expect(bool).to eq(false)
10
+ end
11
+ it 'should initialize with default values' do
12
+ bool = Bool.new
13
+ expect(bool).to eq(false)
14
+ end
15
+ it 'should initialize with some values' do
16
+ bool = Bool.new(true)
17
+ expect(bool).to eq(true)
18
+ end
19
+ end
data/spec/enum_spec.rb ADDED
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Enum8, Enum16, Enum32' do
4
+ before(:all) do
5
+ class MyClass < BinData::Record
6
+ endian :big
7
+ enum8 :enum8, list: {default: 0, a: 1, b: 2, c: 3}
8
+ enum16 :enum16, list: {default: 0, d: 0x0101, e: 0x0202, f: 0x0303}
9
+ enum32 :enum32, list: {g: 0x01010101, h: 0x02020202, i: 0x03030303}
10
+ end
11
+ end
12
+
13
+ it 'should read binary' do
14
+ cls = MyClass.read [
15
+ 1,
16
+ 2, 2,
17
+ 3, 3, 3, 3
18
+ ].pack('C*')
19
+ expect(cls.enum8).to eq(:a)
20
+ expect(cls.enum16).to eq(:e)
21
+ expect(cls.enum32).to eq(:i)
22
+ end
23
+ it 'should initialize with default values' do
24
+ cls = MyClass.new
25
+ expect(cls.enum8).to eq(:default)
26
+ expect(cls.enum16).to eq(:default)
27
+ expect(cls.enum32).to eq(0)
28
+ end
29
+ it 'should initialize with some values' do
30
+ cls = MyClass.new(
31
+ enum8: :c,
32
+ enum16: :d,
33
+ enum32: :h
34
+ )
35
+ expect(cls.enum8).to eq(:c)
36
+ expect(cls.enum16).to eq(:d)
37
+ expect(cls.enum32).to eq(:h)
38
+ end
39
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Flags8, Flags16, Flags32' do
4
+ before(:all) do
5
+ class MyClass < BinData::Record
6
+ endian :big
7
+ flags8 :flags8, list: [:a, :b, :c]
8
+ flags16 :flags16, list: [:d, :e, :f]
9
+ flags32 :flags32, list: [:g, :h, :i]
10
+ end
11
+ end
12
+
13
+ it 'should read binary' do
14
+ cls = MyClass.read [
15
+ 3,
16
+ 0, 4,
17
+ 0, 0, 0, 7
18
+ ].pack('C*')
19
+ expect(cls.flags8).to eq([:a, :b])
20
+ expect(cls.flags16).to eq([:f])
21
+ expect(cls.flags32).to eq([:g, :h, :i])
22
+ end
23
+ it 'should initialize with default values' do
24
+ cls = MyClass.new
25
+ expect(cls.flags8).to be_empty
26
+ expect(cls.flags16).to be_empty
27
+ expect(cls.flags32).to be_empty
28
+ end
29
+ it 'should initialize with some values' do
30
+ cls = MyClass.new(
31
+ flags8: [:c],
32
+ flags16: [:d, :e]
33
+ )
34
+ expect(cls.flags8).to eq([:c])
35
+ expect(cls.flags16).to eq([:d, :e])
36
+ expect(cls.flags32).to be_empty
37
+ end
38
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ipv4Address do
4
+ it 'should read binary' do
5
+ addr = Ipv4Address.read [127, 0, 0, 1].pack('C*')
6
+ expect(addr).to eq('127.0.0.1')
7
+ end
8
+ it 'should initialize with default values' do
9
+ addr = Ipv4Address.new
10
+ expect(addr).to eq('0.0.0.0')
11
+ end
12
+ it 'should initialize with some values' do
13
+ addr = Ipv4Address.new('192.168.1.2')
14
+ expect(addr).to eq('192.168.1.2')
15
+ end
16
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ipv6Address do
4
+ it 'should read binary' do
5
+ addr = Ipv6Address.read [
6
+ 0x20, 0x01,
7
+ 0x0d, 0xb8,
8
+ 0x85, 0xa3,
9
+ 0, 0,
10
+ 0, 0,
11
+ 0x8a, 0x2e,
12
+ 0x03, 0x70,
13
+ 0x73, 0x34
14
+ ].pack('C*')
15
+ expect(addr).to eq('2001:db8:85a3:0:0:8a2e:370:7334')
16
+ end
17
+ it 'should initialize with default values' do
18
+ addr = Ipv6Address.new
19
+ expect(addr).to eq('0:0:0:0:0:0:0:0')
20
+ end
21
+ it 'should initialize with some values' do
22
+ addr = Ipv6Address.new('2001:db8:85a3:0:0:8a2e:370:7334')
23
+ expect(addr).to eq('2001:db8:85a3:0:0:8a2e:370:7334')
24
+ end
25
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe MacAddress do
4
+ it 'should read binary' do
5
+ addr = MacAddress.read [0x01, 0x23, 0x45, 0x67, 0x89, 0xab].pack('C*')
6
+ expect(addr).to eq('01:23:45:67:89:ab')
7
+ end
8
+ it 'should initialize with default values' do
9
+ addr = MacAddress.new
10
+ expect(addr).to eq('00:00:00:00:00:00')
11
+ end
12
+ it 'should initialize with some values' do
13
+ addr = MacAddress.new('01:23:45:67:89:ab')
14
+ expect(addr).to eq('01:23:45:67:89:ab')
15
+ end
16
+ end
@@ -0,0 +1 @@
1
+ require_relative '../lib/bindata-contrib'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bindata-contrib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jérémy Pagé
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2016-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bindata
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
27
41
  description: Contribution to BinData.
28
42
  email:
29
43
  - contact@jeremypage.me
@@ -32,12 +46,20 @@ extensions: []
32
46
  extra_rdoc_files: []
33
47
  files:
34
48
  - lib/bindata-contrib.rb
49
+ - lib/bindata-contrib/version.rb
35
50
  - lib/bool.rb
36
51
  - lib/enum.rb
37
52
  - lib/flags.rb
38
53
  - lib/ipv4_address.rb
39
54
  - lib/ipv6_address.rb
40
55
  - lib/mac_address.rb
56
+ - spec/bool_spec.rb
57
+ - spec/enum_spec.rb
58
+ - spec/flags_spec.rb
59
+ - spec/ipv4_address_spec.rb
60
+ - spec/ipv6_address_spec.rb
61
+ - spec/mac_address_spec.rb
62
+ - spec/spec_helper.rb
41
63
  homepage: https://github.com/jejepage/bindata-contrib
42
64
  licenses:
43
65
  - MIT
@@ -58,8 +80,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
80
  version: '0'
59
81
  requirements: []
60
82
  rubyforge_project:
61
- rubygems_version: 2.4.8
83
+ rubygems_version: 2.5.1
62
84
  signing_key:
63
85
  specification_version: 4
64
86
  summary: BinData Contrib
65
- test_files: []
87
+ test_files:
88
+ - spec/bool_spec.rb
89
+ - spec/enum_spec.rb
90
+ - spec/flags_spec.rb
91
+ - spec/ipv4_address_spec.rb
92
+ - spec/ipv6_address_spec.rb
93
+ - spec/mac_address_spec.rb
94
+ - spec/spec_helper.rb