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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/bitstuff.rb +32 -0
  3. 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: []