bindot2braillegraph 0.0.4

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.
@@ -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: []