binaryparse 0.1.2 → 0.1.3

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 (60) hide show
  1. data/binaryparse.gemspec +17 -17
  2. data/examples/pms_input_2_test.rb +70 -0
  3. data/lib/blocker.rb +1 -1
  4. metadata +3 -66
  5. data/doc/binaryparse.chm +0 -0
  6. data/doc/bphelp.zip +0 -0
  7. data/doc/classes/BinaryBlocker/BitFieldEncoder.html +0 -328
  8. data/doc/classes/BinaryBlocker/Blocker.html +0 -168
  9. data/doc/classes/BinaryBlocker/CountedArrayEncoder.html +0 -347
  10. data/doc/classes/BinaryBlocker/Encoder.html +0 -526
  11. data/doc/classes/BinaryBlocker/FixedArrayEncoder.html +0 -278
  12. data/doc/classes/BinaryBlocker/FixedStringEncoder.html +0 -177
  13. data/doc/classes/BinaryBlocker/FixedUTF16StringEncoder.html +0 -229
  14. data/doc/classes/BinaryBlocker/GroupEncoder.html +0 -650
  15. data/doc/classes/BinaryBlocker/ListOfEncoder.html +0 -343
  16. data/doc/classes/BinaryBlocker/OneOfEncoder.html +0 -306
  17. data/doc/classes/BinaryBlocker/PackedDateEncoder.html +0 -220
  18. data/doc/classes/BinaryBlocker/PackedDateTimeEncoder.html +0 -220
  19. data/doc/classes/BinaryBlocker/PackedNumberEncoder.html +0 -231
  20. data/doc/classes/BinaryBlocker/SimpleEncoder.html +0 -284
  21. data/doc/classes/BinaryBlocker.html +0 -329
  22. data/doc/classes/BufferedIO.html +0 -324
  23. data/doc/classes/TestBlocker/BBDate.html +0 -120
  24. data/doc/classes/TestBlocker/BBList.html +0 -120
  25. data/doc/classes/TestBlocker/BBPacked.html +0 -120
  26. data/doc/classes/TestBlocker/BBString.html +0 -120
  27. data/doc/classes/TestBlocker/BBSub1.html +0 -120
  28. data/doc/classes/TestBlocker/BBSub2.html +0 -120
  29. data/doc/classes/TestBlocker/BBTest1.html +0 -120
  30. data/doc/classes/TestBlocker/BBTest2.html +0 -120
  31. data/doc/classes/TestBlocker/BBTest3.html +0 -120
  32. data/doc/classes/TestBlocker/BBTest4.html +0 -120
  33. data/doc/classes/TestBlocker/BBTest5.html +0 -120
  34. data/doc/classes/TestBlocker/BBTest6.html +0 -120
  35. data/doc/classes/TestBlocker/BBTest7.html +0 -120
  36. data/doc/classes/TestBlocker/BBTime.html +0 -120
  37. data/doc/classes/TestBlocker/BBUTF16.html +0 -120
  38. data/doc/classes/TestBlocker/ItemA.html +0 -120
  39. data/doc/classes/TestBlocker/ItemB.html +0 -120
  40. data/doc/classes/TestBlocker.html +0 -802
  41. data/doc/contents.hhc +0 -670
  42. data/doc/created.rid +0 -1
  43. data/doc/dot/f_0.dot +0 -208
  44. data/doc/dot/f_0.png +0 -0
  45. data/doc/dot/f_1.dot +0 -23
  46. data/doc/dot/f_1.png +0 -0
  47. data/doc/dot/f_2.dot +0 -32
  48. data/doc/dot/f_2.png +0 -0
  49. data/doc/dot/m_0_0.dot +0 -208
  50. data/doc/dot/m_0_0.png +0 -0
  51. data/doc/files/lib/blocker_rb.html +0 -144
  52. data/doc/files/lib/buffered_io_rb.html +0 -115
  53. data/doc/files/test/test_blocker_rb.html +0 -116
  54. data/doc/fr_class_index.html +0 -60
  55. data/doc/fr_file_index.html +0 -29
  56. data/doc/fr_method_index.html +0 -135
  57. data/doc/index.hhk +0 -599
  58. data/doc/index.html +0 -24
  59. data/doc/rdoc-style.css +0 -208
  60. data/doc/rdoc.hhp +0 -15
