autoc 1.1 → 1.2

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.
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: AutoC::UserDefinedType
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.4
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -103,7 +103,18 @@
103
103
  </dl>
104
104
  <div class="clear"></div>
105
105
 
106
+ <h2>Overview</h2><div class="docstring">
107
+ <div class="discussion">
108
+ <div class="paragraph">
109
+ <p>UserDefinedType represents a user-defined custom type.</p>
110
+ </div>
111
+
112
+ </div>
113
+ </div>
114
+ <div class="tags">
115
+
106
116
 
117
+ </div>
107
118
  <h2>Constant Summary</h2>
108
119
 
109
120
 
@@ -115,7 +126,7 @@
115
126
  <h2>Instance Attribute Summary</h2>
116
127
 
117
128
  <h3 class="inherited">Attributes inherited from <span class='object_link'><a href="Type.html" title="AutoC::Type (class)">Type</a></span></h3>
118
- <p class="inherited"><span class='object_link'><a href="Type.html#type-instance_method" title="AutoC::Type#type (method)">#type</a></span></p>
129
+ <p class="inherited"><span class='object_link'><a href="Type.html#type-instance_method" title="AutoC::Type#type (method)">#type</a></span>, <span class='object_link'><a href="Type.html#type_ref-instance_method" title="AutoC::Type#type_ref (method)">#type_ref</a></span></p>
119
130
 
120
131
 
121
132
 
@@ -129,72 +140,6 @@
129
140
  <li class="public ">
130
141
  <span class="summary_signature">
131
142
 
132
- <a href="#copy-instance_method" title="#copy (instance method)">- (Object) <strong>copy</strong>(dst, src) </a>
133
-
134
-
135
-
136
- </span>
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
- <span class="summary_desc"><div class='inline'></div></span>
147
-
148
- </li>
149
-
150
-
151
- <li class="public ">
152
- <span class="summary_signature">
153
-
154
- <a href="#ctor-instance_method" title="#ctor (instance method)">- (Object) <strong>ctor</strong>(obj) </a>
155
-
156
-
157
-
158
- </span>
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
- <span class="summary_desc"><div class='inline'></div></span>
169
-
170
- </li>
171
-
172
-
173
- <li class="public ">
174
- <span class="summary_signature">
175
-
176
- <a href="#dtor-instance_method" title="#dtor (instance method)">- (Object) <strong>dtor</strong>(obj) </a>
177
-
178
-
179
-
180
- </span>
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
- <span class="summary_desc"><div class='inline'></div></span>
191
-
192
- </li>
193
-
194
-
195
- <li class="public ">
196
- <span class="summary_signature">
197
-
198
143
  <a href="#entities-instance_method" title="#entities (instance method)">- (Object) <strong>entities</strong> </a>
199
144
 
200
145
 
@@ -213,50 +158,6 @@
213
158
  <p>PublicDeclaration.</p>
214
159
  </div></div></span>
215
160
 
216
- </li>
217
-
218
-
219
- <li class="public ">
220
- <span class="summary_signature">
221
-
222
- <a href="#equal-instance_method" title="#equal (instance method)">- (Object) <strong>equal</strong>(lt, rt) </a>
223
-
224
-
225
-
226
- </span>
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
- <span class="summary_desc"><div class='inline'></div></span>
237
-
238
- </li>
239
-
240
-
241
- <li class="public ">
242
- <span class="summary_signature">
243
-
244
- <a href="#identify-instance_method" title="#identify (instance method)">- (Object) <strong>identify</strong>(obj) </a>
245
-
246
-
247
-
248
- </span>
249
-
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
- <span class="summary_desc"><div class='inline'></div></span>
259
-
260
161
  </li>
261
162
 
262
163
 
@@ -289,7 +190,7 @@
289
190
  <li class="public ">
290
191
  <span class="summary_signature">
291
192
 
292
- <a href="#less-instance_method" title="#less (instance method)">- (Object) <strong>less</strong>(lt, rt) </a>
193
+ <a href="#prefix-instance_method" title="#prefix (instance method)">- (Object) <strong>prefix</strong> </a>
293
194
 
294
195
 
295
196
 
@@ -321,7 +222,7 @@
321
222
 
322
223
 
323
224
  <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Type.html" title="AutoC::Type (class)">Type</a></span></h3>
