bindata-contrib 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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