rqrcode 0.3.0 → 0.3.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.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ *0.3.1* (Nov 24th, 2008)
2
+
3
+ * expanded RS block table to QRcode version 40 [Vladislav Gorodetskiy]
4
+
1
5
  *0.3.0* (Feb 28th, 2008)
2
6
 
3
7
  * added more documentation
data/README CHANGED
@@ -13,7 +13,7 @@ Let's clear up some rQRCode stuff.
13
13
  # The interface is simple and assumes you just want to encode a string into a QR code
14
14
  # QR code is trademarked by Denso Wave inc
15
15
 
16
- == Rescources
16
+ == Resources
17
17
 
18
18
  wikipedia:: http://en.wikipedia.org/wiki/QR_Code
19
19
  Denso-Wave website:: http://www.denso-wave.com/qrcode/index-e.html
@@ -22,10 +22,15 @@ kaywa:: http://qrcode.kaywa.com
22
22
 
23
23
  == Installing
24
24
 
25
- You may get the latest stable version from Rubyforge. Source gems are also available.
25
+ You may get the latest stable version from Rubyforge.
26
26
 
27
27
  $ gem install rqrcode
28
28
 
29
+ You can also get the source from http://github.com/whomwah/rqrcode/tree/master
30
+
31
+ $ git clone git://github.com/whomwah/rqrcode.git
32
+
33
+
29
34
  === Loading rQRCode Itself
30
35
 
31
36
  You have installed the gem already, yeah?
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #--
4
- # Copyright 2004 by Duncan Robertson (duncan@whomwah.com).
4
+ # Copyright 2008 by Duncan Robertson (duncan@whomwah.com).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -59,8 +59,13 @@ module RQRCode #:nodoc:
59
59
  # Expects a string to be parsed in, other args are optional
60
60
  #
61
61
  # # string - the string you wish to encode
62
- # # size - the size of the qrcode
63
- # # level - the error correction level
62
+ # # size - the size of the qrcode (default 4)
63
+ # # level - the error correction level, can be:
64
+ # * Level :l 7% of code can be restored
65
+ # * Level :m 15% of code can be restored
66
+ # * Level :q 25% of code can be restored
67
+ # * Level :h 30% of code can be restored (default :h)
68
+ #
64
69
  # qr = RQRCode::QRCode.new('hello world', :size => 1, :level => :m )
65
70
  #
66
71
 
@@ -201,14 +206,8 @@ module RQRCode #:nodoc:
201
206
 
202
207
 
203
208
  def setup_timing_pattern #:nodoc:
204
- ( 8...@module_count - 8 ).each do |r|
205
- next unless @modules[r][6].nil?
206
- @modules[r][6] = (r % 2 == 0)
207
- end
208
-
209
- ( 8...@module_count - 8 ).each do |c|
210
- next unless @modules[6][c].nil?
211
- @modules[6][c] = (c % 2 == 0)
209
+ ( 8...@module_count - 8 ).each do |i|
210
+ @modules[i][6] = @modules[6][i] = i % 2 == 0
212
211
  end
213
212
  end
214
213
 
@@ -243,10 +242,6 @@ module RQRCode #:nodoc:
243
242
  ( 0...18 ).each do |i|
244
243
  mod = ( !test && ( (bits >> i) & 1) == 1 )
245
244
  @modules[ (i / 3).floor ][ i % 3 + @module_count - 8 - 3 ] = mod
246
- end
247
-
248
- ( 0...18 ).each do |i|
249
- mod = ( !test && ( (bits >> i) & 1) == 1 )
250
245
  @modules[ i % 3 + @module_count - 8 - 3 ][ (i / 3).floor ] = mod
251
246
  end
252
247
  end
@@ -256,10 +251,10 @@ module RQRCode #:nodoc:
256
251
  data = (@error_correct_level << 3 | mask_pattern)
257
252
  bits = QRUtil.get_bch_type_info( data )
258
253
 
259
- # vertical
260
254
  ( 0...15 ).each do |i|
261
255
  mod = (!test && ( (bits >> i) & 1) == 1)
262
256
 
257
+ # vertical
263
258
  if i < 6
264
259
  @modules[i][8] = mod
265
260
  elsif i < 8
@@ -268,12 +263,7 @@ module RQRCode #:nodoc:
268
263
  @modules[ @module_count - 15 + i ][8] = mod
269
264
  end
270
265
 
271
- end
272
-
273
- # horizontal
274
- ( 0...15 ).each do |i|
275
- mod = (!test && ( (bits >> i) & 1) == 1)
276
-
266
+ # horizontal
277
267
  if i < 8
278
268
  @modules[8][ @module_count - i - 1 ] = mod
279
269
  elsif i < 9
@@ -19,7 +19,7 @@ module RQRCode #:nodoc:
19
19
  @data_count = data_count
20
20
  end
21
21
 