324
- <p class="inherited"><span class='object_link'><a href="Type.html#abort-instance_method" title="AutoC::Type#abort (method)">#abort</a></span>, <span class='object_link'><a href="Type.html#assert-instance_method" title="AutoC::Type#assert (method)">#assert</a></span>, <span class='object_link'><a href="Type.html#calloc-instance_method" title="AutoC::Type#calloc (method)">#calloc</a></span>, <span class='object_link'><a href="Type.html#extern-instance_method" title="AutoC::Type#extern (method)">#extern</a></span>, <span class='object_link'><a href="Type.html#free-instance_method" title="AutoC::Type#free (method)">#free</a></span>, <span class='object_link'><a href="Type.html#inline-instance_method" title="AutoC::Type#inline (method)">#inline</a></span>, <span class='object_link'><a href="Type.html#malloc-instance_method" title="AutoC::Type#malloc (method)">#malloc</a></span>, <span class='object_link'><a href="Type.html#method_missing-instance_method" title="AutoC::Type#method_missing (method)">#method_missing</a></span>, <span class='object_link'><a href="Type.html#static-instance_method" title="AutoC::Type#static (method)">#static</a></span>, <span class='object_link'><a href="Type.html#write_decls-instance_method" title="AutoC::Type#write_decls (method)">#write_decls</a></span>, <span class='object_link'><a href="Type.html#write_defs-instance_method" title="AutoC::Type#write_defs (method)">#write_defs</a></span>, <span class='object_link'><a href="Type.html#write_exported_declarations-instance_method" title="AutoC::Type#write_exported_declarations (method)">#write_exported_declarations</a></span>, <span class='object_link'><a href="Type.html#write_exported_types-instance_method" title="AutoC::Type#write_exported_types (method)">#write_exported_types</a></span>, <span class='object_link'><a href="Type.html#write_implementations-instance_method" title="AutoC::Type#write_implementations (method)">#write_implementations</a></span>, <span class='object_link'><a href="Type.html#write_intf-instance_method" title="AutoC::Type#write_intf (method)">#write_intf</a></span></p>
225
+ <p class="inherited"><span class='object_link'><a href="Type.html#%3D%3D-instance_method" title="AutoC::Type#== (method)">#==</a></span>, <span class='object_link'><a href="Type.html#abort-instance_method" title="AutoC::Type#abort (method)">#abort</a></span>, <span class='object_link'><a href="Type.html#assert-instance_method" title="AutoC::Type#assert (method)">#assert</a></span>, <span class='object_link'><a href="Type.html#calloc-instance_method" title="AutoC::Type#calloc (method)">#calloc</a></span>, <span class='object_link'><a href="Type.html#coerce-class_method" title="AutoC::Type.coerce (method)">coerce</a></span>, <span class='object_link'><a href="Type.html#comparable%3F-instance_method" title="AutoC::Type#comparable? (method)">#comparable?</a></span>, <span class='object_link'><a href="Type.html#constructible%3F-instance_method" title="AutoC::Type#constructible? (method)">#constructible?</a></span>, <span class='object_link'><a href="Type.html#copyable%3F-instance_method" title="AutoC::Type#copyable? (method)">#copyable?</a></span>, <span class='object_link'><a href="Type.html#destructible%3F-instance_method" title="AutoC::Type#destructible? (method)">#destructible?</a></span>, <span class='object_link'><a href="Type.html#extern-instance_method" title="AutoC::Type#extern (method)">#extern</a></span>, <span class='object_link'><a href="Type.html#free-instance_method" title="AutoC::Type#free (method)">#free</a></span>, <span class='object_link'><a href="Type.html#hash-instance_method" title="AutoC::Type#hash (method)">#hash</a></span>, <span class='object_link'><a href="Type.html#hashable%3F-instance_method" title="AutoC::Type#hashable? (method)">#hashable?</a></span>, <span class='object_link'><a href="Type.html#inline-instance_method" title="AutoC::Type#inline (method)">#inline</a></span>, <span class='object_link'><a href="Type.html#malloc-instance_method" title="AutoC::Type#malloc (method)">#malloc</a></span>, <span class='object_link'><a href="Type.html#method_missing-instance_method" title="AutoC::Type#method_missing (method)">#method_missing</a></span>, <span class='object_link'><a href="Type.html#orderable%3F-instance_method" title="AutoC::Type#orderable? (method)">#orderable?</a></span>, <span class='object_link'><a href="Type.html#private%3F-instance_method" title="AutoC::Type#private? (method)">#private?</a></span>, <span class='object_link'><a href="Type.html#public%3F-instance_method" title="AutoC::Type#public? (method)">#public?</a></span>, <span class='object_link'><a href="Type.html#static-instance_method" title="AutoC::Type#static (method)">#static</a></span>, <span class='object_link'><a href="Type.html#static%3F-instance_method" title="AutoC::Type#static? (method)">#static?</a></span>, <span class='object_link'><a href="Type.html#write_decls-instance_method" title="AutoC::Type#write_decls (method)">#write_decls</a></span>, <span class='object_link'><a href="Type.html#write_defs-instance_method" title="AutoC::Type#write_defs (method)">#write_defs</a></span>, <span class='object_link'><a href="Type.html#write_intf-instance_method" title="AutoC::Type#write_intf (method)">#write_intf</a></span></p>
325
226
 
