bitstuff 0.0.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 +7 -0
- data/lib/bitstuff.rb +32 -0
- metadata +44 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: d2b3b03dbd560e54d8c10dcdfeb5c519cd4bc7eb
|
|
4
|
+
data.tar.gz: ae72ee1405d2b26efeeb9efb8ece1d035eadd5a5
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: f8af46e0b493e15728f2ea39e6b3bb85ee6b0e8552efac5143932693b0749a9fdd9376699fc3fb5fc552fccdac25e7eda05fe07f40ef595a8d56a04229b91127
|
|
7
|
+
data.tar.gz: fb2be9579b10d633c2f0c7f10340617ebaad8d553f0dcabc2fb13f6267f583a6a6f0b19d669e7bbc070e708301f689087c990c0c9da40a88ab7db704b42ab097
|
data/lib/bitstuff.rb
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
def str_to_str_of_bits(str)
|
|
3
|
+
ar = Array.new()
|
|
4
|
+
i=0;
|
|
5
|
+
str.bytes.map do |character|
|
|
6
|
+
sc = character.to_s(2) #представляем каждый символ в 2чном виде
|
|
7
|
+
while sc.length<8 do
|
|
8
|
+
sc.insert(0,"0") #дополняем "строку пустыми битами"(руби же первые нули байта не выводит)
|
|
9
|
+
end
|
|
10
|
+
ar[i]=sc
|
|
11
|
+
i+=1
|
|
12
|
+
end
|
|
13
|
+
ar.join #объединили все в одну строку
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def str_of_bits_to_str(str)
|
|
17
|
+
res = String.new()
|
|
18
|
+
i=0
|
|
19
|
+
sti = str.scan(/(.{1,8})/)# разбиваем строку на массивы подмассивов состоящих из строк длиной 8 символов
|
|
20
|
+
sti.each do |s|
|
|
21
|
+
res[i] = s.join.to_i(2).chr # переводим строку из двоичного представления числа в символ
|
|
22
|
+
i+=1
|
|
23
|
+
end
|
|
24
|
+
res
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def make_packet(msg)
|
|
28
|
+
temp = str_to_str_of_bits msg #представление строки в 2ичном виде
|
|
29
|
+
bmsg = "~".bytes.join.to_i.to_s(2).gsub(/(111111)/){ $1 + "1" } << temp #битстаффигн + собщение
|
|
30
|
+
msgToSend = str_of_bits_to_str bmsg #превращаем назад в строку
|
|
31
|
+
p msgToSend
|
|
32
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: bitstuff
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- DDKatch
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2015-09-30 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Need for my bitstuffing
|
|
14
|
+
email: daniil.field@yandex.ru
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/bitstuff.rb
|
|
20
|
+
homepage: https://rubygems.org/gems/bitstuff
|
|
21
|
+
licenses:
|
|
22
|
+
- MIT
|
|
23
|
+
metadata: {}
|
|
24
|
+
post_install_message:
|
|
25
|
+
rdoc_options: []
|
|
26
|
+
require_paths:
|
|
27
|
+
- lib
|
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
34
|
+
requirements:
|
|
35
|
+
- - ">="
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
requirements: []
|
|
39
|
+
rubyforge_project:
|
|
40
|
+
rubygems_version: 2.4.8
|
|
41
|
+
signing_key:
|
|
42
|
+
specification_version: 4
|
|
43
|
+
summary: azaza
|
|
44
|
+
test_files: []
|