bindot2braillegraph 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,49 @@
1
+
2
+ class BinDot2BrailleGraph
3
+ LEFT_SHIFT_TABLE = {
4
+ 0b00000001 => 7,
5
+ 0b00000010 => 4,
6
+ 0b00000100 => 1,
7
+ 0b00001000 => 3,
8
+ 0b00010000 => 0,
9
+ 0b00100000 => -3,
10
+ 0b01000000 => -5,
11
+ 0b10000000 => -7
12
+ }
13
+ num = 0
14
+ @@num_to_braille_graph = {}
15
+ (0..0xF).each do |upper|
16
+ (0..0xF).each do |lower|
17
+ code = (0..7).inject(0) { |code_in_loop, bit_digit|
18
+ mask = 1 << bit_digit
19
+ code_in_loop |= (num & mask) << LEFT_SHIFT_TABLE[mask]
20
+ }
21
+ @@num_to_braille_graph[code] = [(0x2800 + upper * 0x10 + lower)].pack('U*')
22
+ num += 1
23
+ end
24
+ end
25
+
26
+ def self.convert(width, height, binary)
27
+ if width % 2 != 0 || height % 4 != 0
28
+ nil
29
+ else
30
+ table = []
31
+ vertical_char_num = height / 4
32
+ horizontal_char_num = width / 2
33
+ (0..(vertical_char_num - 1)).each do |v_pos|
34
+ row = []
35
+ (0..(horizontal_char_num - 1)).each do |h_pos|
36
+ braille_binary =
37
+ binary.slice((v_pos * 4 ) * width + h_pos * 2, 2) +
38
+ binary.slice((v_pos * 4 + 1) * width + h_pos * 2, 2) +
39
+ binary.slice((v_pos * 4 + 2) * width + h_pos * 2, 2) +
40
+ binary.slice((v_pos * 4 + 3) * width + h_pos * 2, 2)
41
+ row << @@num_to_braille_graph[braille_binary.to_i(2)]
42
+ end
43
+ table << row
44
+ end
45
+ table
46
+ end
47
+ end
48
+ end
49
+
@@ -0,0 +1,3 @@
1
+ class BinDot2BrailleGraph
2
+ VERSION = "0.0.4"
3
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bindot2braillegraph
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Code Ass
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-07-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ description: Binary data 01001011 to braille graph ⣌
56
+ email:
57
+ - aycabta@gmail.com
58
+ executables:
59
+ - text2braillegraph
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".travis.yml"
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - bin/setup
70
+ - bindot2braillegraph.gemspec
71
+ - exe/text2braillegraph
72
+ - fontdata/kanji.yml
73
+ - fontdata/misaki.yml
74
+ - lib/bindot2braillegraph.rb
75
+ - lib/bindot2braillegraph/version.rb
76
+ homepage: https://github.com/aycabta/bindot2braillegraph
77
+ licenses:
78
+ - MIT
79
+ metadata: {}
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubyforge_project:
96
+ rubygems_version: 2.5.1
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: Binary data to braille graph
100
+ test_files: []