326
227
 
327
228
 
@@ -362,46 +263,50 @@
362
263
  <pre class="lines">
363
264
 
364
265
 
365
- 152
366
- 153
367
- 154
368
- 155
369
- 156
370
- 157
371
- 158
372
- 159
373
- 160
374
- 161
375
- 162
376
- 163
377
- 164
378
- 165
379
- 166
380
- 167
381
- 168
382
- 169</pre>
266
+ 301
267
+ 302
268
+ 303
269
+ 304
270
+ 305
271
+ 306
272
+ 307
273
+ 308
274
+ 309
275
+ 310
276
+ 311
277
+ 312
278
+ 313
279
+ 314
280
+ 315
281
+ 316
282
+ 317
283
+ 318
284
+ 319
285
+ 320</pre>
383
286
  </td>
384
287
  <td>
385
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 152</span>
288
+ <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 301</span>
386
289
 
387
290
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span>
388
- <span class='ivar'>@deps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
389
- <span class='id identifier rubyid_v'>v</span> <span class='op'>=</span> <span class='symbol'>:public</span>
390
- <span class='kw'>if</span> <span class='lbracket'>[</span><span class='const'>Symbol</span><span class='comma'>,</span> <span class='const'>String</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span>
391
- <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_opt'>opt</span>
392
- <span class='kw'>elsif</span> <span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
393
- <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type is not specified</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span>
394
- <span class='lbracket'>[</span><span class='symbol'>:ctor</span><span class='comma'>,</span> <span class='symbol'>:dtor</span><span class='comma'>,</span> <span class='symbol'>:copy</span><span class='comma'>,</span> <span class='symbol'>:equal</span><span class='comma'>,</span> <span class='symbol'>:less</span><span class='comma'>,</span> <span class='symbol'>:identify</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='op'>|</span>
395
- <span class='id identifier rubyid_instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
396
- <span class='kw'>end</span>
397
- <span class='ivar'>@deps</span> <span class='op'>&lt;&lt;</span> <span class='const'>PublicDeclaration</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:forward</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:forward</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
398
- <span class='id identifier rubyid_optv'>optv</span> <span class='op'>=</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:visibility</span><span class='rbracket'>]</span>
399
- <span class='id identifier rubyid_v'>v</span> <span class='op'>=</span> <span class='id identifier rubyid_optv'>optv</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='symbol'>:public</span> <span class='op'>:</span> <span class='id identifier rubyid_optv'>optv</span>
291
+ <span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='symbol'>:type</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opt'>opt</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Symbol</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
292
+ <span class='kw'>if</span> <span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
293
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type is not specified</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
400
294
  <span class='kw'>else</span>
401
- <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>failed to decode the argument</span><span class='tstring_end'>&quot;</span></span>
295
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>argument must be a Symbol, String or Hash</span><span class='tstring_end'>&quot;</span></span>
402
296
  <span class='kw'>end</span>
403
- <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_t'>t</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span>
404
- <span class='kw'>end</span></pre>
297
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
298
+ <span class='ivar'>@prefix</span> <span class='op'>=</span> <span class='const'>AutoC</span><span class='period'>.</span><span class='id identifier rubyid_c_id'>c_id</span><span class='lparen'>(</span><span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:prefix</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:prefix</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
299
+ <span class='ivar'>@deps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='semicolon'>;</span> <span class='ivar'>@deps</span> <span class='op'>&lt;&lt;</span> <span class='const'>PublicDeclaration</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:forward</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:forward</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
300
+ <span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span> <span class='op'>=</span> <span class='symbol'>:unset</span> <span class='comment'># This allows to use nil as a value to indicate that the specific method is not avaliable
301
+ </span> <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:ctor</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:constructible</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:ctor</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>) = 0)</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
302
+ <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:dtor</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:destructible</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:dtor</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span> <span class='kw'>end</span><span class='rbrace'>}</span>
303
+ <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:copy</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:copyable</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:copy</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dst'>dst</span><span class='embexpr_end'>}</span><span class='tstring_content'>) = (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src'>src</span><span class='embexpr_end'>}</span><span class='tstring_content'>))</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
304
+ <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:equal</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:comparable</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:equal</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_lt'>lt</span><span class='comma'>,</span> <span class='id identifier rubyid_rt'>rt</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_content'>) == (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_content'>))</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
305
+ <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:less</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:orderable</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:less</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_lt'>lt</span><span class='comma'>,</span> <span class='id identifier rubyid_rt'>rt</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_content'>) &lt; (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_content'>))</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
306
+ <span class='id identifier rubyid_opt'>opt</span><span class='lbracket'>[</span><span class='symbol'>:identify</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:hashable</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:identify</span><span class='comma'>,</span> <span class='id identifier rubyid_opt'>opt</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((size_t)(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>))</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
307
+ <span class='comment'># Handle specific requirements
308
+ </span> <span class='ivar'>@capability</span><span class='period'>.</span><span class='id identifier rubyid_subtract'>subtract</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:constructible</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@ctor</span><span class='period'>.</span><span class='id identifier rubyid_parameters'>parameters</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>&gt;</span> <span class='int'>1</span> <span class='comment'># Constructible type must not have extra parameters besides self
309
+ </span><span class='kw'>end</span></pre>
405
310
  </td>
406
311
  </tr>
407
312
  </table>
@@ -425,97 +330,7 @@
425
330
 
426
331
 
427
332
  <div class="method_details first">
428
- <h3 class="signature first" id="copy-instance_method">
429
-
430
- - (<tt>Object</tt>) <strong>copy</strong>(dst, src)
431
-
432
-
433
-
434
-
435
-
436
- </h3><table class="source_code">
437
- <tr>
438
- <td>
439
- <pre class="lines">
440
-
441
-
442
- 179
443
- 180
444
- 181</pre>
445
- </td>
446
- <td>
447
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 179</span>
448
-
449
- <span class='kw'>def</span> <span class='id identifier rubyid_copy'>copy</span><span class='lparen'>(</span><span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='rparen'>)</span>
450
- <span class='ivar'>@copy</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dst'>dst</span><span class='embexpr_end'>}</span><span class='tstring_content'> = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src'>src</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@copy</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dst'>dst</span><span class='embexpr_end'>}</span><span class='tstring_content'>, </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src'>src</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
451
- <span class='kw'>end</span></pre>
452
- </td>
453
- </tr>
454
- </table>
455
- </div>
456
-
457
- <div class="method_details ">
458
- <h3 class="signature " id="ctor-instance_method">
459
-
460
- - (<tt>Object</tt>) <strong>ctor</strong>(obj)
461
-
462
-
463
-
464
-
465
-
466
- </h3><table class="source_code">
467
- <tr>
468
- <td>
469
- <pre class="lines">
470
-
471
-
472
- 171
473
- 172
474
- 173</pre>
475
- </td>
476
- <td>
477
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 171</span>
478
-
479
- <span class='kw'>def</span> <span class='id identifier rubyid_ctor'>ctor</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
480
- <span class='ivar'>@ctor</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'> = 0)</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctor</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
481
- <span class='kw'>end</span></pre>
482
- </td>
483
- </tr>
484
- </table>
485
- </div>
486
-
487
- <div class="method_details ">
488
- <h3 class="signature " id="dtor-instance_method">
489
-
490
- - (<tt>Object</tt>) <strong>dtor</strong>(obj)
491
-
492
-
493
-
494
-
495
-
496
- </h3><table class="source_code">
497
- <tr>
498
- <td>
499
- <pre class="lines">
500
-
501
-
502
- 175
503
- 176
504
- 177</pre>
505
- </td>
506
- <td>
507
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 175</span>
508
-
509
- <span class='kw'>def</span> <span class='id identifier rubyid_dtor'>dtor</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
510
- <span class='ivar'>@dtor</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@dtor</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
511
- <span class='kw'>end</span></pre>
512
- </td>
513
- </tr>
514
- </table>
515
- </div>
516
-
517
- <div class="method_details ">
518
- <h3 class="signature " id="entities-instance_method">
333
+ <h3 class="signature first" id="entities-instance_method">
519
334
 
520
335
  - (<tt>Object</tt>) <strong>entities</strong>
521
336
 
@@ -540,81 +355,21 @@
540
355
  <pre class="lines">
541
356
 
542
357
 
543
- 150</pre>
544
- </td>
545
- <td>
546
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 150</span>
547
-
548
- <span class='kw'>def</span> <span class='id identifier rubyid_entities'>entities</span><span class='semicolon'>;</span> <span class='kw'>super</span> <span class='op'>+</span> <span class='ivar'>@deps</span> <span class='kw'>end</span></pre>
549
- </td>
550
- </tr>
551
- </table>
552
- </div>
553
-
554
- <div class="method_details ">
555
- <h3 class="signature " id="equal-instance_method">
556
-
557
- - (<tt>Object</tt>) <strong>equal</strong>(lt, rt)
558
-
559
-
560
-
561
-
562
-
563
- </h3><table class="source_code">
564
- <tr>
565
- <td>
566
- <pre class="lines">
567
-
568
-
569
- 183
570
- 184
571
- 185</pre>
572
- </td>
573
- <td>
574
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 183</span>
575
-
576
- <span class='kw'>def</span> <span class='id identifier rubyid_equal'>equal</span><span class='lparen'>(</span><span class='id identifier rubyid_lt'>lt</span><span class='comma'>,</span> <span class='id identifier rubyid_rt'>rt</span><span class='rparen'>)</span>
577
- <span class='ivar'>@equal</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_content'> == </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@equal</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_content'>, </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
578
- <span class='kw'>end</span></pre>
579
- </td>
580
- </tr>
581
- </table>
582
- </div>
583
-
584
- <div class="method_details ">
585
- <h3 class="signature " id="identify-instance_method">
586
-
587
- - (<tt>Object</tt>) <strong>identify</strong>(obj)
588
-
589
-
590
-
591
-
592
-
593
- </h3><table class="source_code">
594
- <tr>
595
- <td>
596
- <pre class="lines">
597
-
598
-
599
- 191
600
- 192
601
- 193</pre>
358
+ 297</pre>
602
359
  </td>
603
360
  <td>
604
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 191</span>
361
+ <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 297</span>
605
362
 
606
- <span class='kw'>def</span> <span class='id identifier rubyid_identify'>identify</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
607
- <span class='ivar'>@identify</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>(size_t)(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@identify</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
608
- <span class='kw'>end</span></pre>
363
+ <span class='kw'>def</span> <span class='id identifier rubyid_entities'>entities</span><span class='semicolon'>;</span> <span class='kw'>super</span><span class='period'>.</span><span class='id identifier rubyid_concat'>concat</span><span class='lparen'>(</span><span class='ivar'>@deps</span><span class='rparen'>)</span> <span class='kw'>end</span></pre>
609
364
  </td>
610
365
  </tr>
611
366
  </table>
612
367
  </div>
613
368
 
614
369
  <div class="method_details ">
615
- <h3 class="signature " id="less-instance_method">
370
+ <h3 class="signature " id="prefix-instance_method">
616
371
 
617
- - (<tt>Object</tt>) <strong>less</strong>(lt, rt)
372
+ - (<tt>Object</tt>) <strong>prefix</strong>
618
373
 
619
374
 
620
375
 
@@ -626,16 +381,12 @@
626
381
  <pre class="lines">
627
382
 
628
383
 
629
- 187
630
- 188
631
- 189</pre>
384
+ 299</pre>
632
385
  </td>
633
386
  <td>
634
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 187</span>
387
+ <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 299</span>
635
388
 
636
- <span class='kw'>def</span> <span class='id identifier rubyid_less'>less</span><span class='lparen'>(</span><span class='id identifier rubyid_lt'>lt</span><span class='comma'>,</span> <span class='id identifier rubyid_rt'>rt</span><span class='rparen'>)</span>
637
- <span class='ivar'>@less</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_content'> &lt; </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@less</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_content'>, </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
638
- <span class='kw'>end</span></pre>
389
+ <span class='kw'>def</span> <span class='id identifier rubyid_prefix'>prefix</span><span class='semicolon'>;</span> <span class='ivar'>@prefix</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='kw'>super</span> <span class='op'>:</span> <span class='ivar'>@prefix</span> <span class='kw'>end</span></pre>
639
390
  </td>
640
391
  </tr>
641
392
  </table>
@@ -646,9 +397,9 @@
646
397
  </div>
647
398
 
648
399
  <div id="footer">
649
- Generated on Mon Jun 9 18:28:02 2014 by
400
+ Generated on Sat Nov 22 16:58:04 2014 by
650
401
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
651
- 0.8.7.4 (ruby-2.0.0).
402
+ 0.8.7.6 (ruby-2.1.5).
652
403
  </div>
653
404
 
654
405
  </body>