data/binaryparse.gemspec CHANGED
@@ -1,18 +1,18 @@
1
- require 'rubygems'
2
-
3
- spec = Gem::Specification.new do |s|
4
- s.name = "binaryparse"
5
- s.version = "0.1.2"
6
- s.author = "Patrick Hurley"
7
- s.email = "phurley@gmail.com"
8
- s.homepage = "http://binaryparse.rubyforge.org/"
9
- s.platform = Gem::Platform::RUBY
10
- s.summary = "Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx."
11
- s.files = Dir["**/*"]
12
- s.autorequire = "binaryparse"
13
- end
14
-
15
- if __FILE__ == $PROGRAM_NAME
16
- Gem::manage_gems
17
- Gem::Builder.new(spec).build
1
+ require 'rubygems'
2
+
3
+ spec = Gem::Specification.new do |s|
4
+ s.name = "binaryparse"
5
+ s.version = "0.1.3"
6
+ s.author = "Patrick Hurley"
7
+ s.email = "phurley@gmail.com"
8
+ s.homepage = "http://binaryparse.rubyforge.org/"
9
+ s.platform = Gem::Platform::RUBY
10
+ s.summary = "Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx."
11
+ s.files = Dir["**/*"]
12
+ s.autorequire = "binaryparse"
13
+ end
14
+
15
+ if __FILE__ == $PROGRAM_NAME
16
+ Gem::manage_gems
17
+ Gem::Builder.new(spec).build
18
18
  end
@@ -0,0 +1,70 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ require 'blocker'
4
+ require 'stringio'
5
+
6
+ class PMS_UserArea < BinaryBlocker::Blocker
7
+ has_one :filler, :uint8
8
+ end
9
+
10
+ class PMS_ItemMaintenance < BinaryBlocker::Blocker
11
+ has_one :record_code, :int8, :key=> 0x13
12
+ has_one :sku, :string, :length => 8
13
+ has_one :update_code, :int16
14
+ has_one :dept, :packed, :length => 6
15
+ has_one :classs, :packed, :length => 6
16
+ has_one :retail_price, :packed, :length => 12
17
+ has_one :secondary_price, :packed, :length => 12
18
+ has_one :lowest_price, :packed, :length => 12
19
+ has_one :lowest_price_date, :date
20
+ has_one :item_status_flag, :uint16
21
+ has_one :description, :utf16, :length => 40
22
+ has_fixed_array :user_area, 13, [PMS_UserArea]
23
+ end
24
+
25
+ class PmsInputTest < Test::Unit::TestCase
26
+
27
+ def write_the_block(fobj,obj)
28
+ fobj.write(obj.block)
29
+ end
30
+
31
+ def test_create_item
32
+
33
+ item = PMS_ItemMaintenance.new
34
+ item.record_code = 0x13
35
+ item.sku = "50000001"
36
+ item.update_code = 0
37
+ item.dept = 300
38
+ item.classs = 20
39
+ item.retail_price = 599
40
+ item.secondary_price = 499
41
+ item.lowest_price = 399
42
+ item.lowest_price_date = Date.new(2006,05,13)
43
+ item.item_status_flag = 0
44
+ item.description = "I made this up!"
45
+ (0..12).each {|i|
46
+ item.user_area[i] = PMS_UserArea.new
47
+ item.user_area[i].filler = i
48
+ }
49
+
50
+ filename = "testitem"
51
+ File.delete(filename) if File.exist?(filename)
52
+ f = File.new(filename, "wb+")
53
+ (0..5).each do |i|
54
+ item.sku = (50000000 + i).to_s
55
+ write_the_block(f,item)
56
+ end
57
+ f.close
58
+
59
+
60
+ File.open(filename, "rb") do |fhndl|
61
+ until fhndl.eof?
62
+ start = fhndl.pos
63
+ rec = PMS_ItemMaintenance.new(fhndl)
64
+ puts "#{rec.class}: #{start}-#{fhndl.pos}"
65
+ p rec.sku + " " + rec.description
66
+ end
67
+ end
68
+ end
69
+
70
+ end
data/lib/blocker.rb CHANGED
@@ -560,8 +560,8 @@ module BinaryBlocker
560
560
  @count.times do