22
- RS_BLOCK_TABLE = [
22
+ RQRCode::QRRSBlock::RS_BLOCK_TABLE = [
23
23
 
24
24
  # L
25
25
  # M
@@ -44,7 +44,7 @@ module RQRCode #:nodoc:
44
44
  [2, 35, 17],
45
45
  [2, 35, 13],
46
46
 
47
- # 4
47
+ # 4
48
48
  [1, 100, 80],
49
49
  [2, 50, 32],
50
50
  [2, 50, 24],
@@ -62,7 +62,7 @@ module RQRCode #:nodoc:
62
62
  [4, 43, 19],
63
63
  [4, 43, 15],
64
64
 
65
- # 7
65
+ # 7
66
66
  [2, 98, 78],
67
67
  [4, 49, 31],
68
68
  [2, 32, 14, 4, 33, 15],
@@ -80,14 +80,193 @@ module RQRCode #:nodoc:
80
80
  [4, 36, 16, 4, 37, 17],
81
81
  [4, 36, 12, 4, 37, 13],
82
82
 
83
- # 10
83
+ # 10
84
84
  [2, 86, 68, 2, 87, 69],
85
85
  [4, 69, 43, 1, 70, 44],
86
86
  [6, 43, 19, 2, 44, 20],
87
- [6, 43, 15, 2, 44, 16]
87
+ [6, 43, 15, 2, 44, 16],
88
88
 
89
- ]
89
+ # 11
90
+ [4, 101, 81],
91
+ [1, 80, 50, 4, 81, 51],
92
+ [4, 50, 22, 4, 51, 23],
93
+ [3, 36, 12, 8, 37, 13],
94
+
95
+ # 12
96
+ [2, 116, 92, 2, 117, 93],
97
+ [6, 58, 36, 2, 59, 37],
98
+ [4, 46, 20, 6, 47, 21],
99
+ [7, 42, 14, 4, 43, 15],
100
+
101
+ # 13
102
+ [4, 133, 107],
103
+ [8, 59, 37, 1, 60, 38],
104
+ [8, 44, 20, 4, 45, 21],
105
+ [12, 33, 11, 4, 34, 12],
106
+
107
+ # 14
108
+ [3, 145, 115, 1, 146, 116],
109
+ [4, 64, 40, 5, 65, 41],
110
+ [11, 36, 16, 5, 37, 17],
111
+ [11, 36, 12, 5, 37, 13],
112
+
113
+ # 15
114
+ [5, 109, 87, 1, 110, 88],
115
+ [5, 65, 41, 5, 66, 42],
116
+ [5, 54, 24, 7, 55, 25],
117
+ [11, 36, 12],
118
+
119
+ # 16
120
+ [5, 122, 98, 1, 123, 99],
121
+ [7, 73, 45, 3, 74, 46],
122
+ [15, 43, 19, 2, 44, 20],
123
+ [3, 45, 15, 13, 46, 16],
124
+
125
+ # 17
126
+ [1, 135, 107, 5, 136, 108],
127
+ [10, 74, 46, 1, 75, 47],
128
+ [1, 50, 22, 15, 51, 23],
129
+ [2, 42, 14, 17, 43, 15],
130
+
131
+ # 18
132
+ [5, 150, 120, 1, 151, 121],
133
+ [9, 69, 43, 4, 70, 44],
134
+ [17, 50, 22, 1, 51, 23],
135
+ [2, 42, 14, 19, 43, 15],
136
+
137
+ # 19
138
+ [3, 141, 113, 4, 142, 114],
139
+ [3, 70, 44, 11, 71, 45],
140
+ [17, 47, 21, 4, 48, 22],
141
+ [9, 39, 13, 16, 40, 14],
142
+
143
+ # 20
144
+ [3, 135, 107, 5, 136, 108],
145
+ [3, 67, 41, 13, 68, 42],
146
+ [15, 54, 24, 5, 55, 25],
147
+ [15, 43, 15, 10, 44, 16],
148
+
149
+ # 21
150
+ [4, 144, 116, 4, 145, 117],
151
+ [17, 68, 42],
152
+ [17, 50, 22, 6, 51, 23],
153
+ [19, 46, 16, 6, 47, 17],
154
+
155
+ # 22
156
+ [2, 139, 111, 7, 140, 112],
157
+ [17, 74, 46],
158
+ [7, 54, 24, 16, 55, 25],
159
+ [34, 37, 13],
160
+
161
+ # 23
162
+ [4, 151, 121, 5, 152, 122],
163
+ [4, 75, 47, 14, 76, 48],
164
+ [11, 54, 24, 14, 55, 25],
165
+ [16, 45, 15, 14, 46, 16],
166
+
167
+ # 24
168
+ [6, 147, 117, 4, 148, 118],
169
+ [6, 73, 45, 14, 74, 46],
170
+ [11, 54, 24, 16, 55, 25],
171
+ [30, 46, 16, 2, 47, 17],
172
+
173
+ # 25
174
+ [8, 132, 106, 4, 133, 107],
175
+ [8, 75, 47, 13, 76, 48],
176
+ [7, 54, 24, 22, 55, 25],
177
+ [22, 45, 15, 13, 46, 16],
178
+
179
+ # 26
180
+ [10, 142, 114, 2, 143, 115],
181
+ [19, 74, 46, 4, 75, 47],
182
+ [28, 50, 22, 6, 51, 23],
183
+ [33, 46, 16, 4, 47, 17],
90
184
 
185
+ # 27
186
+ [8, 152, 122, 4, 153, 123],
187
+ [22, 73, 45, 3, 74, 46],
188
+ [8, 53, 23, 26, 54, 24],
189
+ [12, 45, 15, 28, 46, 16],
190
+
191
+ # 28
192
+ [3, 147, 117, 10, 148, 118],
193
+ [3, 73, 45, 23, 74, 46],
194
+ [4, 54, 24, 31, 55, 25],
195
+ [11, 45, 15, 31, 46, 16],
196
+
197
+ # 29
198
+ [7, 146, 116, 7, 147, 117],
199
+ [21, 73, 45, 7, 74, 46],
200
+ [1, 53, 23, 37, 54, 24],
201
+ [19, 45, 15, 26, 46, 16],
202
+
203
+ # 30
204
+ [5, 145, 115, 10, 146, 116],
205
+ [19, 75, 47, 10, 76, 48],
206
+ [15, 54, 24, 25, 55, 25],
207
+ [23, 45, 15, 25, 46, 16],
208
+
209
+ # 31
210
+ [13, 145, 115, 3, 146, 116],
211
+ [2, 74, 46, 29, 75, 47],
212
+ [42, 54, 24, 1, 55, 25],
213
+ [23, 45, 15, 28, 46, 16],
214
+
215
+ # 32
216
+ [17, 145, 115],
217
+ [10, 74, 46, 23, 75, 47],
218
+ [10, 54, 24, 35, 55, 25],
219
+ [19, 45, 15, 35, 46, 16],
220
+
221
+ # 33
222
+ [17, 145, 115, 1, 146, 116],
223
+ [14, 74, 46, 21, 75, 47],
224
+ [29, 54, 24, 19, 55, 25],
225
+ [11, 45, 15, 46, 46, 16],
226
+
227
+ # 34
228
+ [13, 145, 115, 6, 146, 116],
229
+ [14, 74, 46, 23, 75, 47],
230
+ [44, 54, 24, 7, 55, 25],
231
+ [59, 46, 16, 1, 47, 17],
232
+
233
+ # 35
234
+ [12, 151, 121, 7, 152, 122],
235
+ [12, 75, 47, 26, 76, 48],
236
+ [39, 54, 24, 14, 55, 25],
237
+ [22, 45, 15, 41, 46, 16],
238
+
239
+ # 36
240
+ [6, 151, 121, 14, 152, 122],
241
+ [6, 75, 47, 34, 76, 48],
242
+ [46, 54, 24, 10, 55, 25],
243
+ [2, 45, 15, 64, 46, 16],
244
+
245
+ # 37
246
+ [17, 152, 122, 4, 153, 123],
247
+ [29, 74, 46, 14, 75, 47],
248
+ [49, 54, 24, 10, 55, 25],
249
+ [24, 45, 15, 46, 46, 16],
250
+
251
+ # 38
252
+ [4, 152, 122, 18, 153, 123],
253
+ [13, 74, 46, 32, 75, 47],
254
+ [48, 54, 24, 14, 55, 25],
255
+ [42, 45, 15, 32, 46, 16],
256
+
257
+ # 39
258
+ [20, 147, 117, 4, 148, 118],
259
+ [40, 75, 47, 7, 76, 48],
260
+ [43, 54, 24, 22, 55, 25],
261
+ [10, 45, 15, 67, 46, 16],
262
+
263
+ # 40
264
+ [19, 148, 118, 6, 149, 119],
265
+ [18, 75, 47, 31, 76, 48],
266
+ [34, 54, 24, 34, 55, 25],
267
+ [20, 45, 15, 61, 46, 16]
268
+
269
+ ]
91
270
 
92
271
  def QRRSBlock.get_rs_blocks( type_no, error_correct_level )
93
272
  rs_block = QRRSBlock.get_rs_block_table( type_no, error_correct_level )
data/lib/rqrcode.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #--
4
- # Copyright 2004 by Duncan Robertson (duncan@whomwah.com).
4
+ # Copyright 2008 by Duncan Robertson (duncan@whomwah.com).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rqrcode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Duncan Robertson
@@ -9,11 +9,11 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-28 00:00:00 +00:00
12
+ date: 2008-11-24 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
- description: rQRCode is a library for encoding QR Codes. The simple interface allows you to simply create QR Code data structures ready to be displayed in the way you choose.
16
+ description: rQRCode is a library for encoding QR Codes. The simple interface allows you to create QR Code data structures ready to be displayed in the way you choose.
17
17
  email: duncan@whomwah.com
18
18
  executables: []
19
19