561
561
  result << OneOfEncoder.new(@classes, io, @opts)
562
562
  end
563
+ @value = result
563
564
  end
564
- @value = result
565
565
  end
566
566
 
567
567
  def [](offset)
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: binaryparse
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.2
7
- date: 2006-08-29 00:00:00 -04:00
6
+ version: 0.1.3
7
+ date: 2006-09-06 00:00:00 -04:00
8
8
  summary: Binaryparse is a simple Ruby DSL to parse semi-complicated binary structures. This includes structures dynamic in length, which cannot be handled by DL::Struct or BitStructEx.
9
9
  require_paths:
10
10
  - lib
@@ -30,74 +30,11 @@ authors:
30
30
  - Patrick Hurley
31
31
  files:
32
32
  - binaryparse.gemspec
33
- - doc
34
33
  - examples
35
34
  - lib
36
35
  - test
37
- - doc/binaryparse.chm
38
- - doc/bphelp.zip
39
- - doc/classes
40
- - doc/contents.hhc
41
- - doc/created.rid
42
- - doc/dot
43
- - doc/files
44
- - doc/fr_class_index.html
45
- - doc/fr_file_index.html
46
- - doc/fr_method_index.html
47
- - doc/index.hhk
48
- - doc/index.html
49
- - doc/rdoc-style.css
50
- - doc/rdoc.hhp
51
- - doc/classes/BinaryBlocker
52
- - doc/classes/BinaryBlocker.html
53
- - doc/classes/BufferedIO.html
54
- - doc/classes/TestBlocker
55
- - doc/classes/TestBlocker.html
56
- - doc/classes/BinaryBlocker/BitFieldEncoder.html
57
- - doc/classes/BinaryBlocker/Blocker.html
58
- - doc/classes/BinaryBlocker/CountedArrayEncoder.html
59
- - doc/classes/BinaryBlocker/Encoder.html
60
- - doc/classes/BinaryBlocker/FixedArrayEncoder.html
61
- - doc/classes/BinaryBlocker/FixedStringEncoder.html
62
- - doc/classes/BinaryBlocker/FixedUTF16StringEncoder.html
63
- - doc/classes/BinaryBlocker/GroupEncoder.html
64
- - doc/classes/BinaryBlocker/ListOfEncoder.html
65
- - doc/classes/BinaryBlocker/OneOfEncoder.html
66
- - doc/classes/BinaryBlocker/PackedDateEncoder.html
67
- - doc/classes/BinaryBlocker/PackedDateTimeEncoder.html
68
- - doc/classes/BinaryBlocker/PackedNumberEncoder.html
69
- - doc/classes/BinaryBlocker/SimpleEncoder.html
70
- - doc/classes/TestBlocker/BBDate.html
71
- - doc/classes/TestBlocker/BBList.html
72
- - doc/classes/TestBlocker/BBPacked.html
73
- - doc/classes/TestBlocker/BBString.html
74
- - doc/classes/TestBlocker/BBSub1.html
75
- - doc/classes/TestBlocker/BBSub2.html
76
- - doc/classes/TestBlocker/BBTest1.html
77
- - doc/classes/TestBlocker/BBTest2.html
78
- - doc/classes/TestBlocker/BBTest3.html
79
- - doc/classes/TestBlocker/BBTest4.html
80
- - doc/classes/TestBlocker/BBTest5.html
81
- - doc/classes/TestBlocker/BBTest6.html
82
- - doc/classes/TestBlocker/BBTest7.html
83
- - doc/classes/TestBlocker/BBTime.html
84
- - doc/classes/TestBlocker/BBUTF16.html
85
- - doc/classes/TestBlocker/ItemA.html
86
- - doc/classes/TestBlocker/ItemB.html
87
- - doc/dot/f_0.dot
88
- - doc/dot/f_0.png
89
- - doc/dot/f_1.dot
90
- - doc/dot/f_1.png
91
- - doc/dot/f_2.dot
92
- - doc/dot/f_2.png
93
- - doc/dot/m_0_0.dot
94
- - doc/dot/m_0_0.png
95
- - doc/files/lib
96
- - doc/files/test
97
- - doc/files/lib/blocker_rb.html
98
- - doc/files/lib/buffered_io_rb.html
99
- - doc/files/test/test_blocker_rb.html
100
36
  - examples/cmasqls.rb
37
+ - examples/pms_input_2_test.rb
101
38
  - examples/readme.txt
102
39
  - lib/blocker.rb
103
40
  - lib/buffered_io.rb
data/doc/binaryparse.chm DELETED
Binary file
data/doc/bphelp.zip DELETED
Binary file
@@ -1,328 +0,0 @@
1
-
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: BinaryBlocker::BitFieldEncoder</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">BinaryBlocker::BitFieldEncoder</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/blocker_rb.html">
59
- lib/blocker.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- <a href="Encoder.html">
69
- Encoder
70
- </a>
71
- </td>
72
- </tr>
73
- </table>
74
- </div>
75
- <!-- banner header -->
76
-
77
- <div id="bodyContent">
78
-
79
-
80
-
81
- <div id="contextContent">
82
- <div id="diagram">
83
- <map id="map" name="map">
84
- <area shape="rect" coords="252,146,351,194" href="GroupEncoder.html" alt="GroupEncoder" />
85
- <area shape="rect" coords="27,242,123,290" href="ListOfEncoder.html" alt="ListOfEncoder" />
86
- <area shape="rect" coords="147,242,219,290" href="Blocker.html" alt="Blocker" />
87
- <area shape="rect" coords="243,242,360,290" href="FixedArrayEncoder.html" alt="FixedArrayEncoder" />
88
- <area shape="rect" coords="384,242,517,290" href="CountedArrayEncoder.html" alt="CountedArrayEncoder" />
89
- <area shape="rect" coords="683,50,755,98" href="Encoder.html" alt="Encoder" />
90
- <area shape="rect" coords="605,146,707,194" href="SimpleEncoder.html" alt="SimpleEncoder" />
91
- <area shape="rect" coords="731,146,835,194" href="BitFieldEncoder.html" alt="BitFieldEncoder" />
92
- <area shape="rect" coords="859,146,960,194" href="OneOfEncoder.html" alt="OneOfEncoder" />
93
- <area shape="rect" coords="541,242,683,290" href="PackedNumberEncoder.html" alt="PackedNumberEncoder" />
94
- <area shape="rect" coords="469,338,595,386" href="PackedDateEncoder.html" alt="PackedDateEncoder" />
95
- <area shape="rect" coords="619,338,765,386" href="PackedDateTimeEncoder.html" alt="PackedDateTimeEncoder" />
96
- <area shape="rect" coords="707,242,827,290" href="FixedStringEncoder.html" alt="FixedStringEncoder" />
97
- <area shape="rect" coords="851,242,1005,290" href="FixedUTF16StringEncoder.html" alt="FixedUTF16StringEncoder" />
98
- <area shape="rect" coords="16,16,1016,396" href="../BinaryBlocker.html" alt="BinaryBlocker" />
99
- </map>
100
- <img src="../../dot/m_0_0.png" usemap="#map" border="0" alt="Module: BinaryBlocker" />
101
- </div>
102
-
103
-
104
-
105
- </div>
106
-
107
- <div id="method-list">
108
- <h3 class="section-bar">Methods</h3>
109
-
110
- <div class="name-list">
111
- <a href="#M000069">internal_block</a>&nbsp;&nbsp;
112
- <a href="#M000070">internal_deblock</a>&nbsp;&nbsp;
113
- <a href="#M000073">method_missing</a>&nbsp;&nbsp;
114
- <a href="#M000068">new</a>&nbsp;&nbsp;
115
- <a href="#M000072">raw_value</a>&nbsp;&nbsp;
116
- <a href="#M000071">value</a>&nbsp;&nbsp;
117
- </div>
118
- </div>
119
-
120
- </div>
121
-
122
-
123
- <!-- if includes -->
124
-
125
- <div id="section">
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
- <!-- if method_list -->
135
- <div id="methods">
136
- <h3 class="section-bar">Public Class methods</h3>
137
-
138
- <div id="method-M000068" class="method-detail">
139
- <a name="M000068"></a>
140
-
141
- <div class="method-heading">
142
- <a href="#M000068" class="method-signature">
143
- <span class="method-name">new</span><span class="method-args">(type, bit_info, *opts)</span>
144
- </a>
145
- </div>
146
-
147
- <div class="method-description">
148
- <p><a class="source-toggle" href="#"
149
- onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
150
- <div class="method-source-code" id="M000068-source">
151
- <pre>
152
- <span class="ruby-comment cmt"># File lib/blocker.rb, line 666</span>
153
- 666: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">bit_info</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">opts</span>)
154
- 667: <span class="ruby-ivar">@type</span> = <span class="ruby-constant">BinaryBlocker</span>.<span class="ruby-identifier">pack_symbols</span>[<span class="ruby-identifier">type</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">type</span>
155
- 668: <span class="ruby-ivar">@length</span> = <span class="ruby-constant">BinaryBlocker</span>.<span class="ruby-identifier">sizeof_format</span>(<span class="ruby-ivar">@type</span>)
156
- 669: <span class="ruby-ivar">@bit_info</span> = {}
157
- 670: <span class="ruby-identifier">pos</span> = <span class="ruby-value">0</span>
158
- 671: <span class="ruby-identifier">bit_info</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bi</span><span class="ruby-operator">|</span>
159
- 672: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">bi</span>
160
- 673: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Symbol</span>
161
- 674: <span class="ruby-ivar">@bit_info</span>[<span class="ruby-identifier">bi</span>.<span class="ruby-identifier">to_sym</span>] = [<span class="ruby-identifier">pos</span>,<span class="ruby-value">1</span>]
162
- 675: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
163
- 676:
164
- 677: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
165
- 678: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">bi</span>
166
- 679:
167
- 680: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
168
- 681: <span class="ruby-ivar">@bit_info</span>[<span class="ruby-identifier">bi</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">to_sym</span>] = [<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">to_i</span>]
169
- 682: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">to_i</span>
170
- 683: <span class="ruby-keyword kw">end</span>
171
- 684: <span class="ruby-keyword kw">end</span>
172
- 685: <span class="ruby-ivar">@value</span> = <span class="ruby-value">0</span>
173
- 686: <span class="ruby-identifier">initialize_options</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">opts</span>)
174
- 687: <span class="ruby-identifier">initialize_data</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">opts</span>)
175
- 688: <span class="ruby-keyword kw">end</span>
176
- </pre>
177
- </div>
178
- </div>
179
- </div>
180
-
181
- <h3 class="section-bar">Public Instance methods</h3>
182
-
183
- <div id="method-M000069" class="method-detail">
184
- <a name="M000069"></a>
185
-
186
- <div class="method-heading">
187
- <a href="#M000069" class="method-signature">
188
- <span class="method-name">internal_block</span><span class="method-args">(val)</span>
189
- </a>
190
- </div>
191
-
192
- <div class="method-description">
193
- <p><a class="source-toggle" href="#"
194
- onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
195
- <div class="method-source-code" id="M000069-source">
196
- <pre>
197
- <span class="ruby-comment cmt"># File lib/blocker.rb, line 690</span>
198
- 690: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">internal_block</span>(<span class="ruby-identifier">val</span>)
199
- 691: [<span class="ruby-identifier">val</span>.<span class="ruby-identifier">raw_value</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-ivar">@type</span>)
200
- 692: <span class="ruby-keyword kw">end</span>
201
- </pre>
202
- </div>
203
- </div>
204
- </div>
205
-
206
- <div id="method-M000070" class="method-detail">
207
- <a name="M000070"></a>
208
-
209
- <div class="method-heading">
210
- <a href="#M000070" class="method-signature">
211
- <span class="method-name">internal_deblock</span><span class="method-args">(io)</span>
212
- </a>
213
- </div>
214
-
215
- <div class="method-description">
216
- <p><a class="source-toggle" href="#"
217
- onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
218
- <div class="method-source-code" id="M000070-source">
219
- <pre>
220
- <span class="ruby-comment cmt"># File lib/blocker.rb, line 694</span>
221
- 694: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">internal_deblock</span>(<span class="ruby-identifier">io</span>)
222
- 695: <span class="ruby-identifier">buffer</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@length</span>)
223
- 696: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-ivar">@type</span>)
224
- 697: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">first</span>
225
- 698: <span class="ruby-keyword kw">end</span>
226
- </pre>
227
- </div>
228
- </div>
229
- </div>
230
-
231
- <div id="method-M000073" class="method-detail">
232
- <a name="M000073"></a>
233
-
234
- <div class="method-heading">
235
- <a href="#M000073" class="method-signature">
236
- <span class="method-name">method_missing</span><span class="method-args">(sym, *args)</span>
237
- </a>
238
- </div>
239
-
240
- <div class="method-description">
241
- <p><a class="source-toggle" href="#"
242
- onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
243
- <div class="method-source-code" id="M000073-source">
244
- <pre>
245
- <span class="ruby-comment cmt"># File lib/blocker.rb, line 708</span>
246
- 708: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">sym</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
247
- 709: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">bi</span> = <span class="ruby-ivar">@bit_info</span>[<span class="ruby-identifier">sym</span>])
248
- 710: <span class="ruby-identifier">v</span> = <span class="ruby-ivar">@value</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">first</span>
249
- 711: <span class="ruby-identifier">mask</span> = (<span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">last</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
250
- 712: <span class="ruby-identifier">v</span> = <span class="ruby-identifier">v</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">mask</span>
251
- 713: <span class="ruby-keyword kw">else</span>
252
- 714: <span class="ruby-identifier">sym</span> = <span class="ruby-identifier">sym</span>.<span class="ruby-identifier">to_s</span>
253
- 715: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sym</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?=</span>
254
- 716: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bi</span> = <span class="ruby-ivar">@bit_info</span>[<span class="ruby-identifier">sym</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>].<span class="ruby-identifier">to_sym</span>]
255
- 717: <span class="ruby-ivar">@value</span> <span class="ruby-operator">&amp;=</span> <span class="ruby-operator">~</span>(((<span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">last</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">first</span>)
256
- 718: <span class="ruby-ivar">@value</span> <span class="ruby-operator">|=</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bi</span>.<span class="ruby-identifier">first</span>
257
- 719: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value</span>
258
- 720: <span class="ruby-keyword kw">end</span>
259
- 721: <span class="ruby-keyword kw">end</span>
260
- 722: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoMethodError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;undefined method `#{sym}''&quot;</span>)
261
- 723: <span class="ruby-comment cmt"># I was using super, but it was throwing a different error</span>
262
- 724: <span class="ruby-comment cmt"># which seemed wrong, not sure why</span>
263
- 725: <span class="ruby-keyword kw">end</span>
264
- 726: <span class="ruby-keyword kw">end</span>
265
- </pre>
266
- </div>
267
- </div>
268
- </div>
269
-
270
- <div id="method-M000072" class="method-detail">
271
- <a name="M000072"></a>
272
-
273
- <div class="method-heading">
274
- <a href="#M000072" class="method-signature">
275
- <span class="method-name">raw_value</span><span class="method-args">()</span>
276
- </a>
277
- </div>
278
-
279
- <div class="method-description">
280
- <p><a class="source-toggle" href="#"
281
- onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
282
- <div class="method-source-code" id="M000072-source">
283
- <pre>
284
- <span class="ruby-comment cmt"># File lib/blocker.rb, line 704</span>
285
- 704: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">raw_value</span>
286
- 705: <span class="ruby-ivar">@value</span>
287
- 706: <span class="ruby-keyword kw">end</span>
288
- </pre>
289
- </div>
290
- </div>
291
- </div>
292
-
293
- <div id="method-M000071" class="method-detail">
294
- <a name="M000071"></a>
295
-
296
- <div class="method-heading">
297
- <a href="#M000071" class="method-signature">
298
- <span class="method-name">value</span><span class="method-args">()</span>
299
- </a>
300
- </div>
301
-
302
- <div class="method-description">
303
- <p><a class="source-toggle" href="#"
304
- onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
305
- <div class="method-source-code" id="M000071-source">
306
- <pre>
307
- <span class="ruby-comment cmt"># File lib/blocker.rb, line 700</span>
308
- 700: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value</span>
309
- 701: <span class="ruby-keyword kw">self</span>
310
- 702: <span class="ruby-keyword kw">end</span>
311
- </pre>
312
- </div>
313
- </div>
314
- </div>
315
-
316
-
317
- </div>
318
-
319
-
320
- </div>
321
-
322
-
323
- <div id="validator-badges">
324
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
325
- </div>
326
-
327
- </body>
328
- </html>