fancy 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. data/README.md +14 -14
  2. data/Rakefile +16 -4
  3. data/bin/fancy +3 -0
  4. data/bin/fspec +20 -0
  5. data/bin/fyi +27 -11
  6. data/bin/ifancy +1 -1
  7. data/boot/fancy_ext.rb +1 -0
  8. data/boot/fancy_ext/block_env.rb +1 -9
  9. data/boot/fancy_ext/delegator.rb +64 -0
  10. data/boot/fancy_ext/object.rb +4 -0
  11. data/boot/fancy_ext/thread.rb +4 -0
  12. data/boot/load.rb +5 -1
  13. data/boot/rbx-compiler/compiler/ast.rb +0 -1
  14. data/boot/rbx-compiler/compiler/ast/class_def.rb +2 -0
  15. data/boot/rbx-compiler/compiler/ast/method_def.rb +2 -0
  16. data/boot/rbx-compiler/compiler/ast/node.rb +10 -0
  17. data/boot/rbx-compiler/compiler/ast/ruby_args.rb +12 -0
  18. data/boot/rbx-compiler/compiler/ast/singleton_method_def.rb +2 -0
  19. data/boot/rbx-compiler/parser/fancy_parser.bundle +0 -0
  20. data/boot/rbx-compiler/parser/lexer.lex +5 -11
  21. data/boot/rbx-compiler/parser/parser.rb +16 -5
  22. data/boot/rbx-compiler/parser/parser.y +39 -24
  23. data/doc/api/fancy.css +1 -1
  24. data/doc/api/fancy.jsonp +1 -1
  25. data/doc/api/fdoc.js +22 -4
  26. data/doc/api/index.html +5 -6
  27. data/doc/api/jquery-ui.min.js +401 -0
  28. data/doc/api/jquery.tools.min.js +192 -0
  29. data/doc/api/themeswitchertool.js +250 -0
  30. data/doc/features.md +17 -0
  31. data/examples/actor_bunnies.fy +32 -0
  32. data/examples/actors.fy +26 -0
  33. data/examples/actors_primitive.fy +27 -0
  34. data/examples/actors_ring.fy +37 -0
  35. data/examples/armstrong_numbers.fy +1 -1
  36. data/examples/array.fy +7 -9
  37. data/examples/async_send.fy +1 -2
  38. data/examples/blocks.fy +4 -4
  39. data/examples/call_with_receiver.fy +1 -1
  40. data/examples/class.fy +1 -1
  41. data/examples/default_args.fy +4 -1
  42. data/examples/define_methods.fy +2 -2
  43. data/examples/echo.fy +1 -1
  44. data/examples/factorial.fy +1 -1
  45. data/examples/future_composition.fy +2 -2
  46. data/examples/futures.fy +0 -5
  47. data/examples/game_of_life.fy +1 -1
  48. data/examples/person.fy +1 -1
  49. data/lib/argv.fy +7 -2
  50. data/lib/array.fy +109 -42
  51. data/lib/block.fy +39 -14
  52. data/lib/boot.fy +2 -0
  53. data/lib/class.fy +2 -0
  54. data/lib/compiler/ast.fy +2 -1
  55. data/lib/compiler/ast/assign.fy +2 -3
  56. data/lib/compiler/ast/async_send.fy +1 -15
  57. data/lib/compiler/ast/class_def.fy +2 -1
  58. data/lib/compiler/ast/expression_list.fy +4 -5
  59. data/lib/compiler/ast/future_send.fy +1 -10
  60. data/lib/compiler/ast/goto.fy +46 -0
  61. data/lib/compiler/ast/identifier.fy +9 -7
  62. data/lib/compiler/ast/literals.fy +8 -1
  63. data/lib/compiler/ast/match.fy +14 -4
  64. data/lib/compiler/ast/message_send.fy +34 -6
  65. data/lib/compiler/ast/method_def.fy +6 -6
  66. data/lib/compiler/ast/node.fy +3 -3
  67. data/lib/compiler/ast/range.fy +1 -0
  68. data/lib/compiler/ast/script.fy +0 -2
  69. data/lib/compiler/ast/singleton_method_def.fy +2 -4
  70. data/lib/compiler/ast/string_interpolation.fy +17 -0
  71. data/lib/compiler/ast/super.fy +5 -4
  72. data/lib/compiler/ast/try_catch.fy +8 -6
  73. data/lib/compiler/ast/tuple_literal.fy +3 -2
  74. data/lib/compiler/command.fy +0 -1
  75. data/lib/compiler/compiler.fy +1 -5
  76. data/lib/compiler/stages.fy +6 -14
  77. data/lib/documentation.fy +57 -46
  78. data/lib/enumerable.fy +257 -23
  79. data/lib/enumerator.fy +122 -15
  80. data/lib/false_class.fy +10 -1
  81. data/lib/fancy_spec.fy +263 -61
  82. data/lib/fdoc.fy +11 -25
  83. data/lib/fiber.fy +11 -0
  84. data/lib/file.fy +8 -11
  85. data/lib/future.fy +84 -5
  86. data/lib/hash.fy +65 -14
  87. data/lib/integer.fy +35 -0
  88. data/lib/iteration.fy +54 -29
  89. data/lib/message.fy +6 -0
  90. data/lib/method.fy +0 -16
  91. data/lib/nil_class.fy +58 -8
  92. data/lib/number.fy +49 -22
  93. data/lib/object.fy +371 -65
  94. data/lib/package.fy +24 -1
  95. data/lib/package/installer.fy +5 -9
  96. data/lib/package/specification.fy +2 -2
  97. data/lib/parser/ext/lexer.lex +15 -11
  98. data/lib/parser/ext/parser.y +70 -23
  99. data/lib/parser/methods.fy +33 -14
  100. data/lib/proxy.fy +33 -3
  101. data/lib/range.fy +28 -0
  102. data/lib/rbx.fy +3 -1
  103. data/lib/rbx/actor.fy +53 -0
  104. data/lib/rbx/alpha.fy +31 -0
  105. data/lib/rbx/array.fy +21 -12
  106. data/lib/rbx/bignum.fy +6 -2
  107. data/lib/rbx/block.fy +23 -26
  108. data/lib/rbx/class.fy +54 -2
  109. data/lib/rbx/code_loader.fy +8 -4
  110. data/lib/rbx/date.fy +9 -0
  111. data/lib/rbx/directory.fy +18 -0
  112. data/lib/rbx/environment_variables.fy +1 -0
  113. data/lib/rbx/exception.fy +9 -2
  114. data/lib/rbx/fiber.fy +22 -4
  115. data/lib/rbx/file.fy +5 -5
  116. data/lib/rbx/fixnum.fy +5 -0
  117. data/lib/rbx/float.fy +11 -3
  118. data/lib/rbx/hash.fy +31 -16
  119. data/lib/rbx/integer.fy +1 -0
  120. data/lib/rbx/io.fy +17 -7
  121. data/lib/rbx/match_data.fy +15 -4
  122. data/lib/rbx/method.fy +40 -7
  123. data/lib/rbx/name_error.fy +4 -0
  124. data/lib/rbx/object.fy +92 -24
  125. data/lib/rbx/range.fy +20 -6
  126. data/lib/rbx/regexp.fy +11 -3
  127. data/lib/rbx/string.fy +51 -1
  128. data/lib/rbx/stringio.fy +17 -0
  129. data/lib/rbx/symbol.fy +15 -1
  130. data/lib/rbx/system.fy +20 -2
  131. data/lib/rbx/tcp_server.fy +4 -1
  132. data/lib/rbx/tcp_socket.fy +11 -0
  133. data/lib/rbx/time.fy +6 -0
  134. data/lib/rbx/tuple.fy +14 -5
  135. data/lib/set.fy +144 -29
  136. data/lib/stack.fy +42 -11
  137. data/lib/string.fy +118 -8
  138. data/lib/struct.fy +13 -3
  139. data/lib/symbol.fy +21 -2
  140. data/lib/thread_pool.fy +2 -1
  141. data/lib/true_class.fy +45 -7
  142. data/lib/tuple.fy +27 -9
  143. data/lib/version.fy +2 -2
  144. data/ruby_lib/fancy +43 -0
  145. data/ruby_lib/fdoc +23 -0
  146. data/ruby_lib/fspec +3 -0
  147. data/ruby_lib/fyi +3 -0
  148. data/ruby_lib/ifancy +3 -0
  149. data/tests/argv.fy +5 -9
  150. data/tests/array.fy +323 -196
  151. data/tests/assignment.fy +29 -29
  152. data/tests/block.fy +72 -59
  153. data/tests/class.fy +227 -138
  154. data/tests/control_flow.fy +83 -51
  155. data/tests/documentation.fy +8 -8
  156. data/tests/enumerable.fy +8 -0
  157. data/tests/enumerator.fy +47 -29
  158. data/tests/exception.fy +49 -32
  159. data/tests/file.fy +28 -28
  160. data/tests/fixnum.fy +170 -0
  161. data/tests/future.fy +24 -7
  162. data/tests/hash.fy +55 -38
  163. data/tests/method.fy +50 -43
  164. data/tests/nil_class.fy +37 -37
  165. data/tests/object.fy +152 -70
  166. data/tests/pattern_matching.fy +67 -31
  167. data/tests/range.fy +6 -6
  168. data/tests/set.fy +101 -4
  169. data/tests/stack.fy +14 -5
  170. data/tests/string.fy +115 -61
  171. data/tests/stringio.fy +18 -0
  172. data/tests/struct.fy +27 -0
  173. data/tests/symbol.fy +19 -6
  174. data/tests/true_class.fy +34 -34
  175. data/tests/tuple.fy +30 -12
  176. metadata +103 -81
  177. data/boot/rbx-compiler/compiler/ast/require.rb +0 -20
  178. data/examples/actor.fy +0 -37
  179. data/examples/curl_async.fy +0 -37
  180. data/lib/compiler/ast/require.fy +0 -15
  181. data/tests/number.fy +0 -135
  182. data/tests/parsing/sexp.fy +0 -50
@@ -96,6 +96,11 @@ class Fancy
96
96
  AST::MessageSend.new(line, receiver, operator, args)
97
97
  end
98
98
 
99
+ def oper_send_multi(line, receiver, operator, *arguments)
100
+ args = AST::MessageArgs.new(line, *arguments)
101
+ AST::MessageSend.new(line, receiver, operator, args)
102
+ end
103
+
99
104
  def assignment(line, identifier, value)
100
105
  AST::Assignment.new(line, identifier, value)
101
106
  end
@@ -122,11 +127,21 @@ class Fancy
122
127
  AST::MethodDef.new(line, operator, args, method_body, access)
123
128
  end
124
129
 
130
+ def operator_def_multi(line, operator, method_body, access = :public, *parameters)
131
+ args = AST::MethodArgs.new(line, *parameters.map(&:identifier))
132
+ AST::MethodDef.new(line, operator, args, method_body, access)
133
+ end
134
+
125
135
  def sin_operator_def(line, identifier, operator, parameter, method_body, access = :public)
126
136
  args = AST::MethodArgs.new(line, parameter.identifier)
127
137
  AST::SingletonMethodDef.new(line, identifier, operator, args, method_body, access)
128
138
  end
129
139
 
140
+ def sin_operator_def_multi(line, identifier, operator, method_body, access = :public, *parameters)
141
+ args = AST::MethodArgs.new(line, *parameters.map(&:identifier))
142
+ AST::SingletonMethodDef.new(line, identifier, operator, args, method_body, access)
143
+ end
144
+
130
145
  def method_def_no_args(line, method_ident, method_body, access = :public)
131
146
  args = AST::MethodArgs.new(line)
132
147
  AST::MethodDef.new(line, method_ident, args, method_body, access)
@@ -260,7 +275,7 @@ class Fancy
260
275
  expr_list
261
276
  end
262
277
 
263
- def class_def(line, name, parent, body)
278
+ def class_def(line, name, parent, body = nil)
264
279
  AST::ClassDef.new(line, name, parent, body)
265
280
  end
266
281
 
@@ -325,10 +340,6 @@ class Fancy
325
340
  AST::RegexLiteral.new(line, regexp_str, 0)
326
341
  end
327
342
 
328
- def require_stmt(line, identifier)
329
- AST::Require.new(line, identifier)
330
- end
331
-
332
343
  def return_stmt(line, expr = nil)
333
344
  expr ||= nil_literal(expr)
334
345
  AST::Return.new(line, expr)
@@ -28,8 +28,8 @@ extern char *yytext;
28
28
  %token RCURLY
29
29
  %token LBRACKET
30
30
  %token RBRACKET
31
- %token LHASH
32
- %token RHASH
31
+ %token LEFTHASH
32
+ %token RIGHTHASH
33
33
  %token STAB
34
34
  %token ARROW
35
35
  %token THIN_ARROW
@@ -39,14 +39,11 @@ extern char *yytext;
39
39
  %token COLON
40
40
  %token RETURN_LOCAL
41
41
  %token RETURN
42
- %token REQUIRE
43
42
  %token TRY
44
43
  %token CATCH
45
44
  %token FINALLY
46
45
  %token RETRY
47
46
  %token SUPER
48
- %token PRIVATE
49
- %token PROTECTED
50
47
  %token CLASS
51
48
  %token DEF
52
49
  %token DOT
@@ -110,7 +107,6 @@ extern char *yytext;
110
107
  %type <object> identifier_list
111
108
  %type <object> return_local_statement
112
109
  %type <object> return_statement
113
- %type <object> require_statement
114
110
 
115
111
  %type <object> def
116
112
 
@@ -201,7 +197,6 @@ expression_block: LCURLY space expression_list space RCURLY {
201
197
  statement: assignment
202
198
  | return_local_statement
203
199
  | return_statement
204
- | require_statement
205
200
  ;
206
201
 
207
202
  exp: method_def
@@ -284,14 +279,6 @@ return_statement: RETURN exp {
284
279
  }
285
280
  ;
286
281
 
287
- require_statement: REQUIRE string_literal {
288
- $$ = rb_funcall(self, rb_intern("require_stmt"), 2, INT2NUM(yylineno), $2);
289
- }
290
- | REQUIRE any_identifier {
291
- $$ = rb_funcall(self, rb_intern("require_stmt"), 2, INT2NUM(yylineno), $2);
292
- }
293
- ;
294
-
295
282
  class_def: class_no_super
296
283
  | class_super
297
284
  ;
@@ -304,19 +291,23 @@ const_identifier: constant {
304
291
  }
305
292
  ;
306
293
 
307
- def: DEF PRIVATE { $$ = rb_intern("private"); }
308
- | DEF PROTECTED { $$ = rb_intern("protected"); }
309
- | DEF { $$ = rb_intern("public"); }
294
+ def: DEF { $$ = rb_intern("public"); }
310
295
  ;
311
296
 
312
297
  class_no_super: CLASS const_identifier expression_block {
313
298
  $$ = rb_funcall(self, rb_intern("class_def"), 4, INT2NUM(yylineno), $2, Qnil, $3);
314
299
  }
300
+ | CLASS const_identifier {
301
+ $$ = rb_funcall(self, rb_intern("class_def"), 3, INT2NUM(yylineno), $2, Qnil);
302
+ }
315
303
  ;
316
304
 
317
305
  class_super: CLASS const_identifier COLON const_identifier expression_block {
318
306
  $$ = rb_funcall(self, rb_intern("class_def"), 4, INT2NUM(yylineno), $2, $4, $5);
319
307
  }
308
+ | CLASS const_identifier COLON const_identifier {
309
+ $$ = rb_funcall(self, rb_intern("class_def"), 3, INT2NUM(yylineno), $2, $4);
310
+ }
320
311
  ;
321
312
 
322
313
  method_def: method_w_args
@@ -359,40 +350,60 @@ method_args_default: method_arg_default {
359
350
  method_w_args: def method_args expression_block {
360
351
  $$ = rb_funcall(self, rb_intern("method_def_expand"), 4, INT2NUM(yylineno), $2, $3, $1);
361
352
  }
353
+ | def method_args {
354
+ $$ = rb_funcall(self, rb_intern("method_def_expand"), 4, INT2NUM(yylineno), $2, Qnil, $1);
355
+ }
362
356
  ;
363
357
 
364
358
 
365
359
  method_no_args: def identifier expression_block {
366
360
  $$ = rb_funcall(self, rb_intern("method_def_no_args"), 4, INT2NUM(yylineno), $2, $3, $1);
367
361
  }
362
+ | def identifier {
363
+ $$ = rb_funcall(self, rb_intern("method_def_no_args"), 4, INT2NUM(yylineno), $2, Qnil, $1);
364
+ }
368
365
  ;
369
366
 
370
367
 
371
368
  class_method_w_args: def any_identifier method_args expression_block {
372
369
  $$ = rb_funcall(self, rb_intern("sin_method_def_expand"), 5, INT2NUM(yylineno), $2, $3, $4, $1);
373
370
  }
371
+ | def any_identifier method_args {
372
+ $$ = rb_funcall(self, rb_intern("sin_method_def_expand"), 5, INT2NUM(yylineno), $2, $3, Qnil, $1);
373
+ }
374
374
  ;
375
375
 
376
376
  class_method_no_args: def any_identifier identifier expression_block {
377
377
  $$ = rb_funcall(self, rb_intern("sin_method_def_no_args"), 5, INT2NUM(yylineno), $2, $3, $4, $1);
378
378
  }
379
+ | def any_identifier identifier {
380
+ $$ = rb_funcall(self, rb_intern("sin_method_def_no_args"), 5, INT2NUM(yylineno), $2, $3, Qnil, $1);
381
+ }
379
382
  ;
380
383
 
381
384
  operator_def: def operator identifier expression_block {
382
385
  $$ = rb_funcall(self, rb_intern("operator_def"), 5, INT2NUM(yylineno), $2, $3, $4, $1);
383
386
  }
384
- | def LBRACKET RBRACKET identifier expression_block {
387
+ | def LBRACKET identifier RBRACKET expression_block {
385
388
  $$ = rb_funcall(self, rb_intern("operator_def"), 5,
386
- INT2NUM(yylineno), fy_terminal_node_from(self, "identifier", "[]"), $4, $5, $1);
389
+ INT2NUM(yylineno), fy_terminal_node_from(self, "identifier", "[]"), $3, $5, $1);
390
+ }
391
+ | def LBRACKET identifier RBRACKET COLON identifier expression_block {
392
+ $$ = rb_funcall(self, rb_intern("operator_def_multi"), 6,
393
+ INT2NUM(yylineno), fy_terminal_node_from(self, "identifier", "[]:"), $7, $1, $3, $6);
387
394
  }
388
395
  ;
389
396
 
390
397
  class_operator_def: def any_identifier operator identifier expression_block {
391
398
  $$ = rb_funcall(self, rb_intern("sin_operator_def"), 6, INT2NUM(yylineno), $2, $3, $4, $5, $1);
392
399
  }
393
- | def any_identifier LBRACKET RBRACKET identifier expression_block {
400
+ | def any_identifier LBRACKET identifier RBRACKET expression_block {
394
401
  $$ = rb_funcall(self, rb_intern("sin_operator_def"), 6,
395
- INT2NUM(yylineno), $2, fy_terminal_node_from(self, "identifier", "[]"), $5, $6, $1);
402
+ INT2NUM(yylineno), $2, fy_terminal_node_from(self, "identifier", "[]"), $4, $6, $1);
403
+ }
404
+ | def any_identifier LBRACKET identifier RBRACKET COLON identifier expression_block {
405
+ $$ = rb_funcall(self, rb_intern("sin_operator_def_multi"), 7,
406
+ INT2NUM(yylineno), $2, fy_terminal_node_from(self, "identifier", "[]"), $8, $1, $4, $7);
396
407
  }
397
408
  ;
398
409
 
@@ -457,6 +468,10 @@ operator_send: exp operator arg_exp {
457
468
  $$ = rb_funcall(self, rb_intern("oper_send_basic"), 4,
458
469
  INT2NUM(yylineno), $1, fy_terminal_node_from(self, "identifier", "[]"), $3);
459
470
  }
471
+ | exp LBRACKET exp RBRACKET COLON arg_exp {
472
+ $$ = rb_funcall(self, rb_intern("oper_send_multi"), 4,
473
+ INT2NUM(yylineno), $1, fy_terminal_node_from(self, "identifier", "[]"), $3, $6);
474
+ }
460
475
  ;
461
476
 
462
477
  ruby_oper_send: exp ruby_oper_open ruby_args {
@@ -617,10 +632,10 @@ empty_array: LBRACKET space RBRACKET {
617
632
  }
618
633
  ;
619
634
 
620
- hash_literal: LHASH space key_value_list space RHASH {
635
+ hash_literal: LEFTHASH space key_value_list space RIGHTHASH {
621
636
  $$ = rb_funcall(self, rb_intern("hash_literal"), 2, INT2NUM(yylineno), $3);
622
637
  }
623
- | LHASH space RHASH {
638
+ | LEFTHASH space RIGHTHASH {
624
639
  $$ = rb_funcall(self, rb_intern("hash_literal"), 1, INT2NUM(yylineno));
625
640
  }
626
641
  ;
@@ -4,7 +4,7 @@
4
4
  position: absolute;
5
5
  top: 0px;
6
6
  left: 0px;
7
- width: 100%;
7
+ width: 95%;
8
8
  height: 100%;
9
9
  }
10
10
  .sidebar {
@@ -1 +1 @@
1
- (function() { fancy.fdoc({title:"Fancy Documentation", methods:{"System#do:":{doc:"<p>Runs the given string as a system() command.</p>\n\n<div class=\"doctags\"></div>\n\n", args:["command_str"]}, "Fancy Package Specification#add_dependency:":{doc:"<p>Forward to message add_dependency:version:</p>\n\n<div class=\"doctags\"></div>\n\n", args:["name"]}, "StandardError#initialize:":{doc:"<p>Creates a new Exception with a given message.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">msg</code> </label><div>Message (<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>) for the Exception.</div></div></div>\n\n", args:["msg"]}, "String#:raise!":{doc:"<p>Raises a new StdError with self as the message.</p>\n\n<div class=\"doctags\"></div>\n\n", args:[]}, "Object#for_options:do:":{doc:"<p>Runs a given block if any of the given options is in ARGV.</p>\n\n<div class=\"doctags\"></div>\n\n", args:["op_names", "block"]}, "Object#for_option:do:":{doc:"<p>Runs a given block if an option is in ARGV.</p>\n\n<div class=\"doctags\"></div>\n\n", args:["op_name", "block"]}, "System#pipe:":{doc:"<p>Runs the given string as a popen() call and returns a IO handle\nthat can be read from</p>\n\n<div class=\"doctags\"></div>\n\n", args:["command_str"]}, "StandardError#:raise!":{doc:"<p>Raises (throws) an Exception to be caught somewhere up the\ncallstack.</p>\n\n<div class=\"doctags\"></div>\n\n", args:[]}, "System#piperead:":{doc:"<p>Runs the given string as a popen() call and returns the output\nof the call as a string.</p>\n\n<div class=\"doctags\"></div>\n\n", args:["command_str"]}, "System#:exit":{doc:"<p>Exit the running Fancy process.</p>\n\n<div class=\"doctags\"></div>\n\n", args:[]}, "Fancy FDoc JSON#write:":{doc:"<p>Forward to message write:call:</p>\n\n<div class=\"doctags\"></div>\n\n", args:["filename"]}, "Fancy Package Specification#add_ruby_dependency:":{doc:"<p>Forward to message add_ruby_dependency:version:</p>\n\n<div class=\"doctags\"></div>\n\n", args:["gem_name"]}, "System#sleep:":{doc:"<p>Sets the Fancy process for a given amount of milliseconds to sleep.</p>\n\n<div class=\"doctags\"></div>\n\n", args:["n_ms"]}, "StandardError#:initialize":{doc:"<p>Creates a new Exception with an empty message.</p>\n\n<div class=\"doctags\"></div>\n\n", args:[]}}, date:"Wed Feb 16 03:13:08 -0800 2011", classes:{"File":{doc:"<p>Instances of File represent files in the filesystem of the operating\nsystem on which Fancy is running.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"lchown":{file:"kernel/common/file.rb", lines:[245, 245]}, "split":{file:"kernel/common/file.rb", lines:[765, 765]}, "delete":{file:"kernel/common/file.rb", lines:[859, 859]}, "modes_str:":{doc:"<p>Returns the appropriate <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of the <code data-lang=\"fancy\">modes_arr</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> that represents the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modifiers, as used by Ruby.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>Array of symbols that describe the desired operations to perform.</div></div></div>\n\n", arg:["modes_arr"], file:"lib/rbx/file.fy", lines:[93, 93]}, "link":{file:"kernel/common/file.rb", lines:[641, 641]}, "extname":{file:"kernel/common/file.rb", lines:[428, 428]}, "dirname":{file:"kernel/common/file.rb", lines:[293, 293]}, "read:":{doc:"<p>Reads all the contens (in ASCII mode) of a given file and returns\nthem as an Array of lines being read.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["filename"], file:"lib/file.fy", lines:[24, 24]}, "delete:":{doc:"<p>Deletes a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> with a given <code data-lang=\"fancy\">filename</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Path to <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> to be deleted.</div></div></div>\n\n", arg:["filename"], file:"lib/rbx/file.fy", lines:[112, 112]}, "symlink?":{file:"kernel/common/file.rb", lines:[795, 795]}, "chmod":{file:"kernel/common/file.rb", lines:[197, 197]}, "directory?":{file:"kernel/common/file.rb", lines:[266, 266]}, "file?":{file:"kernel/common/file.rb", lines:[456, 456]}, "lchmod":{file:"kernel/common/file.rb", lines:[212, 212]}, "truncate":{file:"kernel/common/file.rb", lines:[820, 820]}, "symlink":{file:"kernel/common/file.rb", lines:[784, 784]}, "rename:to:":{doc:"<p>Renames a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> on the filesystem.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">old_name</code> </label><div>Path to <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> to rename.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">new_name</code> </label><div>Path to new filename.</div></div></div>\n\n", arg:["old_name", "new_name"], file:"lib/rbx/file.fy", lines:[133, 133]}, "size?":{file:"kernel/common/file.rb", lines:[739, 739]}, "fnmatch?":{file:"kernel/common/file.rb", lines:[520, 520]}, "basename":{file:"kernel/common/file.rb", lines:[119, 119]}, "umask":{file:"kernel/common/file.rb", lines:[844, 844]}, "socket?":{file:"kernel/common/file.rb", lines:[756, 756]}, "writable_real?":{file:"kernel/common/file.rb", lines:[904, 904]}, "open:modes:":{doc:"<p>Similar to open:modes:with: but takes no <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> argument to be\ncalled with the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> instance.\nReturns the opened <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> instead and expects the caller to <code data-lang=\"fancy\">close</code> it manually.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Filename to open/create.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> instance that represents the opened <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>Array of symbols that describe the desired operations to perform.</div></div></div>\n\n", arg:["filename", "modes_arr"], file:"lib/rbx/file.fy", lines:[75, 75]}, "setuid?":{file:"kernel/common/file.rb", lines:[934, 934]}, "unlink":{file:"kernel/common/file.rb", lines:[859, 859]}, "exists?:":{doc:"<p>Indicates if the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> with the given <code data-lang=\"fancy\">filename</code> exists.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Path to file to check for existance.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> exists, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["filename"], file:"lib/rbx/file.fy", lines:[48, 48]}, "join":{file:"kernel/common/file.rb", lines:[580, 580]}, "size":{file:"kernel/common/file.rb", lines:[726, 726]}, "sticky?":{file:"kernel/common/file.rb", lines:[942, 942]}, "identical?":{file:"kernel/common/file.rb", lines:[564, 564]}, "lstat":{file:"kernel/common/file.rb", lines:[658, 658]}, "exists?":{file:"kernel/common/file.rb", lines:[344, 344]}, "chown":{file:"kernel/common/file.rb", lines:[232, 232]}, "fnmatch":{file:"kernel/common/file.rb", lines:[520, 520]}, "syscopy":{file:"kernel/common/file.rb", lines:[803, 803]}, "utime":{file:"kernel/common/file.rb", lines:[875, 875]}, "grpowned?":{file:"kernel/common/file.rb", lines:[545, 545]}, "ftype":{file:"kernel/common/file.rb", lines:[536, 536]}, "clamp_short":{file:"kernel/common/file.rb", lines:[96, 96]}, "owned?":{file:"kernel/common/file.rb", lines:[951, 951]}, "pipe?":{file:"kernel/common/file.rb", lines:[672, 672]}, "last_nonslash":{file:"kernel/common/file.rb", lines:[272, 272]}, "rename":{file:"kernel/common/file.rb", lines:[715, 715]}, "open:modes:with:":{doc:"<p>Opens a File with a given <code data-lang=\"fancy\">filename</code>, a <code data-lang=\"fancy\">modes_arr</code> (<code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>) and a <code data-lang=\"fancy\">block</code>.</p>\n\n<p>E.g. to open a File with read access and read all lines and print them to STDOUT:</p>\n\n<p> File open: \"foo.txt\" modes: [:read] with: |f| {</p>\n\n<pre><code>{ f eof? } while_false: {\n f readln println\n}\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets called with the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> object that has been opened.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Filename to open/create.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>Array of symbols that describe the desired operations to perform.</div></div></div>\n\n", arg:["filename", "modes_arr", "block"], file:"lib/rbx/file.fy", lines:[32, 32]}, "executable?":{file:"kernel/common/file.rb", lines:[329, 329]}, "setgid?":{file:"kernel/common/file.rb", lines:[926, 926]}, "__class_init__":{file:"lib/file.fy", lines:[5, 5]}, "directory?:":{doc:"<p>Indicates, if a given <code data-lang=\"fancy\">path</code> refers to a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">path</code> </label><div>Path to check if it's a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if the <code data-lang=\"fancy\">path</code> refers to a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["path"], file:"lib/rbx/file.fy", lines:[123, 123]}, "chardev?":{file:"kernel/common/file.rb", lines:[184, 184]}, "readable_real?":{file:"kernel/common/file.rb", lines:[688, 688]}, "to_ast":{file:"lib/melbourne.rb", lines:[25, 25]}, "writable?":{file:"kernel/common/file.rb", lines:[896, 896]}, "expand_path":{file:"kernel/common/file.rb", lines:[360, 360]}, "executable_real?":{file:"kernel/common/file.rb", lines:[337, 337]}, "to_sexp":{file:"lib/melbourne.rb", lines:[29, 29]}, "readlink":{file:"kernel/common/file.rb", lines:[699, 699]}, "atime":{file:"kernel/common/file.rb", lines:[106, 106]}, "mtime":{file:"kernel/common/file.rb", lines:[666, 666]}, "blockdev?":{file:"kernel/common/file.rb", lines:[177, 177]}, "ctime":{file:"kernel/common/file.rb", lines:[258, 258]}, "stat":{file:"kernel/common/file.rb", lines:[774, 774]}, "zero?":{file:"kernel/common/file.rb", lines:[911, 911]}, "exist?":{file:"kernel/common/file.rb", lines:[344, 344]}, "readable?":{file:"kernel/common/file.rb", lines:[680, 680]}}, ancestors:["File", "Enumerable", "IO", "Unmarshalable", "File Constants", "Object", "Kernel"], instance_methods:{"lstat":{file:"kernel/common/file.rb", lines:[988, 988]}, ":newline":{doc:"<p>Writes a newline character to the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/file.fy", lines:[180, 180]}, ":eof?":{file:"kernel/common/io.rb", lines:[859, 859]}, "writeln:":{doc:"<p>Writes a given argument as a String followed by a newline into the\nFile.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["x"], file:"lib/file.fy", lines:[40, 40]}, "chown":{file:"kernel/common/file.rb", lines:[974, 974]}, ":modes":{doc:"<p>Returns the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], file:"lib/rbx/file.fy", lines:[143, 143]}, ":open?":{doc:"<p>Indicates, if a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> is opened.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> opened, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], file:"lib/rbx/file.fy", lines:[163, 163]}, "modes:":{doc:"<p>Sets the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>New <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:["modes_arr"], file:"lib/rbx/file.fy", lines:[153, 153]}, "atime":{file:"kernel/common/file.rb", lines:[961, 961]}, "mtime":{file:"kernel/common/file.rb", lines:[992, 992]}, "chmod":{file:"kernel/common/file.rb", lines:[970, 970]}, "write:":{doc:"<p>Writes a given <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> to a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">str</code> </label><div>String to be written to a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</div></div></div>\n\n", arg:["str"], file:"lib/rbx/file.fy", lines:[174, 174]}, "ctime":{file:"kernel/common/file.rb", lines:[978, 978]}, "println:":{doc:"<p>Same as File#writeln:.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["x"], file:"lib/file.fy", lines:[53, 53]}, ":closed?":{file:"kernel/common/io.rb", lines:[760, 760]}, "flock":{file:"kernel/common/file.rb", lines:[982, 982]}, "inspect":{file:"kernel/common/file.rb", lines:[1011, 1011]}, "stat":{file:"kernel/common/file.rb", lines:[996, 996]}, "truncate":{file:"kernel/common/file.rb", lines:[1000, 1000]}, "path":{}, "print:":{doc:"<p>Same as File#write:.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["x"], file:"lib/file.fy", lines:[47, 47]}, "reopen":{file:"kernel/common/file.rb", lines:[965, 965]}, ":close":{doc:"<p>Closes an opened <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/file.fy", lines:[61, 61]}, ":directory?":{doc:"<p>Indicates, if a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> is a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> is a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], file:"lib/rbx/file.fy", lines:[189, 189]}}}, "Set":{doc:"<p>A simple Set data structure class.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/set.fy", lines:[2, 2]}, ":[]":{doc:"<p>Initialize a new Array with a given Array of values.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["arr"], file:"lib/set.fy", lines:[26, 26]}}, ancestors:["Set", "FancyEnumerable", "Object", "Object", "Kernel"], instance_methods:{"initialize:":{doc:"<p>Initialize a new Set with a given Array of values.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["arr"], file:"lib/set.fy", lines:[9, 9]}, ":values":{}, ":initialize":{doc:"<p>Initialize a new empty Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/set.fy", lines:[14, 14]}, "unknown_message:with_params:":{file:"lib/set.fy", lines:[45, 45]}, ":==":{doc:"<p>Indicates, if two Sets are equal.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/set.fy", lines:[22, 22]}, "each:":{doc:"<p>Calls a given Block for each element of the Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/set.fy", lines:[41, 41]}, "includes?:":{doc:"<p>Indicates, if the Set includes a given value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["value"], file:"lib/set.fy", lines:[36, 36]}, ":to_s":{doc:"<p>Returns a String representation of a Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/set.fy", lines:[54, 54]}, ":inspect":{doc:"<p>Returns a detailed String representation of a Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/set.fy", lines:[59, 59]}, ":<<":{doc:"<p>Insert a value into the Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["value"], file:"lib/set.fy", lines:[31, 31]}, "method_missing":{}}}, "Fancy Package":{doc:"<p>The Fancy Package System.</p>\n\n<p>This class is used for installing and uninstalling fancy packages on\nthe system.</p>\n\n<p>Example:</p>\n\n<pre><code>$ fancy install bakkdoor/mongo.fy\n</code></pre>\n\n<p>Will install the mongo.fy package from http://github.com/bakkdoor/mongo.fy\nin the latest released version or get the current HEAD (master\nbranch) revision.</p>\n\n<p>You can then load the package in your source file via</p>\n\n<pre><code>require: \"mongo.fy\"\n</code></pre>\n\n<div class=\"doctags\"></div>\n\n", methods:{":add_to_loadpath":{doc:"<p>Adds the Fancy Package install dir to the loadpath so you can\neasily <code data-lang=\"fancy\">require:</code> packages into your code.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/package.fy", lines:[66, 66]}, "uninstall:":{file:"lib/package.fy", lines:[41, 41]}, ":list_packages":{file:"lib/package.fy", lines:[45, 45]}, "__class_init__":{file:"lib/package.fy", lines:[25, 25]}, ":package_list_file":{file:"lib/package.fy", lines:[57, 57]}, ":root_dir":{file:"lib/package.fy", lines:[49, 49]}, "install:":{doc:"<p>Installs a package with a given name.\nExpects package_name to be a string in the form of:</p>\n\n<pre><code>user/repo\n</code></pre>\n\n<p>Which would get the package code from github.com/user/repo</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["package_name"], file:"lib/package.fy", lines:[37, 37]}}, ancestors:["Fancy Package", "Object", "Kernel"], instance_methods:{}}, "Fancy Package RubyDependency":{doc:"<p>Same as <code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package\" class=\"class-ref selectable\">Package</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package Dependency\" class=\"class-ref selectable\">Dependency</code>, just for rubygem packages.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"new:version:":{}, "__class_init__":{file:"lib/package/dependency.fy", lines:[17, 17]}}, ancestors:["Fancy Package RubyDependency", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/package/dependency.fy", lines:[22, 22]}, "initialize:version:":{file:"lib/package/dependency.fy", lines:[null, null]}, ":gem_name":{}, ":version":{}}}, "Number":{doc:"<p>Number is a mixin-class for all number values (integer &amp; floats for\nnow).</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/number.fy", lines:[5, 5]}}, ancestors:["Number", "Object", "Kernel"], instance_methods:{":negate":{doc:"<p>Negates a Number (-1 becomes 1 and vice versa).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[52, 52]}, ":abs":{doc:"<p>Returns the absolute (positive) value of a Number.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[47, 47]}, ":even?":{doc:"<p>Indicates, if a Number is even.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[58, 58]}, ":to_num":{file:"lib/number.fy", lines:[68, 68]}, ":odd?":{doc:"<p>Indicates, if a Number is odd.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[64, 64]}, "downto:":{file:"lib/number.fy", lines:[18, 18]}, "upto:":{file:"lib/number.fy", lines:[8, 8]}, ":squared":{doc:"<p>Returns the square of a Number.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[30, 30]}, ":doubled":{doc:"<p>Returns the double value of a Number.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[36, 36]}}}, "Array":{doc:"<p>Array class.\nArrays are dynamically resizable containers with a constant-time\nindex-based access to members.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"allocate":{file:"kernel/bootstrap/array.rb", lines:[11, 11]}, "yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, "new:":{doc:"<p>Creates a new Array with a given size (default value is nil).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["size"], file:"lib/rbx/array.fy", lines:[22, 22]}, "[]":{file:"kernel/common/array.rb", lines:[22, 22]}, "coerce_into_array":{file:"kernel/bootstrap/array.rb", lines:[20, 20]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[104, 104]}, ":===":{file:"lib/array.fy", lines:[223, 223]}, "new:with:":{doc:"<p>Creates a new Array with a given size and default-value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["size", "default"], file:"lib/rbx/array.fy", lines:[16, 16]}}, ancestors:["Array", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], instance_methods:{"remove_if:":{doc:"<p>Like <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"remove:\" data-owner-class=\"Array\" class=\"singleton-method-ref selectable\">remove:</code>, but taking a condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.\nRemoves all elements that meet the given condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, with all elements removed for which <code data-lang=\"fancy\">condition</code> yields true.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (or <code data-lang=\"fancy\">Callable</code>) that indicates, if an element should be removed from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["condition"], file:"lib/array.fy", lines:[181, 181]}, "tuple=":{}, "to_tuple":{file:"kernel/bootstrap/array.rb", lines:[108, 108]}, "delete":{file:"kernel/common/array.rb", lines:[606, 606]}, "fill":{file:"kernel/common/array.rb", lines:[758, 758]}, "select":{file:"kernel/common/enumerable.rb", lines:[434, 434]}, "map!":{file:"kernel/bootstrap/array.rb", lines:[97, 97]}, "sort":{file:"kernel/common/array.rb", lines:[1537, 1537]}, "hash":{file:"kernel/common/array.rb", lines:[863, 863]}, "indices_of:":{doc:"<p>Returns an Array of all indices of this item. Empty Array if item does not occur.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item/Value for which a list of indices is requested within an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all indices for a given value within an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> (possibly empty).</div></div></div>\n\n", arg:["item"], file:"lib/rbx/array.fy", lines:[143, 143]}, "each:":{doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Return value of calling <code data-lang=\"fancy\">block</code> on the last item in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[57, 57]}, "reject:":{doc:"<p>Returns a new Array with all the elements which yield nil or false\nwhen called with the given Block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[243, 243]}, "join:":{doc:"<p>Joins all elements in the Array by a given String.\nE.g.: [1,2,3] join: ', ' # => '1,2,3'</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["join_str"], file:"lib/rbx/array.fy", lines:[257, 257]}, "remove_at:":{doc:"<p>Removes an element at a given index.\nIf given an Array of indices, removes all the elements with these indices.\nReturns the deleted object if an index was given, the last deleted object for an Array given.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["index"], file:"lib/rbx/array.fy", lines:[85, 85]}, "&":{file:"kernel/common/array.rb", lines:[364, 364]}, "permutation":{file:"kernel/common/array.rb", lines:[1195, 1195]}, "start":{}, "unshift":{file:"kernel/common/array.rb", lines:[1707, 1707]}, "flatten":{file:"kernel/common/array.rb", lines:[845, 845]}, "insert":{file:"kernel/common/array.rb", lines:[980, 980]}, "uniq":{file:"kernel/common/array.rb", lines:[1618, 1618]}, "sort_inplace":{file:"kernel/common/array.rb", lines:[1542, 1542]}, "collect":{file:"kernel/bootstrap/array.rb", lines:[87, 87]}, "reverse_each":{file:"kernel/common/array.rb", lines:[1385, 1385]}, "collect!":{file:"kernel/bootstrap/array.rb", lines:[97, 97]}, "inspect":{file:"kernel/common/array.rb", lines:[998, 998]}, "to_s":{file:"kernel/common/array.rb", lines:[1590, 1590]}, "new_range":{file:"kernel/bootstrap/array.rb", lines:[16, 16]}, ":reverse!":{file:"kernel/common/array.rb", lines:[1373, 1373]}, "join":{file:"kernel/common/array.rb", lines:[1016, 1016]}, "|":{file:"kernel/common/array.rb", lines:[377, 377]}, "rindex":{file:"kernel/common/array.rb", lines:[1404, 1404]}, "size":{}, "total=":{}, "replace":{file:"kernel/common/array.rb", lines:[1354, 1354]}, ":join":{doc:"<p>Joins all elements with the empty <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<pre><code>[\"hello\", \"world\", \"!\"] join # =&gt; \"hello, world!\"\n</code></pre>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Elements of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> joined to a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div></div>\n\n", arg:[], file:"lib/array.fy", lines:[134, 134]}, "first":{file:"kernel/common/array.rb", lines:[834, 834]}, ":second":{doc:"<p>Returns the second element in the Array</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[33, 33]}, ":shuffle":{file:"kernel/common/array.rb", lines:[1517, 1517]}, "include?":{file:"kernel/common/array.rb", lines:[929, 929]}, ":clear":{file:"kernel/common/array.rb", lines:[517, 517]}, "uniq!":{file:"kernel/common/array.rb", lines:[1623, 1623]}, "[]=":{file:"kernel/common/array.rb", lines:[187, 187]}, ":compact!":{doc:"<p>Removes all nil-value elements in place.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:[], file:"lib/array.fy", lines:[156, 156]}, "__matches_when__":{file:"kernel/bootstrap/array.rb", lines:[80, 80]}, "==":{file:"kernel/common/array.rb", lines:[469, 469]}, "cycle":{file:"kernel/common/array.rb", lines:[585, 585]}, "pop":{file:"kernel/common/array.rb", lines:[1248, 1248]}, ":last":{file:"kernel/common/array.rb", lines:[1066, 1066]}, ":product":{doc:"<p>Calculates the product of all the elements in the Enumerable\n(assuming them to be Numbers (implementing '+' &amp; '*')).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/array.fy", lines:[273, 273]}, "at:":{doc:"<p>Returns the element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> at a given index.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index for value to retrieve.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value with the given index (if available), or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["idx"], file:"lib/rbx/array.fy", lines:[97, 97]}, "rassoc":{file:"kernel/common/array.rb", lines:[1321, 1321]}, ":pop":{file:"kernel/common/array.rb", lines:[1248, 1248]}, ":indices":{doc:"<p>Returns an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the indices of an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[219, 219]}, "at:put:":{doc:"<p>Inserts a given object at a given index (position) in the Array.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index to set a value for.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Value (object) to be set at the given index.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">obj</div></div></div>\n\n\n<p></code></p>\n", arg:["idx", "obj"], file:"lib/rbx/array.fy", lines:[109, 109]}, "to_ary":{file:"kernel/common/array.rb", lines:[1584, 1584]}, "concat":{file:"kernel/common/array.rb", lines:[573, 573]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[147, 147]}, ":rest":{doc:"<p>Returns all elements except the first one as a new Array.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[48, 48]}, ":println":{doc:"<p>Prints each element on a seperate line.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[189, 189]}, "find:":{doc:"<p>Returns the item, if it's in the Array or nil (if not found).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code> / Element to find in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">item</code> if, it's found in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>, otherwise <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["item"], file:"lib/array.fy", lines:[81, 81]}, "find_by:":{doc:"<p>Like find: but takes a block that gets called with each element to find it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The first element, for which <code data-lang=\"fancy\">block</code> yields <code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:["block"], file:"lib/array.fy", lines:[91, 91]}, "empty?":{file:"kernel/common/array.rb", lines:[716, 716]}, ":size":{}, "any?:":{doc:"<p>Takes condition-block and returns <code data-lang=\"fancy\">true</code> if any element meets it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Predicate <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element until it returns <code data-lang=\"fancy\">true</code> for any one of them.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if any element in <code data-lang=\"fancy\">self</code> yields <code data-lang=\"fancy\">true</code> for <code data-lang=\"fancy\">block</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[191, 191]}, ":*":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> that contains the elements of self num times\nin a row.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["num"], file:"lib/array.fy", lines:[203, 203]}, "reverse":{file:"kernel/common/array.rb", lines:[1367, 1367]}, "reject!":{file:"kernel/common/array.rb", lines:[1341, 1341]}, "at":{file:"kernel/common/array.rb", lines:[501, 501]}, ":clone":{doc:"<p>Clones (shallow copy) the Array.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/array.fy", lines:[42, 42]}, "reject!:":{doc:"<p>Same as Array#reject: but doing so in-place (destructive).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[249, 249]}, ":[]":{doc:"<p>Given an Array of 2 Numbers, it returns the sub-array between the\ngiven indices.\nIf given a Number, returns the element at that index.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["index"], file:"lib/array.fy", lines:[23, 23]}, ":<<":{file:"kernel/common/array.rb", lines:[354, 354]}, "select:":{doc:"<p>Returns a new Array with all the elements in self that yield a\ntrue-ish value when called with the given Block.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Predicate <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be used as filter.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the elements for which <code data-lang=\"fancy\">block</code> doesn't yield <code data-lang=\"fancy\">false</code> or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[212, 212]}, ":third":{doc:"<p>Returns the third element in the Array</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[38, 38]}, "zip":{file:"kernel/common/array.rb", lines:[1689, 1689]}, "includes?:":{doc:"<p>Indicates, if an Array includes a given value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/rbx/array.fy", lines:[37, 37]}, "values_at":{file:"kernel/common/array.rb", lines:[1641, 1641]}, "indexes":{file:"kernel/common/array.rb", lines:[958, 958]}, ":fourth":{doc:"<p>Returns the fourth element in the Array</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[43, 43]}, "*":{file:"kernel/common/array.rb", lines:[388, 388]}, "transpose":{file:"kernel/common/array.rb", lines:[1598, 1598]}, "eql?":{file:"kernel/common/array.rb", lines:[702, 702]}, "compact":{file:"kernel/common/array.rb", lines:[552, 552]}, "assoc":{file:"kernel/common/array.rb", lines:[490, 490]}, "shift":{file:"kernel/common/array.rb", lines:[1455, 1455]}, "index":{file:"kernel/common/array.rb", lines:[946, 946]}, "reverse!":{file:"kernel/common/array.rb", lines:[1373, 1373]}, "map":{file:"kernel/bootstrap/array.rb", lines:[87, 87]}, "sort!":{file:"kernel/common/array.rb", lines:[1542, 1542]}, "indices":{file:"kernel/common/array.rb", lines:[958, 958]}, ":==":{file:"kernel/common/array.rb", lines:[469, 469]}, "flatten!":{file:"kernel/common/array.rb", lines:[852, 852]}, "each_index":{file:"kernel/common/array.rb", lines:[686, 686]}, "-":{file:"kernel/common/array.rb", lines:[424, 424]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[107, 107]}, "select!:":{doc:"<p>Removes all elements in place, that don't meet the condition.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, but changed with all elements removed that don't yield <code data-lang=\"fancy\">true</code> for <code data-lang=\"fancy\">condition</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div>A condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (or something <code data-lang=\"fancy\">Callable</code>) for selecting items from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["condition"], file:"lib/array.fy", lines:[145, 145]}, "push":{file:"kernel/common/array.rb", lines:[1311, 1311]}, "append:":{doc:"<p>Appends another Array onto this one.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["arr"], file:"lib/rbx/array.fy", lines:[28, 28]}, "combination":{file:"kernel/common/array.rb", lines:[530, 530]}, "to_a":{file:"kernel/common/array.rb", lines:[1575, 1575]}, "all?:":{doc:"<p>Takes condition-block and returns <code data-lang=\"fancy\">true</code> if all elements meet it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Predicate <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element until it returns <code data-lang=\"fancy\">false</code> for any one of them.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if all elements in <code data-lang=\"fancy\">self</code> yield <code data-lang=\"fancy\">true</code> for <code data-lang=\"fancy\">block</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[201, 201]}, "clear":{file:"kernel/common/array.rb", lines:[517, 517]}, "fetch":{file:"kernel/common/array.rb", lines:[724, 724]}, "<=>":{file:"kernel/common/array.rb", lines:[441, 441]}, "<<":{file:"kernel/common/array.rb", lines:[354, 354]}, "[]":{file:"kernel/common/array.rb", lines:[92, 92]}, "remove:":{doc:"<p>Removes all occurances of obj in the Array.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be removed within <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, with all occurances of <code data-lang=\"fancy\">obj</code> removed.</div></div></div>\n\n", arg:["obj"], file:"lib/array.fy", lines:[168, 168]}, "reject":{file:"kernel/common/array.rb", lines:[1334, 1334]}, "each":{file:"kernel/bootstrap/array.rb", lines:[64, 64]}, ":sort":{file:"kernel/common/array.rb", lines:[1537, 1537]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, "shuffle":{file:"kernel/common/array.rb", lines:[1517, 1517]}, "slice":{file:"kernel/common/array.rb", lines:[92, 92]}, ":+":{doc:"<p>Returns concatenation with another <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other_arr"], file:"lib/array.fy", lines:[213, 213]}, "slice!":{file:"kernel/common/array.rb", lines:[1479, 1479]}, "length":{}, "each_with_index:":{doc:"<p>Iterate over all elements in Array. Calls a given Block with each element and its index.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each element and its inde in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[118, 118]}, ":>>":{doc:"<p>Returns new Array with elements of other_arr appended to these.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other_arr</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> to be appended to <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>New <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with <code data-lang=\"fancy\">other_arr</code> and <code data-lang=\"fancy\">self</code> appended.</div></div></div>\n\n", arg:["other_arr"], file:"lib/array.fy", lines:[121, 121]}, "yaml_initialize":{file:"lib/yaml/rubytypes.rb", lines:[null, null]}, "last:":{doc:"<p>Returns new Array with last n elements specified.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">count</code> </label><div>Number of last elements to get from an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with up to <code data-lang=\"fancy\">count</code> size of last elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["count"], file:"lib/rbx/array.fy", lines:[181, 181]}, ":to_s":{doc:"<p>Returns <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[195, 195]}, "delete_if":{file:"kernel/common/array.rb", lines:[656, 656]}, "pack":{file:"kernel/common/array.rb", lines:[1162, 1162]}, "index:":{doc:"<p>Returns the index of an item (or nil, if it isn't in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item/Value for which the index is requested within an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Index of the value passed in within the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>, or <code data-lang=\"fancy\">nil</code>, if value not present.</div></div></div>\n\n", arg:["item"], file:"lib/rbx/array.fy", lines:[133, 133]}, "start=":{}, "compact!":{file:"kernel/common/array.rb", lines:[558, 558]}, "select_with_index:":{doc:"<p>Same as select:, just gets also called with an additional argument\nfor each element's index value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/rbx/array.fy", lines:[227, 227]}, "+":{file:"kernel/common/array.rb", lines:[416, 416]}, ":first":{doc:"<p>Returns the first element in the Array.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/array.fy", lines:[28, 28]}, "__rescue_match__":{file:"kernel/common/array.rb", lines:[1935, 1935]}, "tuple":{}, "to_generator":{file:"kernel/common/array.rb", lines:[1962, 1962]}, "delete_at":{file:"kernel/common/array.rb", lines:[636, 636]}, "last":{file:"kernel/common/array.rb", lines:[1066, 1066]}, "values_at:":{doc:"<p>Returns new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with elements at given indices.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx_arr</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of indices.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the items with the given indices in <code data-lang=\"fancy\">idx_arr</code>.</div></div></div>\n\n", arg:["idx_arr"], file:"lib/array.fy", lines:[106, 106]}, "nitems":{file:"kernel/common/array.rb", lines:[1090, 1090]}, ":reverse":{file:"kernel/common/array.rb", lines:[1367, 1367]}, "from:to:":{doc:"<p>Returns sub-array starting at from: and going to to:</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">from</code> </label><div>Start index for sub-array.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">to</code> </label><div>End index ofr sub-array.</div></div></div>\n\n", arg:["from", "to"], file:"lib/rbx/array.fy", lines:[163, 163]}, "taguri=":{}, "product":{file:"kernel/common/array.rb", lines:[1282, 1282]}, ":sum":{doc:"<p>Calculates the sum of all the elements in the Enumerable\n(assuming them to be Numbers (implementing '+' &amp; '*')).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/array.fy", lines:[266, 266]}, "choice":{file:"kernel/common/array.rb", lines:[1430, 1430]}, "total":{}, "shuffle!":{file:"kernel/common/array.rb", lines:[1522, 1522]}, ":=?":{doc:"<p>Compares two Arrays where order does not matter.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> to compare this one to.</div></div></div>\n\n", arg:["other"], file:"lib/array.fy", lines:[64, 64]}}}, "FancySpec":{doc:"<p>The FancySpec class is used for defining FancySpec testsuites.\nHave a look at the tests/ directory to see some examples.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"describe:for:with:":{file:"lib/fancy_spec.fy", lines:[19, 19]}, "__class_init__":{file:"lib/fancy_spec.fy", lines:[5, 5]}, "describe:with:":{file:"lib/fancy_spec.fy", lines:[13, 13]}, "new:test_obj:":{}}, ancestors:["FancySpec", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/fancy_spec.fy", lines:[10, 10]}, "it:for:when:":{file:"lib/fancy_spec.fy", lines:[30, 30]}, ":run":{file:"lib/fancy_spec.fy", lines:[42, 42]}, "initialize:test_obj:":{file:"lib/fancy_spec.fy", lines:[9, 9]}, "it:when:":{file:"lib/fancy_spec.fy", lines:[25, 25]}}}, "Rubinius Tuple":{doc:"<p>Tuples are fixed-size containers providing index-based access to its\nelements.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"allocate":{file:"kernel/bootstrap/tuple.rb", lines:[5, 5]}, "new":{file:"kernel/bootstrap/tuple.rb", lines:[10, 10]}, "create_weakref":{file:"kernel/bootstrap/tuple.rb", lines:[162, 162]}, "[]":{file:"kernel/common/tuple.rb", lines:[14, 14]}, "pattern":{file:"kernel/bootstrap/tuple.rb", lines:[15, 15]}, "__class_init__":{file:"lib/tuple.fy", lines:[5, 5]}, ":===":{doc:"<p>Matches <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> class against an object.\nIf the given object is a Tuple instance, return a Tuple object.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be matched against</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Tuple instance containing the values of <code data-lang=\"fancy\">obj</code> to be used in pattern matching.</div></div></div>\n\n", arg:["obj"], file:"lib/tuple.fy", lines:[98, 98]}, "_load":{file:"kernel/common/tuple.rb", lines:[140, 140]}}, ancestors:["Rubinius Tuple", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], instance_methods:{"initialize:":{doc:"<p>Initializes a new <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> with a given amount of element slots.\nE.g. if <code data-lang=\"fancy\">size</code> is <code data-lang=\"fancy\">2</code>, creates a 2-Tuple.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">size</code> </label><div>Size of the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> (amount of values to hold).</div></div></div>\n\n", arg:["size"], file:"lib/rbx/tuple.fy", lines:[14, 14]}, "first":{file:"kernel/common/tuple.rb", lines:[125, 125]}, ":second":{doc:"<p>Returns the second element in the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/tuple.fy", lines:[25, 25]}, "shift":{file:"kernel/common/tuple.rb", lines:[104, 104]}, "+":{file:"kernel/common/tuple.rb", lines:[50, 50]}, ":first":{doc:"<p>Returns the first element in the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/tuple.fy", lines:[20, 20]}, "delete":{file:"kernel/bootstrap/tuple.rb", lines:[108, 108]}, "[]=":{file:"kernel/bootstrap/tuple.rb", lines:[31, 31]}, "swap":{file:"kernel/common/tuple.rb", lines:[112, 112]}, "reverse!":{file:"kernel/bootstrap/tuple.rb", lines:[156, 156]}, "_dump":{file:"kernel/common/tuple.rb", lines:[136, 136]}, "==":{file:"kernel/common/tuple.rb", lines:[34, 34]}, ":==":{doc:"<p>Compares two <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>s with each other.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> to compare <code data-lang=\"fancy\">self</code> with.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if tuples are equal element-wise, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["other"], file:"lib/tuple.fy", lines:[70, 70]}, "at:":{doc:"<p>Returns an element at a given indes.\nPossibly throws an <code data-lang=\"fancy\" data-class-ref=\"Rubinius\" class=\"class-ref selectable\">Rubinius</code> <code data-lang=\"fancy\" data-class-ref=\"Rubinius ObjectBoundsExceededError\" class=\"class-ref selectable\">ObjectBoundsExceededError</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index for the element to get.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Element at the given index within the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["idx"], file:"lib/rbx/tuple.fy", lines:[26, 26]}, "each:":{doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element in the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Return value of calling <code data-lang=\"fancy\">block</code> on the last item in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], file:"lib/tuple.fy", lines:[45, 45]}, "copy_from":{file:"kernel/bootstrap/tuple.rb", lines:[55, 55]}, "last":{file:"kernel/common/tuple.rb", lines:[129, 129]}, "at:put:":{doc:"<p>Sets a value for a given index within a <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index of element to set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">val</code> </label><div>Value to set at given index.</div></div></div>\n\n", arg:["idx", "val"], file:"lib/rbx/tuple.fy", lines:[36, 36]}, "fields":{file:"kernel/bootstrap/tuple.rb", lines:[49, 49]}, "to_a":{file:"kernel/common/tuple.rb", lines:[96, 96]}, "empty?":{file:"kernel/common/tuple.rb", lines:[121, 121]}, ":size":{file:"kernel/bootstrap/tuple.rb", lines:[49, 49]}, "[]":{file:"kernel/bootstrap/tuple.rb", lines:[21, 21]}, "dup":{file:"kernel/bootstrap/tuple.rb", lines:[94, 94]}, "at":{file:"kernel/bootstrap/tuple.rb", lines:[39, 39]}, "each":{file:"kernel/common/tuple.rb", lines:[24, 24]}, "join_upto":{file:"kernel/common/tuple.rb", lines:[71, 71]}, ":inspect":{doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of a <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code></p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/tuple.fy", lines:[76, 76]}, "put":{file:"kernel/bootstrap/tuple.rb", lines:[44, 44]}, ":[]":{doc:"<p>Forwards to <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>#at:.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["idx"], file:"lib/tuple.fy", lines:[15, 15]}, "inspect":{file:"kernel/common/tuple.rb", lines:[57, 57]}, ":third":{doc:"<p>Returns the third element in the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/tuple.fy", lines:[30, 30]}, "to_s":{file:"kernel/common/tuple.rb", lines:[20, 20]}, "length":{file:"kernel/bootstrap/tuple.rb", lines:[49, 49]}, "===":{file:"kernel/common/tuple.rb", lines:[86, 86]}, "join":{file:"kernel/common/tuple.rb", lines:[67, 67]}, ":fourth":{doc:"<p>Returns the fourth element in the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code></p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/tuple.fy", lines:[35, 35]}, "size":{file:"kernel/bootstrap/tuple.rb", lines:[49, 49]}}}, "Directory":{doc:"<p>Instances of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> represent directories in the filesystem of\nthe operating system, in which Fancy is being run.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"delete:":{doc:"<p>Deletes a directory with a given name, if it's empty.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path to <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to delete.</div></div></div>\n\n", arg:["dirname"], file:"lib/rbx/directory.fy", lines:[45, 45]}, "create:":{doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> on the filesystem, possibly throwing\nIOError Exceptions that might occur.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to create.</div></div></div>\n\n", arg:["dirname"], file:"lib/rbx/directory.fy", lines:[15, 15]}, "exists?:":{doc:"<p>Indicates, if a Directory exists with a given pathname.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to check for existance.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">@return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> exists, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["dirname"], file:"lib/directory.fy", lines:[15, 15]}, "create!:":{doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> on the filesystem, ignoring any\nExceptions that might occur.\nBasically works like running <code>mkdir -p</code> on the shell.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to create.</div></div></div>\n\n", arg:["dirname"], file:"lib/rbx/directory.fy", lines:[30, 30]}, "__class_init__":{file:"lib/directory.fy", lines:[5, 5]}}, ancestors:["Directory", "Object", "Kernel"], instance_methods:{}}, "Rubinius BlockEnvironment":{doc:"<p>The Block class (also BlockEnvironment) is the class of all\nBlock-literal values.\nA Block is a piece of unevaluated code, that can be passed around as\nany other value and evaluated by calling the +call+ or +call:+ methods.</p>\n\n<p>Blocks also work properly with their enclosing environment in that\nthey preserve any local variables that get used within the Block,\neven if the context in which they got defined has been destroyed.\n=> Blocks are proper closures.</p>\n\n<p>See: http://en.wikipedia.org/wiki/Closure_(computer_science) for\nmore information.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"allocate":{file:"kernel/bootstrap/block_environment.rb", lines:[5, 5]}, "of_sender":{file:"kernel/bootstrap/block_environment.rb", lines:[20, 20]}, "__class_init__":{file:"lib/block.fy", lines:[15, 15]}}, ancestors:["Rubinius BlockEnvironment", "Object", "Kernel"], instance_methods:{"scope=":{}, "line":{file:"kernel/common/block_environment.rb", lines:[69, 69]}, "scope":{}, "call:with_receiver:":{}, "while_nil:":{doc:"<p>Same as Block#while_false:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/block.fy", lines:[35, 35]}, "call:":{}, "until_do:":{doc:"<p>Calls a given Block as long as <code data-lang=\"fancy\">self</code> returns <code data-lang=\"fancy\">nil</code> or <code data-lang=\"fancy\">false</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/block.fy", lines:[51, 51]}, "make_independent":{file:"kernel/common/block_environment.rb", lines:[47, 47]}, "metadata_container":{}, "if:":{doc:"<p>Calls itself if the given object is true-ish.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/block.fy", lines:[81, 81]}, "method=":{}, "call_under":{file:"kernel/bootstrap/block_environment.rb", lines:[15, 15]}, ":&&":{doc:"<p>Short-circuiting &amp;&amp; (boolean AND).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other_block"], file:"lib/block.fy", lines:[63, 63]}, "arity":{file:"kernel/common/block_environment.rb", lines:[56, 56]}, ":===":{file:"lib/block.fy", lines:[90, 90]}, "from_eval!":{file:"kernel/common/block_environment.rb", lines:[42, 42]}, "under_context":{file:"kernel/common/block_environment.rb", lines:[20, 20]}, "file":{file:"kernel/common/block_environment.rb", lines:[65, 65]}, "local_count":{}, "top_scope":{}, "proc_environment":{}, ":argcount":{doc:"<p>Returns the amount of arguments (arity) a Block takes.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/block.fy", lines:[8, 8]}, "call":{file:"kernel/bootstrap/block_environment.rb", lines:[10, 10]}, "while_do:":{}, "proc_environment=":{}, "top_scope=":{}, "while_true:":{}, ":||":{doc:"<p>Short-circuiting || (boolean OR).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other_block"], file:"lib/block.fy", lines:[75, 75]}, "method":{}, ":call":{file:"kernel/bootstrap/block_environment.rb", lines:[10, 10]}, "from_proc?":{file:"kernel/common/block_environment.rb", lines:[16, 16]}, "call_with_receiver:":{}, "metadata_container=":{}, "receiver=":{file:"kernel/common/block_environment.rb", lines:[30, 30]}, "call_on_instance":{file:"kernel/common/block_environment.rb", lines:[52, 52]}, "local_count=":{}, "unless:":{doc:"<p>Opposite of Block#if:. Calls itself if the given object is false-ish.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/block.fy", lines:[87, 87]}, "while_false:":{doc:"<p>Executes a given Block while self evals to nil\nExample:\n i = 0\n { i >= 10 } while_false: {</p>\n\n<pre><code>i println\ni = i + 1\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/block.fy", lines:[28, 28]}, "from_eval?":{file:"kernel/common/block_environment.rb", lines:[38, 38]}}}, "Method":{doc:"<p>An instance of Method represents a method on a Class.\nEvery method in Fancy is an instance of the Method class.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/method.fy", lines:[5, 5]}}, ancestors:["Method", "Unmarshalable", "Object", "Kernel"], instance_methods:{"documentation:":{file:"lib/rbx/method.fy", lines:[7, 7]}, "name":{file:"kernel/common/method.rb", lines:[31, 31]}, "[]":{file:"kernel/common/method.rb", lines:[68, 68]}, "source_location":{file:"kernel/common/method.rb", lines:[101, 101]}, "to_proc":{file:"kernel/common/method.rb", lines:[142, 142]}, "initialize":{file:"kernel/common/method.rb", lines:[20, 20]}, "call":{file:"kernel/common/method.rb", lines:[68, 68]}, "test:":{file:"lib/method.fy", lines:[18, 18]}, "defined_in":{}, "==":{file:"kernel/common/method.rb", lines:[39, 39]}, "executable":{}, "receiver":{}, "inspect":{file:"kernel/common/method.rb", lines:[78, 78]}, "to_s":{file:"kernel/common/method.rb", lines:[78, 78]}, "owner":{file:"kernel/common/method.rb", lines:[131, 131]}, "arity":{file:"kernel/common/method.rb", lines:[59, 59]}, "unbind":{file:"kernel/common/method.rb", lines:[153, 153]}, "source":{file:"kernel/common/method.rb", lines:[109, 109]}, ":documentation":{file:"lib/rbx/method.fy", lines:[3, 3]}, "parameters":{file:"kernel/common/method.rb", lines:[117, 117]}, ":tests":{doc:"<p>Returns an Array of all the FancySpec SpecTests defined for a\nMethod.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/method.fy", lines:[13, 13]}}}, "FalseClass":{doc:"<p>FalseClass extensions for Fancy on rbx.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[394, 394]}}, ancestors:["FalseClass", "ImmediateValue", "Object", "Kernel"], instance_methods:{"if_nil:":{doc:"<p>Calls the block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/rbx/false_class.fy", lines:[23, 23]}, "taguri=":{}, "^":{file:"kernel/bootstrap/false.rb", lines:[7, 7]}, ":not":{doc:"<p>Boolean negation of <code data-lang=\"fancy\">false</code> => <code data-lang=\"fancy\">true</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</div></div></div>\n\n\n<p></code></p>\n", arg:[], file:"lib/rbx/false_class.fy", lines:[56, 56]}, "if_true:":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/rbx/false_class.fy", lines:[13, 13]}, "if_true:else:":{doc:"<p>Calls else_block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["then_block", "else_block"], file:"lib/rbx/false_class.fy", lines:[8, 8]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, ":to_a":{file:"lib/rbx/false_class.fy", lines:[46, 46]}, ":false?":{doc:"<p>Returns true.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/false_class.fy", lines:[33, 33]}, ":nil?":{doc:"<p>Returns true.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/false_class.fy", lines:[28, 28]}, "if_false:":{doc:"<p>Calls the block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/rbx/false_class.fy", lines:[18, 18]}, "inspect":{file:"kernel/common/false.rb", lines:[7, 7]}, "to_s":{file:"kernel/bootstrap/false.rb", lines:[11, 11]}, ":true?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/false_class.fy", lines:[38, 38]}, "|":{file:"kernel/bootstrap/false.rb", lines:[7, 7]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[395, 395]}, "&":{file:"kernel/bootstrap/false.rb", lines:[3, 3]}, ":to_s":{file:"lib/rbx/false_class.fy", lines:[42, 42]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[31, 31]}}}, "Thread":{doc:"<p>Thread class.\nDeals with parallel execution.</p>\n\n<p>TODO:\n=> Still need to add more Fancy-ish wrapper methods and method\n documentation.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"list":{file:"kernel/common/thread.rb", lines:[301, 301]}, "guarding?":{file:"kernel/common/thread.rb", lines:[326, 326]}, "stop":{file:"kernel/common/thread.rb", lines:[151, 151]}, "critical":{file:"kernel/common/thread.rb", lines:[157, 157]}, "main":{file:"kernel/common/thread.rb", lines:[293, 293]}, "critical=":{file:"kernel/common/thread.rb", lines:[161, 161]}, "abort_on_exception":{file:"kernel/common/thread.rb", lines:[16, 16]}, "abort_on_exception=":{file:"kernel/common/thread.rb", lines:[20, 20]}, "current":{file:"kernel/bootstrap/thread.rb", lines:[5, 5]}, "__class_init__":{file:"lib/rbx/thread.fy", lines:[11, 11]}, "start":{file:"kernel/common/thread.rb", lines:[48, 48]}, "start:":{file:"lib/rbx/thread.fy", lines:[72, 72]}, ":stop":{file:"kernel/common/thread.rb", lines:[151, 151]}, ":critical":{file:"kernel/common/thread.rb", lines:[157, 157]}, "allocate":{file:"kernel/bootstrap/thread.rb", lines:[10, 10]}, ":main":{file:"kernel/common/thread.rb", lines:[293, 293]}, ":pass":{file:"kernel/bootstrap/thread.rb", lines:[15, 15]}, ":current":{file:"kernel/bootstrap/thread.rb", lines:[5, 5]}, ":abort_on_exception":{file:"kernel/common/thread.rb", lines:[16, 16]}, "detect_recursion":{file:"kernel/common/thread.rb", lines:[335, 335]}, ":list":{file:"kernel/common/thread.rb", lines:[301, 301]}, "new":{file:"kernel/common/thread.rb", lines:[40, 40]}, "new:":{file:"lib/rbx/thread.fy", lines:[52, 52]}, "abort_on_exception:":{file:"lib/rbx/thread.fy", lines:[56, 56]}, "critical:":{file:"lib/rbx/thread.fy", lines:[64, 64]}, "initialize_main_thread":{file:"kernel/common/thread.rb", lines:[297, 297]}, "pass":{file:"kernel/bootstrap/thread.rb", lines:[15, 15]}, "exclusive":{file:"lib/thread.rb", lines:[30, 30]}, "kill:":{file:"lib/rbx/thread.fy", lines:[68, 68]}, "recursion_guard":{file:"kernel/common/thread.rb", lines:[314, 314]}, "detect_outermost_recursion":{file:"kernel/common/thread.rb", lines:[389, 389]}}, ancestors:["Thread", "Object", "Kernel"], instance_methods:{":kill":{file:"kernel/common/thread.rb", lines:[116, 116]}, "fork":{file:"kernel/bootstrap/thread.rb", lines:[20, 20]}, "key?":{file:"kernel/common/thread.rb", lines:[252, 252]}, "initialize":{file:"kernel/common/thread.rb", lines:[52, 52]}, "priority":{file:"kernel/bootstrap/thread.rb", lines:[35, 35]}, "abort_on_exception":{file:"kernel/common/thread.rb", lines:[29, 29]}, ":terminate":{file:"kernel/common/thread.rb", lines:[116, 116]}, "sleeping?":{file:"kernel/common/thread.rb", lines:[125, 125]}, "group":{file:"kernel/common/thread.rb", lines:[169, 169]}, ":exit":{file:"kernel/common/thread.rb", lines:[116, 116]}, ":value":{file:"kernel/common/thread.rb", lines:[177, 177]}, "abort_on_exception=":{file:"kernel/common/thread.rb", lines:[25, 25]}, ":alive?":{file:"kernel/common/thread.rb", lines:[105, 105]}, ":run":{file:"kernel/bootstrap/thread.rb", lines:[30, 30]}, "recursive_objects":{}, "kill":{file:"kernel/common/thread.rb", lines:[116, 116]}, "set_debugging":{file:"kernel/common/thread.rb", lines:[256, 256]}, "raise":{file:"kernel/common/thread.rb", lines:[208, 208]}, "set_debugger_thread":{file:"kernel/common/thread.rb", lines:[268, 268]}, "[]":{file:"kernel/common/thread.rb", lines:[240, 240]}, "current_context":{file:"kernel/common/thread.rb", lines:[438, 438]}, "add_to_group":{file:"kernel/common/thread.rb", lines:[173, 173]}, "priority:":{file:"lib/rbx/thread.fy", lines:[40, 40]}, "keys":{file:"kernel/common/thread.rb", lines:[248, 248]}, "status":{file:"kernel/common/thread.rb", lines:[132, 132]}, "__context__":{file:"kernel/bootstrap/thread.rb", lines:[45, 45]}, "inspect":{file:"kernel/common/thread.rb", lines:[33, 33]}, "join":{file:"kernel/common/thread.rb", lines:[165, 165]}, "alive?":{file:"kernel/common/thread.rb", lines:[105, 105]}, "context":{file:"kernel/common/thread.rb", lines:[438, 438]}, ":wakeup":{file:"kernel/bootstrap/thread.rb", lines:[30, 30]}, ":join":{file:"kernel/common/thread.rb", lines:[165, 165]}, ":stop?":{file:"kernel/common/thread.rb", lines:[112, 112]}, "debug_channel":{file:"kernel/common/thread.rb", lines:[260, 260]}, "run":{file:"kernel/bootstrap/thread.rb", lines:[30, 30]}, "[]=":{file:"kernel/common/thread.rb", lines:[244, 244]}, "stop?":{file:"kernel/common/thread.rb", lines:[112, 112]}, "setup":{file:"kernel/common/thread.rb", lines:[92, 92]}, "priority=":{file:"kernel/bootstrap/thread.rb", lines:[40, 40]}, ":abort_on_exception":{file:"kernel/common/thread.rb", lines:[29, 29]}, "exit":{file:"kernel/common/thread.rb", lines:[116, 116]}, "setup_control!":{file:"kernel/common/thread.rb", lines:[287, 287]}, "terminate":{file:"kernel/common/thread.rb", lines:[116, 116]}, "wakeup":{file:"kernel/bootstrap/thread.rb", lines:[30, 30]}, "value":{file:"kernel/common/thread.rb", lines:[177, 177]}, "exclusive:":{file:"lib/rbx/thread.fy", lines:[48, 48]}, ":priority":{file:"kernel/bootstrap/thread.rb", lines:[35, 35]}, "abort_on_exception:":{file:"lib/rbx/thread.fy", lines:[60, 60]}, ":status":{file:"kernel/common/thread.rb", lines:[132, 132]}, "raise:":{file:"lib/rbx/thread.fy", lines:[44, 44]}, "__run__":{file:"kernel/common/thread.rb", lines:[64, 64]}}}, "FancySpec PositiveMatcher":{doc:"<p>PositiveMatcher expects its actual value to be equal to an\nexpected value.\nIf the values are not equal, a SpecTest failure is generated.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/fancy_spec.fy", lines:[122, 122]}}, ancestors:["FancySpec PositiveMatcher", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/fancy_spec.fy", lines:[null, null]}, "unknown_message:with_params:":{doc:"<p>Forwardy any other message and parameters to the object itself\nand checks the return value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["msg", "params"], file:"lib/fancy_spec.fy", lines:[146, 146]}, ":==":{file:"lib/fancy_spec.fy", lines:[128, 128]}, ":!=":{file:"lib/fancy_spec.fy", lines:[134, 134]}, "be:":{file:"lib/fancy_spec.fy", lines:[149, 149]}, "method_missing":{}}}, "Fancy Package Uninstaller":{doc:"<p><code data-lang=\"fancy\">Fancy</code> Package@ Uninstaller.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/package/uninstaller.fy", lines:[7, 7]}}, ancestors:["Fancy Package Uninstaller", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/package/uninstaller.fy", lines:[null, null]}, ":run":{file:"lib/package/uninstaller.fy", lines:[null, null]}}}, "Fancy Documentation RDiscount":{doc:"<p>A documentation formatter using ruby's RDiscount markdown</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/documentation.fy", lines:[100, 100]}, "rdiscount:":{doc:"<p>Format string as HTML using RDiscount ruby gem.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["doc"], file:"lib/documentation.fy", lines:[109, 109]}}, ancestors:["Fancy Documentation RDiscount", "Object", "Kernel"], instance_methods:{}}, "NilClass":{doc:"<p>NilClass. The class of the singleton nil value.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, ":new":{file:"lib/nil_class.fy", lines:[7, 7]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[403, 403]}}, ancestors:["NilClass", "ImmediateValue", "Object", "Kernel"], instance_methods:{"to_a":{file:"kernel/bootstrap/nil.rb", lines:[25, 25]}, "if_nil:":{doc:"<p>Calls the block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/nil_class.fy", lines:[27, 27]}, "taguri=":{}, "^":{file:"kernel/bootstrap/nil.rb", lines:[7, 7]}, ":not":{file:"lib/nil_class.fy", lines:[54, 54]}, "if_true:":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/nil_class.fy", lines:[17, 17]}, "to_f":{file:"kernel/bootstrap/nil.rb", lines:[29, 29]}, "if_true:else:":{doc:"<p>Calls else_block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["then_block", "else_block"], file:"lib/nil_class.fy", lines:[12, 12]}, "nil?":{file:"kernel/bootstrap/nil.rb", lines:[19, 19]}, "__nil__":{file:"kernel/bootstrap/nil.rb", lines:[19, 19]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, ":to_a":{file:"lib/nil_class.fy", lines:[50, 50]}, ":false?":{doc:"<p>Returns true.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/nil_class.fy", lines:[37, 37]}, ":nil?":{doc:"<p>Returns true.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/nil_class.fy", lines:[32, 32]}, "if_false:":{doc:"<p>Calls the block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/nil_class.fy", lines:[22, 22]}, "inspect":{file:"kernel/bootstrap/nil.rb", lines:[15, 15]}, "to_s":{file:"kernel/bootstrap/nil.rb", lines:[11, 11]}, ":true?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/nil_class.fy", lines:[42, 42]}, "to_i":{file:"kernel/bootstrap/nil.rb", lines:[33, 33]}, "|":{file:"kernel/bootstrap/nil.rb", lines:[7, 7]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[404, 404]}, "&":{file:"kernel/bootstrap/nil.rb", lines:[3, 3]}, ":to_s":{file:"lib/nil_class.fy", lines:[46, 46]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[19, 19]}}}, "TCPServer":{doc:"<p>TCP Server</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/rbx/tcp_server.fy", lines:[4, 4]}}, ancestors:["TCPServer", "Socket ListenAndAccept", "IO Socketable", "TCPSocket", "IPSocket", "BasicSocket", "IO", "Unmarshalable", "File Constants", "Object", "Kernel"], instance_methods:{":accept":{file:"lib/socket.rb", lines:[453, 453]}}}, "Fancy FDoc":{doc:"<p>FDoc is a tool to generate API documentation from Fancy source.</p>\n\n<p>Works as follows:</p>\n\n<ol>\n<li>We setup a handler to be invoked every time an object is set documentation\nSee fdoc_hook.fy, its loaded even before all of lib/rbx/*.fy so we can\nAlso have documentation for all fancy rubinius.</li>\n<li>We load boot.fy, so we get documentation for all fancy's lib.</li>\n<li>We run FDoc main\nwhich can possibly load any file/directory you specify and optionally\nrun specs, effectively associating them with documented objects.</li>\n<li>Generate output file.\nCurrently the plan is to output a json formatted object.\nTo be loaded by an html file and use jquery to build a GUI from it.</li>\n</ol>\n\n\n<div class=\"doctags\"></div>\n\n", methods:{":main":{doc:"<p>FDoc will load all .fy files you give to it, and optionally run\nany specified FancySpec, and later produce documentation output.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/fdoc.fy", lines:[32, 32]}, "__class_init__":{file:"lib/fdoc.fy", lines:[22, 22]}}, ancestors:["Fancy FDoc", "Object", "Kernel"], instance_methods:{}}, "Object":{doc:"<p>Root class of Fancy's class hierarchy.\nAll classes inherit from Object.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, "__class_init__":{file:"lib/digest.rb", lines:[53, 53]}}, ancestors:["Object", "Kernel"], instance_methods:{"message_name:":{file:"lib/rbx/object.fy", lines:[106, 106]}, "returning:do:":{doc:"<p>Returns <code data-lang=\"fancy\">value</code> after calling <code data-lang=\"fancy\">block</code> with it.\nUseful for returning some object after using it, e.g.:</p>\n\n<pre><code># this will return [1,2]\nreturning: [] do: |arr| {\n arr &lt;&lt; 1\n arr &lt;&lt; 2\n}\n</code></pre>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets called with <code data-lang=\"fancy\">value</code> before returning <code data-lang=\"fancy\">value</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value that gets returned at the end.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">value</div></div></div>\n\n\n<p></code></p>\n", arg:["value", "block"], file:"lib/object.fy", lines:[187, 187]}, ":to_a":{file:"lib/object.fy", lines:[90, 90]}, "or_take:":{doc:"<p>Returns self if it's non-nil, otherwise returns the given object.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/object.fy", lines:[83, 83]}, "while:do:":{doc:"<p>Same as:\n cond_block while_do: body_block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond_block", "body_block"], file:"lib/object.fy", lines:[129, 129]}, "ruby:args:with_block:":{}, "metaclass":{file:"kernel/bootstrap/object.rb", lines:[3, 3]}, ":==":{file:"kernel/bootstrap/kernel.rb", lines:[5, 5]}, ":to_num":{file:"lib/object.fy", lines:[86, 86]}, ":&&":{doc:"<p>Same as Object#and:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/object.fy", lines:[105, 105]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[15, 15]}, "loop:":{doc:"<p>Infinitely calls the block (loops).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/object.fy", lines:[9, 9]}, "ruby:args:":{}, ":dclone":{doc:"<p>Returns a deep clone of self using Ruby's Marshal class.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/object.fy", lines:[27, 27]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, "send:":{file:"lib/rbx/object.fy", lines:[98, 98]}, ":nil?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[41, 41]}, "if_do:":{doc:"<p>If the object is non-nil, it calls the given block with itself as argument.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/object.fy", lines:[57, 57]}, "set_slot:value:":{file:"lib/rbx/object.fy", lines:[43, 43]}, ":true?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[51, 51]}, ":!=":{doc:"<p>Indicates, if two objects are unequal.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/object.fy", lines:[26, 26]}, "responds_to?:":{file:"lib/rbx/object.fy", lines:[115, 115]}, ":to_s":{file:"lib/rbx/object.fy", lines:[35, 35]}, "protected":{file:"/Users/backtype/projects/fancy/boot/fancy_ext/object.rb", lines:[32, 32]}, "define_singleton_method:with:":{file:"lib/rbx/object.fy", lines:[80, 80]}, "if:then:":{doc:"<p>Same as:</p>\n\n<pre><code>cond if_do: block\n</code></pre>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "block"], file:"lib/object.fy", lines:[112, 112]}, ":print":{doc:"<p>Same as Console print: self. Prints the object on STDOUT.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[21, 21]}, "until:do:":{doc:"<p>Same as:\n cond_block until_do: body_block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond_block", "body_block"], file:"lib/object.fy", lines:[138, 138]}, "documentation:":{doc:"<p>Sets the documentation string for an Object.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["str"], file:"lib/object.fy", lines:[163, 163]}, ":class":{file:"kernel/alpha.rb", lines:[143, 143]}, "send:params:":{file:"lib/rbx/object.fy", lines:[102, 102]}, "if_do:else:":{doc:"<p>If the object is non-nil, it calls the given then_block with itself as argument.\nOtherwise it calls the given else_block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["then_block", "else_block"], file:"lib/object.fy", lines:[68, 68]}, "is_a?:":{doc:"<p>Indicates, if an object is an instance of a given Class.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["class"], file:"lib/rbx/object.fy", lines:[90, 90]}, ":should_not":{doc:"<p>Returns a NegativeMatcher for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/fancy_spec.fy", lines:[200, 200]}, "if:then:else:":{doc:"<p>Same as:</p>\n\n<pre><code>cond if_do: then_block else: else_block\n</code></pre>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "then_block", "else_block"], file:"lib/object.fy", lines:[120, 120]}, "to_yaml_properties":{file:"lib/yaml/rubytypes.rb", lines:[null, null]}, "ruby:with_block:":{}, "unless:do:":{doc:"<p>Same as:\n cond if_do: { nil } else: block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "block"], file:"lib/object.fy", lines:[147, 147]}, ":documentation":{doc:"<p>Returns the documentation string for an Object.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[158, 158]}, ":===":{file:"kernel/common/kernel.rb", lines:[402, 402]}, "kind_of?:":{doc:"<p>Indicates, if an object is an instance of a given Class.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["class"], file:"lib/rbx/object.fy", lines:[95, 95]}, "__show__":{file:"kernel/alpha.rb", lines:[63, 63]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[3, 3]}, ":println":{doc:"<p>Same as Console println: self. Prints the object on STDOUT, followed by a newline.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[16, 16]}, ":should":{doc:"<p>Returns a PositiveMatcher for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/fancy_spec.fy", lines:[195, 195]}, ":initialize":{file:"lib/rbx/object.fy", lines:[22, 22]}, "to_yaml_style":{file:"lib/yaml/rubytypes.rb", lines:[null, null]}, "if_nil:":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/object.fy", lines:[36, 36]}, "taguri=":{}, "undefine_singleton_method:":{file:"lib/rbx/object.fy", lines:[84, 84]}, "public":{file:"/Users/backtype/projects/fancy/boot/fancy_ext/object.rb", lines:[26, 26]}, ":identity":{doc:"<p>The identity method simply returns self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[168, 168]}, "__metaclass__":{file:"kernel/bootstrap/object.rb", lines:[3, 3]}, ":false?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/object.fy", lines:[46, 46]}, ":inspect":{file:"lib/rbx/object.fy", lines:[39, 39]}, "private":{file:"/Users/backtype/projects/fancy/boot/fancy_ext/object.rb", lines:[29, 29]}, "__fixnum__":{file:"kernel/bootstrap/object.rb", lines:[9, 9]}, ":||":{doc:"<p>Same as Object#or:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/object.fy", lines:[100, 100]}, "if_false:":{doc:"<p>Calls the block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/object.fy", lines:[31, 31]}, ":to_i":{file:"lib/object.fy", lines:[94, 94]}, "and:":{doc:"<p>Boolean conjunction.\nReturns true if self and other are true, otherwise nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/rbx/object.fy", lines:[56, 56]}, ":++":{file:"lib/rbx/object.fy", lines:[31, 31]}, "or:":{doc:"<p>Boolean disjunction.\nReturns true if either self or other is true, otherwise nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/rbx/object.fy", lines:[69, 69]}, "get_slot:":{file:"lib/rbx/object.fy", lines:[47, 47]}, "method:":{doc:"<p>Returns the method with a given name for self, if defined.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["method_name"], file:"lib/object.fy", lines:[154, 154]}}}, "Fancy Documentation":{doc:"<p>A Fancy Documentation object is a holder for docstrings and specs.\nKeeps a registry of documentation for anything Fancy.</p>\n\n<p>Provides methods for searching and formatting objects' docstrings\nthis can be be handy for users of interactive Fancy REPL,\ndocument generators, instrospection toos, IDEs, anything!.</p>\n\n<p>This object can be converted to just anything by using its format:\nmethod. formatters can be registered with Fancy Documentation formatter:is:</p>\n\n<p>By default two formatters are defined:</p>\n\n<pre><code> 'fancy =&gt; Returns the Fancy::Documentation object\n 'string =&gt; Returns the docs string representation\n</code></pre>\n\n<div class=\"doctags\"></div>\n\n", methods:{"for:append:":{doc:"<p>Append docstring to the documentation for obj.\nIf obj has no documentation, one is created for it.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj", "docstring"], file:"lib/documentation.fy", lines:[65, 65]}, "remove:":{doc:"<p>Removes the documentation for obj.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/rbx/documentation.fy", lines:[55, 55]}, "formatter:is:":{doc:"<p>Register a callable object as formatter under name.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["name", "callable"], file:"lib/documentation.fy", lines:[81, 81]}, ":formatters":{doc:"<p>Obtain the hash of known documentation formatters.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/documentation.fy", lines:[87, 87]}, "for:is:":{doc:"<p>Create a Fancy::Documentation instance.</p>\n\n<p>Note: As we're bootstrapping, we cannot set documentation here as\nan string literal.</p>\n\n<p>We are the very first thing to load, so just create a new\nFancy::Documentation object without using new:, and set it as\nfancy docs.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj", "docstring"], file:"lib/rbx/documentation.fy", lines:[37, 37]}, "documentation_for:set_to:":{file:"lib/rbx/documentation.fy", lines:[22, 22]}, "__class_init__":{file:"lib/documentation.fy", lines:[18, 18]}, "on_documentation_set:":{file:"lib/rbx/documentation.fy", lines:[18, 18]}, "for:":{doc:"<p>Obtains the Fancy Documentation for obj.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/rbx/documentation.fy", lines:[50, 50]}, "formatter:":{doc:"<p>Obtain a formatter by the given name. Returns a callable object</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["name"], file:"lib/documentation.fy", lines:[76, 76]}}, ancestors:["Fancy Documentation", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/rbx/documentation.fy", lines:[7, 7]}, "object:":{}, ":object":{}, ":meta":{file:"lib/rbx/documentation.fy", lines:[null, null]}, "specs:":{}, "meta:":{file:"lib/rbx/documentation.fy", lines:[null, null]}, "docs:":{}, "format:":{doc:"<p>If format is specified, the documentation string will be\nconverted using the corresponding formatter. This allows\nyou to extend Fancy documentation system, and produce\nhtml documents, man pages, or anything you can imagine.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["format"], file:"lib/documentation.fy", lines:[55, 55]}, ":docs":{doc:"<p>An array of docstrings for the object beind documented.</p>\n\n<p>We have an array of docstrings because in Fancy, some\nthings like classes can be re-openned and the user may\nspecify new documentation for it each time. Thus we dont\nwant to loose the previous documentation but rather build\nupon it. That is, fancy supports incremental documentation.</p>\n\n<div class=\"doctags\"></div>\n\n"}, ":to_s":{file:"lib/documentation.fy", lines:[null, null]}, ":specs":{doc:"<p>An array of associated Fancy specs for the object\nbeing documented.</p>\n\n<p>Its a lot better to keep the associated specs in\nFancy Documentation objects instead of just having them\nin method instances. This allows us to associate any object\nwith an spec example.</p>\n\n<p>This way you can have a single Fancy spec example that\nis related to many objects (methods, constants, classes)\nthat are being specified. Later in documentation, we can\nprovide links to all specs where an object is being exercised.</p>\n\n<div class=\"doctags\"></div>\n\n"}}}, "TrueClass":{doc:"<p>TrueClass. The class of the singleton true value.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, ":new":{file:"lib/true_class.fy", lines:[7, 7]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[385, 385]}}, ancestors:["TrueClass", "ImmediateValue", "Object", "Kernel"], instance_methods:{"taguri=":{}, "^":{file:"kernel/bootstrap/true.rb", lines:[7, 7]}, ":not":{file:"lib/true_class.fy", lines:[41, 41]}, "if_true:":{doc:"<p>Calls the block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/true_class.fy", lines:[17, 17]}, "if_true:else:":{doc:"<p>Calls the then_block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["then_block", "else_block"], file:"lib/true_class.fy", lines:[12, 12]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, ":false?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/true_class.fy", lines:[32, 32]}, "if_false:":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/true_class.fy", lines:[22, 22]}, ":nil?":{doc:"<p>Returns nil.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/true_class.fy", lines:[27, 27]}, "inspect":{file:"kernel/common/true.rb", lines:[5, 5]}, "to_s":{file:"kernel/bootstrap/true.rb", lines:[15, 15]}, ":true?":{doc:"<p>Returns true.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/true_class.fy", lines:[37, 37]}, "|":{file:"kernel/bootstrap/true.rb", lines:[11, 11]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[386, 386]}, "&":{file:"kernel/bootstrap/true.rb", lines:[3, 3]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[25, 25]}}}, "Console":{doc:"<p>Console class. Used for <code data-lang=\"fancy\">STDIO</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{":newline":{doc:"<p>Prints a newline to <code data-lang=\"fancy\">STDOUT</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/console.fy", lines:[7, 7]}, "println:":{doc:"<p>Prints a given object on <code data-lang=\"fancy\">STDOUT</code>, followed by a newline.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be printed on <code data-lang=\"fancy\">STDOUT</code>, followed by a newline.</div></div></div>\n\n", arg:["obj"], file:"lib/rbx/console.fy", lines:[27, 27]}, ":readln":{doc:"<p>Reads a line from <code data-lang=\"fancy\">STDIN</code> and returns it as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Line (<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>) read from <code data-lang=\"fancy\">STDIN</code>.</div></div></div>\n\n", arg:[], file:"lib/rbx/console.fy", lines:[55, 55]}, "print:":{doc:"<p>Prints a given object on <code data-lang=\"fancy\">STDOUT</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be printed on <code data-lang=\"fancy\">STDOUT</code>.</div></div></div>\n\n", arg:["obj"], file:"lib/rbx/console.fy", lines:[17, 17]}, ":clear":{doc:"<p>Clears the <code data-lang=\"fancy\" data-class-ref=\"Console\" class=\"class-ref selectable\">Console</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/rbx/console.fy", lines:[61, 61]}, "__class_init__":{file:"lib/rbx/console.fy", lines:[2, 2]}, "readln:":{doc:"<p>Prints a given message to <code data-lang=\"fancy\">STDOUT</code>, followed by reading a line from\n<code data-lang=\"fancy\">STDIN</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> that should be printed to <code data-lang=\"fancy\">STDOUT</code> before reading from <code data-lang=\"fancy\">STDIN</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Line (<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>) read from <code data-lang=\"fancy\">STDIN</code>.</div></div></div>\n\n", arg:["message"], file:"lib/rbx/console.fy", lines:[40, 40]}}, ancestors:["Console", "Object", "Kernel"], instance_methods:{}}, "Fancy FDoc Formatter":{doc:"<p>A documentation formater intended to be used by <code data-lang=\"fancy\" data-class-ref=\"FDoc\" class=\"class-ref selectable\">FDoc</code>.</p>\n\n<p>This formatter makes some transformations on a docstring\nand then converts it to html using markdown.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"create_code:":{file:"lib/fdoc.fy", lines:[336, 336]}, "remove_indentation:":{doc:"<p>Remove leading white space for multi-line strings.\nThis method expects the first character to be an line return.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["str"], file:"lib/fdoc.fy", lines:[212, 212]}, "remove_tags:into:":{file:"lib/fdoc.fy", lines:[313, 313]}, "create_tags:with:":{file:"lib/fdoc.fy", lines:[326, 326]}, "create_method_references:":{file:"lib/fdoc.fy", lines:[348, 348]}, "format:":{file:"lib/fdoc.fy", lines:[195, 195]}, "__class_init__":{file:"lib/fdoc.fy", lines:[189, 189]}, "create_class_references:":{doc:"<p>Creates class references for Fancy class names.</p>\n\n<p>A docstring may contain class names sorounded by @\nwithout space between the @.</p>\n\n<p>Nested classes can be indicated by using :: like</p>\n\n<p> Foo::Bar</p>\n\n<p>This will create references for both, <code data-lang=\"fancy\">Foo</code> and <code data-lang=\"fancy\">Bar</code></p>\n\n<p>Instance methods should be written:</p>\n\n<p> Foo::Bar#baz</p>\n\n<p>Class methods should be written:</p>\n\n<p> Foo::Bar.baz</p>\n\n<p>Some examples:</p>\n\n<p>A simple class reference:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code></p>\n\n<p>Nested class reference:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc\" class=\"class-ref selectable\">FDoc</code></p>\n\n<p>A fancy method without arguments:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc\" class=\"class-ref selectable\">FDoc</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc JSON\" class=\"class-ref selectable\">JSON</code> <code data-lang=\"fancy\" data-singleton-method-ref=\":generate_map\" data-owner-class=\"Fancy FDoc JSON\" class=\"singleton-method-ref selectable\">generate_map</code></p>\n\n<p>A ruby method reference (will link to ruby docs if available)</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> <code data-lang=\"fancy\" data-ruby-singleton-method-ref=\"split\" data-owner-class=\"String\" class=\"ruby-singleton-method-ref selectable\">split</code></p>\n\n<p>A fancy method with many arguments:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package\" class=\"class-ref selectable\">Package</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package Installer\" class=\"class-ref selectable\">Installer</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"initialize:version:install_path:\" data-owner-class=\"Fancy Package Installer\" class=\"singleton-method-ref selectable\">initialize:version:install_path:</code></p>\n\n<p>A singleton method:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc\" class=\"class-ref selectable\">FDoc</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc Formatter\" class=\"class-ref selectable\">Formatter</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"format:\" data-owner-class=\"Fancy FDoc Formatter\" class=\"singleton-method-ref selectable\">format:</code></p>\n\n<div class=\"doctags\"></div>\n\n", arg:["str"], file:"lib/fdoc.fy", lines:[270, 270]}, "htmlize:":{file:"lib/fdoc.fy", lines:[342, 342]}}, ancestors:["Fancy FDoc Formatter", "Object", "Kernel"], instance_methods:{}}, "Fancy Package Installer":{doc:"<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package\" class=\"class-ref selectable\">Package</code> installer.</p>\n\n<p>Downloads packages from Github (usually the latest tagged version,\nif no version is specified, or the latest HEAD revision in the\nmaster branch) and install it to the <code data-lang=\"fancy\">FANCY_PACKAGE_DIR</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"new:version:":{}, "__class_init__":{file:"lib/package/installer.fy", lines:[14, 14]}, "new:version:install_path:":{}}, ancestors:["Fancy Package Installer", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/package/installer.fy", lines:[48, 48]}, "initialize:version:":{file:"lib/package/installer.fy", lines:[48, 48]}, ":load_fancypack":{doc:"<p>Loads the @.fancypack file within the downloaded package directory.\nIf no @.fancypack file is found, raise an error.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/package/installer.fy", lines:[171, 171]}, ":tags":{doc:"<p>Returns a list of tags the repository has on Github.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/package/installer.fy", lines:[95, 95]}, "fulfill_spec:":{file:"lib/package/installer.fy", lines:[196, 196]}, "download_tgz:":{doc:"<p>Downloads the .tar.gz file from Github with the given version\n(tag or branch name) and saves it to the specified <code data-lang=\"fancy\">install_path</code>.</p>\n\n<p>The Default install_path is ~/.fancy/packages/.\nIf an environment variable <code data-lang=\"fancy\">FANCY_PACKAGE_DIR</code> is defined, it\nwill get used.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["version"], file:"lib/package/installer.fy", lines:[139, 139]}, ":installed_path":{file:"lib/package/installer.fy", lines:[149, 149]}, "rename_dir:":{doc:"<p>Renames a given directory to a common way within the install path.\n=> It will rename the given dirname to $user/$repo-$version.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["dirname"], file:"lib/package/installer.fy", lines:[162, 162]}, "download_url:":{doc:"<p>Returns the download url for a given version of the package\nto be installed.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["version"], file:"lib/package/installer.fy", lines:[114, 114]}, ":latest_tag":{doc:"<p>Returns the latest tag (sorted alphabetically).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/package/installer.fy", lines:[86, 86]}, ":run":{doc:"<p>Runs the installer &amp; installs the package into\n<code data-lang=\"fancy\">$FANCY_PACKAGE_DIR</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/package/installer.fy", lines:[56, 56]}, ":lib_path":{file:"lib/package/installer.fy", lines:[153, 153]}, "unpack_file:":{file:"lib/package/installer.fy", lines:[142, 142]}, "initialize:version:install_path:":{file:"lib/package/installer.fy", lines:[48, 48]}, "has_version?:":{doc:"<p>Indicates, if a given version is available on Github.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["version"], file:"lib/package/installer.fy", lines:[102, 102]}}}, "FancyEnumerable":{doc:"<p>Mixin-Class with useful methods for collections that implement an <code data-lang=\"fancy\" data-method=\"each:\" class=\"selectable\">each:</code> method.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/enumerable.fy", lines:[4, 4]}}, ancestors:["FancyEnumerable", "Object", "Kernel"], instance_methods:{":first":{file:"lib/enumerable.fy", lines:[216, 216]}, "inject:into:":{doc:"<p>Same as reduce:init_val: but taking the initial value as first and the reducing block as second parameter.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["val", "block"], file:"lib/enumerable.fy", lines:[186, 186]}, "partition_by:":{file:"lib/enumerable.fy", lines:[260, 260]}, "each:in_between:":{doc:"<p>Similar to <code data-lang=\"fancy\" data-method=\"each:\" class=\"selectable\">each:</code> but calls an additional <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> between\ncalling the first <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> for each element in self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["each_block", "between_block"], file:"lib/enumerable.fy", lines:[22, 22]}, "map:":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with the results of calling a given block for every element</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/enumerable.fy", lines:[94, 94]}, ":max":{doc:"<p>Returns the maximum value in the Enumerable (via the '>' comparison message).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[252, 252]}, ":uniq":{doc:"<p>Returns a new Array with all unique values (double entries are skipped).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[191, 191]}, ":last":{doc:"<p>Returns the last element in an Enumerable.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[224, 224]}, "take_while:":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> by taking elements from the beginning as long as they meet the given condition block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], file:"lib/enumerable.fy", lines:[123, 123]}, ":product":{doc:"<p>Calculates the product of all the elements in the <code data-lang=\"fancy\">Enumerable</code>\n(assuming them to be <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code>s (implementing <code data-lang=\"fancy\">+</code> &amp; <code data-lang=\"fancy\">*</code>)).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[85, 85]}, "reject:":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all elements that don't meet the given condition block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], file:"lib/enumerable.fy", lines:[114, 114]}, ":empty?":{doc:"<p>Indicates, if the Enumerable is empty (has no elements).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[212, 212]}, ":compact":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all values removed that are <code data-lang=\"fancy\">nil</code> ( return <code data-lang=\"fancy\">true</code> on <code data-lang=\"fancy\">nil?</code> ).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[235, 235]}, "superior_by:":{doc:"<p>Returns the superiour element in the <code data-lang=\"fancy\">Enumerable</code> that has met the given comparison block with all other elements.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["comparison_block"], file:"lib/enumerable.fy", lines:[240, 240]}, "all?:":{doc:"<p>Similar to <code data-lang=\"fancy\" data-class-ref=\"FancyEnumerable\" class=\"class-ref selectable\">FancyEnumerable</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"any?:\" data-owner-class=\"FancyEnumerable\" class=\"singleton-method-ref selectable\">any?:</code> just checking for all elements.\nIndicates, if all elements meet the condition.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], file:"lib/enumerable.fy", lines:[60, 60]}, "find:":{doc:"<p>Returns <code data-lang=\"fancy\">nil</code>, if the given object isn't found, or the object, if it is found.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["item"], file:"lib/enumerable.fy", lines:[76, 76]}, "find_by:":{doc:"<p>Similar to <code data-lang=\"fancy\" data-method=\"find:\" class=\"selectable\">find:</code> but takes a block that is called for each element to find it.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/enumerable.fy", lines:[88, 88]}, "drop:":{file:"lib/enumerable.fy", lines:[164, 164]}, ":size":{doc:"<p>Returns the size of an Enumerable.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[203, 203]}, "any?:":{doc:"<p>Indicates, if any element meets the condition.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">condition</code> yields <code data-lang=\"fancy\">true</code> for any element, <code data-lang=\"fancy\">false</code> otherwise.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (or <code data-lang=\"fancy\">Callable</code>) that is used to check if any element in <code data-lang=\"fancy\">self</code> yields true for it.</div></div></div>\n\n", arg:["condition"], file:"lib/enumerable.fy", lines:[46, 46]}, "take:":{file:"lib/enumerable.fy", lines:[156, 156]}, "drop_while:":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> by skipping elements from the beginning as long as they meet the given condition block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], file:"lib/enumerable.fy", lines:[137, 137]}, ":sum":{doc:"<p>Calculates the sum of all the elements in the <code data-lang=\"fancy\">Enumerable</code>\n(assuming them to be <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code>s (implementing '+' &amp; '*')).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/number.fy", lines:[78, 78]}, "select:":{doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all elements that meet the given condition block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], file:"lib/enumerable.fy", lines:[104, 104]}, "includes?:":{doc:"<p>Indicates, if a collection includes a given element.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item to check if it's included in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">item</code> in <code data-lang=\"fancy\">self</code>, otherwise <code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:["item"], file:"lib/enumerable.fy", lines:[14, 14]}, "reduce:init_val:":{doc:"<p>Calculates a value based on a given block to be called on an accumulator value and an initial value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block", "init_val"], file:"lib/enumerable.fy", lines:[174, 174]}, ":min":{doc:"<p>Returns the minimum value in the Enumerable (via the '&lt;' comparison message).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/enumerable.fy", lines:[257, 257]}}}, "Hash":{doc:"<p>Class for Hashes (HashMaps / Dictionaries).\nMaps a key to a value.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"new_from_literal":{file:"kernel/common/hash.rb", lines:[115, 115]}, "allocate":{file:"kernel/common/hash.rb", lines:[120, 120]}, "yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, "[]":{file:"kernel/common/hash.rb", lines:[78, 78]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[27, 27]}}, ancestors:["Hash", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], instance_methods:{"each_pair":{file:"kernel/common/hash.rb", lines:[335, 335]}, "eql?":{file:"kernel/common/hash.rb", lines:[151, 151]}, "shift":{file:"kernel/common/hash.rb", lines:[604, 604]}, "key?":{file:"kernel/common/hash.rb", lines:[434, 434]}, "index":{file:"kernel/common/hash.rb", lines:[382, 382]}, "delete":{file:"kernel/common/hash.rb", lines:[256, 256]}, ":to_a":{doc:"<p>Returns an Array of the key-value pairs in a Hash.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/hash.fy", lines:[49, 49]}, "select":{file:"kernel/common/hash.rb", lines:[590, 590]}, "store":{file:"kernel/common/hash.rb", lines:[194, 194]}, "sort":{file:"kernel/common/hash.rb", lines:[634, 634]}, "map:":{file:"lib/rbx/hash.fy", lines:[36, 36]}, "hash":{file:"kernel/common/hash.rb", lines:[174, 174]}, "__store__":{file:"kernel/common/hash.rb", lines:[194, 194]}, "indices":{file:"kernel/common/hash.rb", lines:[667, 667]}, "each:":{doc:"<p>Calls a given Block with each key and value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/hash.fy", lines:[27, 27]}, "has_value?":{file:"kernel/common/hash.rb", lines:[655, 655]}, "each_value":{file:"kernel/common/hash.rb", lines:[344, 344]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[38, 38]}, "to_a":{file:"kernel/common/hash.rb", lines:[638, 638]}, "clear":{file:"kernel/common/hash.rb", lines:[232, 232]}, "fetch":{file:"kernel/common/hash.rb", lines:[358, 358]}, "each_entry":{file:"kernel/common/hash.rb", lines:[292, 292]}, "[]":{file:"kernel/common/hash.rb", lines:[186, 186]}, "reject":{file:"kernel/common/hash.rb", lines:[547, 547]}, "each":{file:"kernel/common/hash.rb", lines:[308, 308]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, "keys":{file:"kernel/common/hash.rb", lines:[448, 448]}, "to_iter":{file:"kernel/common/hash.rb", lines:[643, 643]}, "inspect":{file:"kernel/common/hash.rb", lines:[413, 413]}, "member?":{file:"kernel/common/hash.rb", lines:[434, 434]}, ":keys":{file:"kernel/common/hash.rb", lines:[448, 448]}, "to_s":{file:"kernel/common/hash.rb", lines:[651, 651]}, "length":{}, "yaml_initialize":{file:"lib/yaml/rubytypes.rb", lines:[29, 29]}, ":to_s":{doc:"<p>Returns a string representation of a Hash.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/hash.fy", lines:[54, 54]}, "size":{}, "delete_if":{file:"kernel/common/hash.rb", lines:[283, 283]}, "replace":{file:"kernel/common/hash.rb", lines:[567, 567]}, "rehash":{file:"kernel/common/hash.rb", lines:[522, 522]}, "include?":{file:"kernel/common/hash.rb", lines:[434, 434]}, "[]=":{file:"kernel/common/hash.rb", lines:[194, 194]}, "find_entry":{file:"kernel/common/hash.rb", lines:[370, 370]}, "==":{file:"kernel/common/hash.rb", lines:[126, 126]}, "to_hash":{file:"kernel/common/hash.rb", lines:[647, 647]}, "redistribute":{file:"kernel/common/hash.rb", lines:[496, 496]}, ":values":{file:"kernel/common/hash.rb", lines:[663, 663]}, "at:":{file:"kernel/common/hash.rb", lines:[186, 186]}, "update":{file:"kernel/common/hash.rb", lines:[456, 456]}, "at:put:":{file:"kernel/common/hash.rb", lines:[194, 194]}, "default=":{file:"kernel/common/hash.rb", lines:[247, 247]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[165, 165]}, "each_value:":{doc:"<p>Calls a given Block with each value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/hash.fy", lines:[40, 40]}, "taguri=":{}, "empty?":{file:"kernel/common/hash.rb", lines:[354, 354]}, "invert":{file:"kernel/common/hash.rb", lines:[426, 426]}, ":size":{}, "has_key?":{file:"kernel/common/hash.rb", lines:[434, 434]}, "merge":{file:"kernel/common/hash.rb", lines:[452, 452]}, "reject!":{file:"kernel/common/hash.rb", lines:[555, 555]}, ":inspect":{file:"lib/rbx/hash.fy", lines:[11, 11]}, ":[]":{doc:"<p>Returns the value for a given key.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["key"], file:"lib/hash.fy", lines:[13, 13]}, "value?":{file:"kernel/common/hash.rb", lines:[655, 655]}, "merge!":{file:"kernel/common/hash.rb", lines:[456, 456]}, "each_key:":{doc:"<p>Calls a given Block with each key.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], file:"lib/hash.fy", lines:[32, 32]}, "values_at":{file:"kernel/common/hash.rb", lines:[667, 667]}, "indexes":{file:"kernel/common/hash.rb", lines:[667, 667]}, "default_proc":{file:"kernel/common/hash.rb", lines:[252, 252]}, "values":{file:"kernel/common/hash.rb", lines:[663, 663]}, "default":{file:"kernel/common/hash.rb", lines:[239, 239]}, "each_key":{file:"kernel/common/hash.rb", lines:[328, 328]}}}, "Fancy Package Dependency":{doc:"<p>Package Dependency.\nRepresents a Dependency to another Package with a given version.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"new:version:":{}, "__class_init__":{file:"lib/package/dependency.fy", lines:[6, 6]}}, ancestors:["Fancy Package Dependency", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/package/dependency.fy", lines:[11, 11]}, "initialize:version:":{file:"lib/package/dependency.fy", lines:[null, null]}, ":name":{}, ":version":{}}}, "Symbol":{doc:"<p>Symbols are unique identifiers and only created once.</p>\n\n<p>If there are several occurrances of the same Symbol literal within\nFancy code, they all refer to the same Symbol object.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"yaml_new":{file:"lib/yaml/rubytypes.rb", lines:[186, 186]}, "all_symbols":{file:"kernel/common/symbol.rb", lines:[18, 18]}, "yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, "===":{file:"kernel/bootstrap/symbol.rb", lines:[4, 4]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[184, 184]}}, ancestors:["Symbol", "ImmediateValue", "Object", "Kernel"], instance_methods:{"is_ivar?":{file:"kernel/bootstrap/symbol.rb", lines:[14, 14]}, "taguri=":{}, "intern":{file:"kernel/alpha.rb", lines:[378, 378]}, "to_proc":{file:"kernel/common/symbol.rb", lines:[48, 48]}, ":eval":{file:"lib/rbx/symbol.fy", lines:[3, 3]}, "index":{file:"kernel/bootstrap/symbol.rb", lines:[9, 9]}, "call:":{doc:"<p>This allows Symbols to be used like Blocks\n(e.g. in all methods of Enumerable).\nExample: [1, 2, 3] map: 'squared # => [1, 4, 9]</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["arg"], file:"lib/symbol.fy", lines:[21, 21]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, ":inspect":{file:"lib/rbx/symbol.fy", lines:[10, 10]}, "to_sym":{file:"kernel/alpha.rb", lines:[378, 378]}, "inspect":{file:"kernel/common/symbol.rb", lines:[25, 25]}, "to_s":{file:"kernel/alpha.rb", lines:[372, 372]}, "===":{file:"kernel/bootstrap/kernel.rb", lines:[5, 5]}, "id2name":{file:"kernel/alpha.rb", lines:[372, 372]}, "is_constant?":{file:"kernel/bootstrap/symbol.rb", lines:[24, 24]}, "is_cvar?":{file:"kernel/bootstrap/symbol.rb", lines:[19, 19]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[194, 194]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[56, 56]}}}, "NoMethodError":{doc:"<p>Exception class that gets thrown when a method wasn't found within a class.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/rbx/no_method_error.fy", lines:[4, 4]}}, ancestors:["NoMethodError", "NameError", "StandardError", "Exception", "Object", "Kernel"], instance_methods:{"name":{}, ":method_name":{doc:"<p>Returns the name of the method that was not found as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Name of the method not found (as <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>).</div></div></div>\n\n", arg:[], file:"lib/rbx/no_method_error.fy", lines:[13, 13]}, "initialize":{file:"kernel/common/exception.rb", lines:[210, 210]}, "args":{}}}, "String":{doc:"<p>Strings are sequences of characters and behave as such.\nAll literal Strings within Fancy code are instances of the String\nclass.</p>\n\n<p>They also include FancyEnumerable, which means you can use all the\ncommon sequence methods on them, like +map:+, +select:+ etc.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"clone":{file:"kernel/common/string.rb", lines:[34, 34]}, "yaml_new":{file:"lib/yaml/rubytypes.rb", lines:[150, 150]}, "allocate":{file:"kernel/common/string.rb", lines:[17, 17]}, "yaml_tag_subclasses?":{file:"lib/yaml/tag.rb", lines:[null, null]}, "dup":{file:"kernel/common/string.rb", lines:[34, 34]}, "pattern":{file:"kernel/bootstrap/string.rb", lines:[4, 4]}, "from_bytearray":{file:"kernel/common/string.rb", lines:[29, 29]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[140, 140]}}, ancestors:["String", "FancyEnumerable", "Object", "Enumerable", "Comparable", "Object", "Kernel"], instance_methods:{"%":{file:"kernel/common/string.rb", lines:[60, 60]}, "start_with?":{file:"kernel/common/string.rb", lines:[1831, 1831]}, "modify!":{file:"kernel/common/string.rb", lines:[2491, 2491]}, "data":{}, "chars":{file:"kernel/common/string.rb", lines:[675, 675]}, ":=~":{file:"kernel/common/string.rb", lines:[186, 186]}, "swapcase!":{file:"kernel/common/string.rb", lines:[2074, 2074]}, "delete":{file:"kernel/common/string.rb", lines:[617, 617]}, "partition":{file:"kernel/common/string.rb", lines:[1375, 1375]}, "succ":{file:"kernel/common/string.rb", lines:[1983, 1983]}, "delete!":{file:"kernel/common/string.rb", lines:[623, 623]}, "full_to_i":{file:"kernel/common/string.rb", lines:[2636, 2636]}, "each:":{file:"lib/rbx/string.fy", lines:[29, 29]}, "resize_capacity":{file:"kernel/bootstrap/string.rb", lines:[103, 103]}, ":split":{file:"lib/rbx/string.fy", lines:[null, null]}, "find_string_reverse":{file:"kernel/bootstrap/string.rb", lines:[65, 65]}, "end_with?":{file:"kernel/common/string.rb", lines:[826, 826]}, "lines":{file:"kernel/common/string.rb", lines:[734, 734]}, "secure_compare":{file:"kernel/bootstrap/string.rb", lines:[76, 76]}, ":raise!":{doc:"<p>Raises a new StdError with self as the message.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/string.fy", lines:[51, 51]}, "rstrip!":{file:"kernel/common/string.rb", lines:[1460, 1460]}, "tr":{file:"kernel/common/string.rb", lines:[2138, 2138]}, "gsub":{file:"kernel/common/string.rb", lines:[867, 867]}, "tr_s":{file:"kernel/common/string.rb", lines:[2156, 2156]}, "dup":{file:"kernel/bootstrap/string.rb", lines:[26, 26]}, "find_character":{file:"kernel/bootstrap/string.rb", lines:[92, 92]}, "data=":{}, "count_table":{file:"kernel/common/string.rb", lines:[2425, 2425]}, "insert":{file:"kernel/common/string.rb", lines:[1130, 1130]}, "next":{file:"kernel/common/string.rb", lines:[1983, 1983]}, "justify":{file:"kernel/common/string.rb", lines:[2453, 2453]}, "rjust":{file:"kernel/common/string.rb", lines:[1441, 1441]}, "strip":{file:"kernel/common/string.rb", lines:[1844, 1844]}, "strip!":{file:"kernel/common/string.rb", lines:[1850, 1850]}, "inspect":{file:"kernel/common/string.rb", lines:[1172, 1172]}, ":upcase":{file:"kernel/common/string.rb", lines:[2171, 2171]}, "tr_trans":{file:"kernel/common/string.rb", lines:[2214, 2214]}, "to_s":{file:"kernel/common/string.rb", lines:[2122, 2122]}, ":whitespace?":{doc:"<p>Indicates, if a String is empty or a single whitespace character.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/string.fy", lines:[22, 22]}, "__data__":{}, "to_i":{file:"kernel/common/string.rb", lines:[2114, 2114]}, "rindex":{file:"kernel/common/string.rb", lines:[1319, 1319]}, "splice!":{file:"kernel/common/string.rb", lines:[2538, 2538]}, "is_binary_data?":{file:"lib/yaml/rubytypes.rb", lines:[147, 147]}, "size":{file:"kernel/bootstrap/string.rb", lines:[85, 85]}, "sub!":{file:"kernel/common/string.rb", lines:[1927, 1927]}, "subpattern_set":{file:"kernel/common/string.rb", lines:[2521, 2521]}, "rstrip":{file:"kernel/common/string.rb", lines:[1450, 1450]}, "replace":{file:"kernel/common/string.rb", lines:[1265, 1265]}, "lstrip":{file:"kernel/common/string.rb", lines:[1195, 1195]}, "=~":{file:"kernel/common/string.rb", lines:[186, 186]}, "downcase!":{file:"kernel/common/string.rb", lines:[661, 661]}, "num_bytes":{}, "dump":{file:"kernel/common/string.rb", lines:[2611, 2611]}, "include?":{file:"kernel/common/string.rb", lines:[1063, 1063]}, "next!":{file:"kernel/common/string.rb", lines:[1989, 1989]}, "[]=":{file:"kernel/common/string.rb", lines:[322, 322]}, "num_bytes=":{}, "==":{file:"kernel/common/string.rb", lines:[165, 165]}, "unpack":{file:"kernel/common/string.rb", lines:[2800, 2800]}, "each_line":{file:"kernel/common/string.rb", lines:[734, 734]}, "at:":{file:"lib/rbx/string.fy", lines:[33, 33]}, "upcase!":{file:"kernel/common/string.rb", lines:[2179, 2179]}, "split:":{file:"lib/rbx/string.fy", lines:[37, 37]}, "copy_from":{file:"kernel/bootstrap/string.rb", lines:[31, 31]}, "rpartition":{file:"kernel/common/string.rb", lines:[1412, 1412]}, "concat":{file:"kernel/common/string.rb", lines:[105, 105]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[69, 69]}, "crypt":{file:"kernel/common/string.rb", lines:[600, 600]}, ":rest":{doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> containing all but the first character.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/string.fy", lines:[57, 57]}, "append":{file:"kernel/bootstrap/string.rb", lines:[21, 21]}, "empty?":{file:"kernel/common/string.rb", lines:[822, 822]}, "casecmp":{file:"kernel/common/string.rb", lines:[444, 444]}, "prefix?":{file:"kernel/common/string.rb", lines:[2593, 2593]}, ":*":{doc:"<p>Returns a string that is the num-fold concatenation of itself.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["num"], file:"lib/string.fy", lines:[38, 38]}, "squeeze":{file:"kernel/common/string.rb", lines:[1802, 1802]}, "reverse":{file:"kernel/common/string.rb", lines:[1289, 1289]}, "tr!":{file:"kernel/common/string.rb", lines:[2145, 2145]}, ":downcase":{file:"kernel/common/string.rb", lines:[651, 651]}, "scan":{file:"kernel/common/string.rb", lines:[1506, 1506]}, "to_sexp":{file:"lib/melbourne.rb", lines:[19, 19]}, ":to_f":{file:"kernel/bootstrap/string.rb", lines:[9, 9]}, ":[]":{doc:"<p>Given an Array of 2 Numbers, it returns the substring between the given indices.\nIf given a Number, returns the character at that index.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["index"], file:"lib/rbx/string.fy", lines:[22, 22]}, "swapcase":{file:"kernel/common/string.rb", lines:[2068, 2068]}, ":to_sexp":{file:"lib/rbx/string.fy", lines:[56, 56]}, "count":{file:"kernel/common/string.rb", lines:[581, 581]}, "subpattern":{file:"kernel/common/string.rb", lines:[2503, 2503]}, "gsub!":{file:"kernel/common/string.rb", lines:[966, 966]}, "*":{file:"kernel/common/string.rb", lines:[78, 78]}, "split":{file:"kernel/common/string.rb", lines:[1626, 1626]}, "eql?":{file:"kernel/common/string.rb", lines:[837, 837]}, "to_f":{file:"kernel/bootstrap/string.rb", lines:[9, 9]}, "lstrip!":{file:"kernel/common/string.rb", lines:[1205, 1205]}, "apply_and!":{file:"kernel/common/string.rb", lines:[2413, 2413]}, "intern":{file:"kernel/alpha.rb", lines:[402, 402]}, "index":{file:"kernel/common/string.rb", lines:[1084, 1084]}, "reverse!":{file:"kernel/common/string.rb", lines:[1294, 1294]}, "to_sub_replacement":{file:"kernel/common/string.rb", lines:[2286, 2286]}, ":==":{file:"kernel/common/string.rb", lines:[165, 165]}, "transform":{file:"kernel/bootstrap/string.rb", lines:[98, 98]}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[165, 165]}, "characters":{}, "chop":{file:"kernel/common/string.rb", lines:[550, 550]}, ":chomp":{file:"kernel/common/string.rb", lines:[491, 491]}, "capitalize!":{file:"kernel/common/string.rb", lines:[428, 428]}, "<=>":{file:"kernel/common/string.rb", lines:[143, 143]}, "<<":{file:"kernel/common/string.rb", lines:[105, 105]}, "[]":{file:"kernel/common/string.rb", lines:[243, 243]}, "each":{file:"kernel/common/string.rb", lines:[734, 734]}, "chop!":{file:"kernel/common/string.rb", lines:[557, 557]}, "to_inum":{file:"kernel/common/string.rb", lines:[2327, 2327]}, "taguri":{file:"lib/yaml/tag.rb", lines:[64, 64]}, "sum":{file:"kernel/common/string.rb", lines:[2052, 2052]}, "suffix?":{file:"kernel/common/string.rb", lines:[2599, 2599]}, "characters=":{}, "each_char":{file:"kernel/common/string.rb", lines:[675, 675]}, "slice":{file:"kernel/common/string.rb", lines:[243, 243]}, ":+":{file:"kernel/common/string.rb", lines:[92, 92]}, "slice!":{file:"kernel/common/string.rb", lines:[1563, 1563]}, "split_on_string":{file:"kernel/common/string.rb", lines:[1768, 1768]}, "length":{file:"kernel/bootstrap/string.rb", lines:[85, 85]}, "to_str":{file:"kernel/common/string.rb", lines:[2122, 2122]}, "shorten!":{file:"kernel/common/string.rb", lines:[2605, 2605]}, "center":{file:"kernel/common/string.rb", lines:[474, 474]}, "convert_float":{file:"kernel/bootstrap/string.rb", lines:[9, 9]}, "ljust":{file:"kernel/common/string.rb", lines:[1186, 1186]}, ":eval":{file:"lib/rbx/string.fy", lines:[45, 45]}, "substring":{file:"kernel/bootstrap/string.rb", lines:[37, 37]}, "+":{file:"kernel/common/string.rb", lines:[92, 92]}, "hex":{file:"kernel/common/string.rb", lines:[1053, 1053]}, "__data__=":{}, "each_byte":{file:"kernel/common/string.rb", lines:[696, 696]}, "compare_substring":{file:"kernel/common/string.rb", lines:[2418, 2418]}, "tr_s!":{file:"kernel/common/string.rb", lines:[2162, 2162]}, ":words":{file:"lib/string.fy", lines:[46, 46]}, "__crypt__":{file:"kernel/bootstrap/string.rb", lines:[16, 16]}, "bytesize":{file:"kernel/bootstrap/string.rb", lines:[85, 85]}, "capitalize":{file:"kernel/common/string.rb", lines:[408, 408]}, "from:to:":{file:"lib/rbx/string.fy", lines:[25, 25]}, ":blank?":{doc:"<p>Indicates, if a String consists only of whitespace.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/string.fy", lines:[28, 28]}, "initialize_copy":{file:"kernel/common/string.rb", lines:[1265, 1265]}, "downcase":{file:"kernel/common/string.rb", lines:[651, 651]}, "taguri=":{}, "bytes":{file:"kernel/common/string.rb", lines:[696, 696]}, "to_ast":{file:"lib/melbourne.rb", lines:[15, 15]}, "upto":{file:"kernel/common/string.rb", lines:[2198, 2198]}, "oct":{file:"kernel/common/string.rb", lines:[1255, 1255]}, "upcase":{file:"kernel/common/string.rb", lines:[2171, 2171]}, "shared!":{file:"kernel/common/string.rb", lines:[2618, 2618]}, "tr_expand!":{file:"kernel/common/string.rb", lines:[2449, 2449]}, "chomp!":{file:"kernel/common/string.rb", lines:[501, 501]}, "is_complex_yaml?":{file:"lib/yaml/rubytypes.rb", lines:[143, 143]}, "get_pattern":{file:"kernel/common/string.rb", lines:[2622, 2622]}, "squeeze!":{file:"kernel/common/string.rb", lines:[1808, 1808]}, "to_sym":{file:"kernel/alpha.rb", lines:[402, 402]}, ":to_i":{file:"kernel/common/string.rb", lines:[2114, 2114]}, "match":{file:"kernel/common/string.rb", lines:[1234, 1234]}, "sub":{file:"kernel/common/string.rb", lines:[1879, 1879]}, "succ!":{file:"kernel/common/string.rb", lines:[1989, 1989]}, ":++":{doc:"<p>Concatenate the String with another String</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other"], file:"lib/string.fy", lines:[16, 16]}, "chomp":{file:"kernel/common/string.rb", lines:[491, 491]}, ":eval_global":{file:"lib/rbx/string.fy", lines:[52, 52]}}}, "Class":{doc:"<p>This class is the class of <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> objects - e.g. <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>, <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>,\n<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> etc.\nAny class in the language is an instance of this class, as in Ruby\nor Smalltalk.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"allocate":{file:"kernel/bootstrap/class.rb", lines:[8, 8]}, "superclass:body:":{doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> by subclassing <code data-lang=\"fancy\">superclass</code> and using</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">body_block</code> </label><div>as its body.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">superclass</code> </label><div>The superclass to inherit from.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> inherited from <code data-lang=\"fancy\">superclass</code>.</div></div></div>\n\n", arg:["superclass", "body_block"], file:"lib/rbx/class.fy", lines:[43, 43]}, "__class_init__":{file:"lib/yaml/rubytypes.rb", lines:[null, null]}}, ancestors:["Class", "Module", "Object", "Kernel"], instance_methods:{"alias_method:for:":{doc:"<p>Defines an alias method for another method.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">new_method_name</code> </label><div>New method name to be used as an alias for <code data-lang=\"fancy\">old_method_name</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">old_method_name</code> </label><div>Name of method to alias (must exist in the <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>).</div></div></div>\n\n", arg:["new_method_name", "old_method_name"], file:"lib/class.fy", lines:[105, 105]}, "define_constructor_class_method:":{}, ":ancestors":{file:"kernel/common/module.rb", lines:[148, 148]}, "define_slot_reader:":{doc:"<p>Defines a slot reader method with a given name.\nE.g. for a slotname <code data-lang=\"fancy\">count</code> it will define the following method:</p>\n\n<pre><code>def count {\n get_slot: 'count\n}\n</code></pre>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of the slot to define a getter method for.</div></div></div>\n\n", arg:["slotname"], file:"lib/class.fy", lines:[23, 23]}, "initialize":{file:"kernel/common/class.rb", lines:[56, 56]}, "subclass:":{doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with <code data-lang=\"fancy\">self</code> as superclass and the given body.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">body_block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets used as the body of the <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> inherited from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["body_block"], file:"lib/rbx/class.fy", lines:[97, 97]}, "instance_method:":{doc:"<p>Returns an instance method for a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a given name.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the instance method to return.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The instance <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> with the given <code data-lang=\"fancy\">name</code> or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["name"], file:"lib/rbx/class.fy", lines:[118, 118]}, "instance_type":{}, "instance_flags":{}, "read_write_slots:":{doc:"<p>Defines slot reader &amp; writer methods for all given slotnames.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames to define getter & setter methods for.</div></div></div>\n\n", arg:["slots"], file:"lib/class.fy", lines:[72, 72]}, ":nested_classes":{doc:"<p>Returns all the nested classes within a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> as an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all nested classes for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], file:"lib/rbx/class.fy", lines:[107, 107]}, "define_class_method:with:":{doc:"<p>Defines a class method on a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> (a singleton method) with a\ngiven name and body.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be used as the class methods body.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the class method to be defined.</div></div></div>\n\n", arg:["name", "block"], file:"lib/rbx/class.fy", lines:[77, 77]}, ":new":{doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> instance by subclassing <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> subclassed from <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>.</div></div></div>\n\n", arg:[], file:"lib/rbx/class.fy", lines:[13, 13]}, ":define_forward_method_missing":{}, "to_yaml":{file:"lib/yaml/rubytypes.rb", lines:[6, 6]}, "set_superclass":{file:"kernel/bootstrap/class.rb", lines:[13, 13]}, ":===":{file:"kernel/common/module.rb", lines:[586, 586]}, "__metaclass_object__":{file:"kernel/bootstrap/class.rb", lines:[23, 23]}, "__marshal__":{file:"kernel/common/marshal.rb", lines:[37, 37]}, "subclass?:":{doc:"<p>Indicates, if a Class is a subclass of another Class.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">class_obj</code> </label><div>Class object to check for, if <code data-lang=\"fancy\">self</code> is a subclass of <code data-lang=\"fancy\">class_obj</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">self</code> is a subclass of <code data-lang=\"fancy\">class_obj</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["class_obj"], file:"lib/class.fy", lines:[94, 94]}, "packed!":{file:"kernel/bootstrap/class.rb", lines:[18, 18]}, "initialize_copy":{file:"kernel/common/class.rb", lines:[75, 75]}, "allocate":{file:"kernel/alpha.rb", lines:[80, 80]}, "undefine_method:":{doc:"<p>Undefines an instance method on a Class with a given name.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the method to undefine (remove) from a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div></div>\n\n", arg:["name"], file:"lib/rbx/class.fy", lines:[65, 65]}, "undefine_class_method:":{doc:"<p>Undefines a class method on a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a given name.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the class method to undefine (remove).</div></div></div>\n\n", arg:["name"], file:"lib/rbx/class.fy", lines:[87, 87]}, "define_slot_writer:":{doc:"<p>Defines a slot writer method with a given name.\nE.g. for a slotname <code data-lang=\"fancy\">count</code> it will define the following method:</p>\n\n<pre><code>def count: c {\n set_slot: 'count value: c\n}\n</code></pre>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of the slot to defnie define a setter method for.</div></div></div>\n\n", arg:["slotname"], file:"lib/class.fy", lines:[39, 39]}, "read_slots:":{doc:"<p>Defines slot reader methods for all given slotnames.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames to define getter methods for.</div></div></div>\n\n", arg:["slots"], file:"lib/class.fy", lines:[48, 48]}, "write_slots:":{doc:"<p>Defines slot writer methods for all given slotnames.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames to define setter methods for.</div></div></div>\n\n", arg:["slots"], file:"lib/class.fy", lines:[60, 60]}, "new":{file:"kernel/alpha.rb", lines:[92, 92]}, "new:":{doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> instance by subclassing <code data-lang=\"fancy\">superclass</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">superclass</code> </label><div>The superclass to inherit from.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> inherited from <code data-lang=\"fancy\">superclass</code>.</div></div></div>\n\n", arg:["superclass"], file:"lib/rbx/class.fy", lines:[27, 27]}, "instance_type=":{}, "inspect":{file:"kernel/common/class.rb", lines:[97, 97]}, ":superclass":{file:"kernel/common/class.rb", lines:[84, 84]}, "to_s":{file:"kernel/common/class.rb", lines:[97, 97]}, "define_method:with:":{doc:"<p>Defines an instance method on a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a given name and\nbody.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that is used as the method's body.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the method to be defined.</div></div></div>\n\n", arg:["name", "block"], file:"lib/rbx/class.fy", lines:[55, 55]}, "ruby_alias:":{file:"lib/rbx/object.fy", lines:[7, 7]}, "superclass":{file:"kernel/common/class.rb", lines:[84, 84]}, "alias_method_rbx:for:":{doc:"<p>Rbx specific version of alias_method:for: due to bootstrap order\nreasons. Should not be used directly.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["new_method_name", "old_method_name"], file:"lib/rbx/class.fy", lines:[128, 128]}}}, "Stack":{doc:"<p>A simple Stack container class.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/stack.fy", lines:[4, 4]}}, ancestors:["Stack", "Object", "Kernel"], instance_methods:{"initialize:":{doc:"<p>Initializes a new Stack with a given size.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["size"], file:"lib/stack.fy", lines:[13, 13]}, ":initialize":{file:"lib/stack.fy", lines:[7, 7]}, ":size":{doc:"<p>Returns the size of the Stack.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/stack.fy", lines:[43, 43]}, ":top":{doc:"<p>Returns the top-of-stack element.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/stack.fy", lines:[37, 37]}, "push:":{doc:"<p>Pushes a value onto the Stack.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/stack.fy", lines:[19, 19]}, ":pop":{doc:"<p>Pops the top-of-stack element from the Stack and returns it.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/stack.fy", lines:[31, 31]}, ":empty?":{doc:"<p>Indicates, if the Stack is empty.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], file:"lib/stack.fy", lines:[49, 49]}, ":<<":{doc:"<p>Same as Stack#push:.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], file:"lib/stack.fy", lines:[25, 25]}}}, "FancySpec NegativeMatcher":{doc:"<p>NegativeMatcher expects its actual value to be unequal to an\nexpected value.\nIf the values are equal, a SpecTest failure is generated.</p>\n\n<div class=\"doctags\"></div>\n\n", methods:{"__class_init__":{file:"lib/fancy_spec.fy", lines:[158, 158]}}, ancestors:["FancySpec NegativeMatcher", "Object", "Kernel"], instance_methods:{"initialize:":{file:"lib/fancy_spec.fy", lines:[null, null]}, "unknown_message:with_params:":{doc:"<p>Forwardy any other message and parameters to the object itself\nand checks the return value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["msg", "params"], file:"lib/fancy_spec.fy", lines:[182, 182]}, ":==":{file:"lib/fancy_spec.fy", lines:[164, 164]}, ":!=":{file:"lib/fancy_spec.fy", lines:[170, 170]}, "be:":{file:"lib/fancy_spec.fy", lines:[185, 185]}, "method_missing":{}}}}, objects:{}}); })();
1
+ (function() { fancy.fdoc({title:"Fancy Documentation", classes:{"File":{ancestors:["File", "Enumerable", "IO", "IOMixin", "Object", "Unmarshalable", "File Constants", "Object", "Kernel"], doc:"<p>Instances of File represent files in the filesystem of the operating\nsystem on which Fancy is running.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":newline":{file:"lib/rbx/file.fy", doc:"<p>Writes a newline character to the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[189, 189]}, "write:":{file:"lib/rbx/file.fy", doc:"<p>Writes a given <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> to a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">str</code> </label><div>String to be written to a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</div></div></div>\n\n", arg:["str"], lines:[175, 175]}, "writeln:":{file:"lib/file.fy", doc:"<p>Writes a given argument as a String followed by a newline into the\nFile.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["x"], lines:[53, 53]}, "println:":{file:"lib/file.fy", doc:"<p>Writes a given argument as a String followed by a newline into the\nFile.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["x"], lines:[53, 53]}, "print:":{file:"lib/rbx/file.fy", doc:"<p>Writes a given <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> to a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">str</code> </label><div>String to be written to a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</div></div></div>\n\n", arg:["str"], lines:[175, 175]}, ":modes":{file:"lib/rbx/file.fy", doc:"<p>Returns the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[144, 144]}, "modes:":{file:"lib/rbx/file.fy", doc:"<p>Sets the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>New <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modes <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:["modes_arr"], lines:[154, 154]}, ":open?":{file:"lib/rbx/file.fy", doc:"<p>Indicates, if a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> is opened.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> opened, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[164, 164]}, ":close":{file:"lib/rbx/file.fy", doc:"<p>Closes an opened <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[62, 62]}, ":directory?":{file:"lib/rbx/file.fy", doc:"<p>Indicates, if a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> is a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> is a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[198, 198]}, "read:":{file:"lib/rbx/file.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">bytes</code> </label><div>Integer the amount of bytes to read from a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</div></div></div>\n\n", arg:["bytes"], lines:[183, 183]}}, methods:{"delete:":{file:"lib/rbx/file.fy", doc:"<p>Deletes a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> with a given <code data-lang=\"fancy\">filename</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Path to <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> to be deleted.</div></div></div>\n\n", arg:["filename"], lines:[113, 113]}, "open:modes:with:":{file:"lib/rbx/file.fy", doc:"<p>Opens a File with a given <code data-lang=\"fancy\">filename</code>, a <code data-lang=\"fancy\">modes_arr</code> (<code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>) and a <code data-lang=\"fancy\">block</code>.</p>\n\n<p>E.g. to open a File with read access and read all lines and print them to STDOUT:</p>\n\n<p> File open: \"foo.txt\" modes: ['read] with: |f| {</p>\n\n<pre><code> { f eof? } while_false: {\n f readln println\n }\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets called with the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> object that has been opened.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Filename to open/create.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>Array of symbols that describe the desired operations to perform.</div></div></div>\n\n", arg:["filename", "modes_arr", "block"], lines:[33, 33]}, "touch:":{file:"lib/file.fy", doc:"<p>Creates a new empty file with the given <code data-lang=\"fancy\">filename</code>, if it doesn't already exist.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Name of <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> to be created, if not already existant.</div></div></div>\n\n", arg:["filename"], lines:[40, 40]}, "rename:to:":{file:"lib/rbx/file.fy", doc:"<p>Renames a <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> on the filesystem.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">old_name</code> </label><div>Path to <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> to rename.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">new_name</code> </label><div>Path to new filename.</div></div></div>\n\n", arg:["old_name", "new_name"], lines:[134, 134]}, "exists?:":{file:"lib/rbx/file.fy", doc:"<p>Indicates if the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> with the given <code data-lang=\"fancy\">filename</code> exists.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Path to file to check for existance.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> exists, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["filename"], lines:[49, 49]}, "modes_str:":{file:"lib/rbx/file.fy", doc:"<p>Returns the appropriate <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of the <code data-lang=\"fancy\">modes_arr</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> that represents the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> access modifiers, as used by Ruby.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>Array of symbols that describe the desired operations to perform.</div></div></div>\n\n", arg:["modes_arr"], lines:[94, 94]}, "directory?:":{file:"lib/rbx/file.fy", doc:"<p>Indicates, if a given <code data-lang=\"fancy\">path</code> refers to a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">path</code> </label><div>Path to check if it's a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if the <code data-lang=\"fancy\">path</code> refers to a <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["path"], lines:[124, 124]}, "open:modes:":{file:"lib/rbx/file.fy", doc:"<p>Similar to open:modes:with: but takes no <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> argument to be\ncalled with the <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> instance.\nReturns the opened <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> instead and expects the caller to <code data-lang=\"fancy\">close</code> it manually.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">filename</code> </label><div>Filename to open/create.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> instance that represents the opened <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">modes_arr</code> </label><div>Array of symbols that describe the desired operations to perform.</div></div></div>\n\n", arg:["filename", "modes_arr"], lines:[76, 76]}, "read:":{file:"lib/file.fy", doc:"<p>Reads all the contens (in ASCII mode) of a given file and returns\nthem as an Array of lines being read.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["filename"], lines:[24, 24]}}}, "Set":{ancestors:["Set", "FancyEnumerable", "Object", "Object", "Kernel"], doc:"<p>A simple Set data structure class.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/set.fy", doc:"<p>Initialize a new Set with a given collection of values.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">values</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"FancyEnumerable\" class=\"class-ref selectable\">FancyEnumerable</code> of values to be used as values for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["values"], lines:[15, 15]}, ":-":{file:"lib/set.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other Set to use for creating difference Set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Difference Set by removing all values from <code data-lang=\"fancy\">self</code> that are in <code data-lang=\"fancy\">other</code>.</div></div></div>\n\n", arg:["other"], lines:[156, 156]}, ":initialize":{file:"lib/set.fy", doc:"<p>Initialize a new empty Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[26, 26]}, ":size":{file:"lib/set.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Amount of values in <code data-lang=\"fancy\">self</code> as a <code data-lang=\"fancy\" data-class-ref=\"Fixnum\" class=\"class-ref selectable\">Fixnum</code>.</div></div></div>\n\n", arg:[], lines:[42, 42]}, "remove:":{file:"lib/set.fy", doc:"<p>Removes a given object from a Set, if available.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be removed from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["obj"], lines:[138, 138]}, ":inspect":{file:"lib/set.fy", doc:"<p>Returns a detailed <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of a Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[128, 128]}, ":<<":{file:"lib/set.fy", doc:"<p>Insert a value into the Set.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value to be inserted into <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["value"], lines:[88, 88]}, ":values":{file:"lib/set.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Values in self as an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[34, 34]}, ":&":{file:"lib/set.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other Set to use for creating Set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Intersection Set containing only values that are in both <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code>.</div></div></div>\n\n", arg:["other"], lines:[169, 169]}, ":+":{file:"lib/set.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other Set to use for creating union Set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Union Set containing all values in both <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code>.</div></div></div>\n\n", arg:["other"], lines:[147, 147]}, ":==":{file:"lib/set.fy", doc:"<p>Indicates, if two Sets are equal.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Set\" class=\"class-ref selectable\">Set</code> to compare <code data-lang=\"fancy\">self</code> against.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if self is equal to <code data-lang=\"fancy\">other</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[68, 68]}, "each:":{file:"lib/set.fy", doc:"<p>Calls a given Block for each element of the Set.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each value in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[111, 111]}, "includes?:":{file:"lib/set.fy", doc:"<p>Indicates, if the Set includes a given value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value to be checked for if included in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\">value</code> in <code data-lang=\"fancy\">self</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["value"], lines:[100, 100]}, ":empty?":{file:"lib/set.fy", doc:"<p>Indicates, if a Set is empty.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if Set is emty, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[52, 52]}, ":to_s":{file:"lib/set.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of a Set.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[120, 120]}}, methods:{":[]":{file:"lib/set.fy", doc:"<p>Initialize a new Set with a given collection of values.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">values</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"FancyEnumerable\" class=\"class-ref selectable\">FancyEnumerable</code> of values used for new Set.</div></div></div>\n\n", arg:["values"], lines:[77, 77]}}}, "Struct":{ancestors:["Struct", "Enumerable", "Object", "Kernel"], doc:"<p>Structs are light-weight classes with predefined read-writable slots.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"new:":{file:"lib/struct.fy", doc:"<p>Creates a new Struct class with the given slots.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames the new Struct should contain.</div></div></div>\n\n", arg:["slots"], lines:[14, 14]}}}, "Fancy Package":{ancestors:["Fancy Package", "Object", "Kernel"], doc:"<p>The Fancy Package System.</p>\n\n<p>This class is used for installing and uninstalling fancy packages on\nthe system.</p>\n\n<p>Example:\n $ fancy install bakkdoor/mongo.fy</p>\n\n<p>Will install the mongo.fy package from http://github.com/bakkdoor/mongo.fy\nin the latest released version or get the current HEAD (master\nbranch) revision.</p>\n\n<p>You can then load the package in your source file via\n require: \"mongo.fy\"</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{":add_to_loadpath":{file:"lib/package.fy", doc:"<p>Adds the Fancy Package install dir to the loadpath so you can\neasily <code data-lang=\"fancy\">require:</code> packages into your code.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[89, 89]}, "uninstall:":{file:"lib/package.fy", doc:"<p>Uninstalls a package with a given name (if installed).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">package_name</code> </label><div>Name of package to uninstall.</div></div></div>\n\n", arg:["package_name"], lines:[52, 52]}, ":list_packages":{file:"lib/package.fy", doc:"<p>Lists (prints) all installed packages on this system.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[60, 60]}, ":package_list_file":{file:"lib/package.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Path to installed_packages.txt <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code> on system.</div></div></div>\n\n", arg:[], lines:[80, 80]}, ":root_dir":{file:"lib/package.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Fancy Package root install dir.</div></div></div>\n\n", arg:[], lines:[73, 73]}, "install:":{file:"lib/package.fy", doc:"<p>Installs a package with a given name.\nExpects package_name to be a string in the form of:\n user/repo\nWhich would get the package code from github.com/user/repo</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">package_name</code> </label><div>Name of package to install.</div></div></div>\n\n", arg:["package_name"], lines:[42, 42]}}}, "RespondsToProxy":{ancestors:["RespondsToProxy", "BasicObject", "Object", "Kernel"], doc:"<p>A RespondsToProxy is a Proxy that forwards any message sent to it to it's <code data-lang=\"fancy\">target</code> instance variable\nonly if it responds to that message. Any messages that <code data-lang=\"fancy\">target</code> doesn't respond to simply won't be sent\nand <code data-lang=\"fancy\">nil</code> will be returned.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/proxy.fy", doc:"<p>Initializes a new RespondsToProxy for <code data-lang=\"fancy\">target</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">target</code> </label><div>Target receiver object.</div></div></div>\n\n", arg:["@target"], lines:[48, 48]}, "unknown_message:with_params:":{file:"lib/proxy.fy", doc:"<p>Forwards all incoming message to <code data-lang=\"fancy\">self</code> to <code data-lang=\"fancy\">@target</code>\nonly if <code data-lang=\"fancy\">@target</code> responds to them.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">msg</code> </label><div>Incoming message name.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">params</code> </label><div>Paremeters of incoming message send.</div></div></div>\n\n", arg:["msg", "params"], lines:[62, 62]}}, methods:{}}, "Array":{ancestors:["Array", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], doc:"<p>Array class.\nArrays are dynamically resizable containers with a constant-time\nindex-based access to members.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":join":{file:"lib/array.fy", doc:"<p>Joins all elements with the empty <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.\n [\"hello\", \"world\", \"!\"] join # => \"hello,world!\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Elements of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> joined to a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div></div>\n\n", arg:[], lines:[230, 230]}, "index:":{file:"lib/rbx/array.fy", doc:"<p>Returns the index of an item (or nil, if it isn't in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item/Value for which the index is requested within an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Index of the value passed in within the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>, or <code data-lang=\"fancy\">nil</code>, if value not present.</div></div></div>\n\n", arg:["item"], lines:[85, 85]}, "remove_if:":{file:"lib/array.fy", doc:"<p>Like <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"remove:\" data-owner-class=\"Array\" class=\"singleton-method-ref selectable\">remove:</code>, but taking a condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.\nRemoves all elements that meet the given condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, with all elements removed for which <code data-lang=\"fancy\">condition</code> yields true.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (or <code data-lang=\"fancy\">Callable</code>) that indicates, if an element should be removed from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["condition"], lines:[277, 277]}, ":second":{file:"lib/array.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The second element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[82, 82]}, "select_with_index:":{file:"lib/array.fy", doc:"<p>Same as #select:, just gets also called with an additional argument\nfor each element's index value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[423, 423]}, ":first":{file:"lib/array.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The first element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[75, 75]}, ":to_a":{file:"lib/array.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[322, 322]}, ":compact!":{file:"lib/array.fy", doc:"<p>Removes all nil-value elements in place.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:[], lines:[252, 252]}, "indices_of:":{file:"lib/array.fy", doc:"<p>Returns an Array of all indices of this item. Empty Array if item does not occur.\n [1, 'foo, 2, 'foo] indices_of: 'foo # => [1, 3]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item/Value for which a list of indices is requested within an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all indices for a given value within an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> (possibly empty).</div></div></div>\n\n", arg:["item"], lines:[369, 369]}, "at:":{file:"lib/rbx/array.fy", doc:"<p>Returns the element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> at a given index.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index for value to retrieve.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value with the given index (if available), or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["idx"], lines:[62, 62]}, "each:":{file:"lib/array.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[126, 126]}, "reject:":{file:"lib/rbx/array.fy", doc:"<p>Returns a new Array with all the elements which yield nil or false\nwhen called with the given Block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[124, 124]}, "join:":{file:"lib/rbx/array.fy", doc:"<p>Joins all elements in the Array with a given <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.\n [1,2,3] join: \", \\\342\200\235 # => \\\342\200\2351, 2, 3\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">join_str</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> by which to <code data-lang=\"fancy\">join</code> all elements in <code data-lang=\"fancy\">self</code> into a new <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Joined <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> with all elements with <code data-lang=\"fancy\">join_str</code>.</div></div></div>\n\n", arg:["join_str"], lines:[145, 145]}, "remove_at:":{file:"lib/rbx/array.fy", doc:"<p>Removes an element at a given index.\nIf given an Array of indices, removes all the elements with these indices.\nReturns the deleted object if an index was given, the last deleted object for an Array given.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["index"], lines:[50, 50]}, "select!:":{file:"lib/array.fy", doc:"<p>Removes all elements in place, that don't meet the condition.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, but changed with all elements removed that don't yield <code data-lang=\"fancy\">true</code> for <code data-lang=\"fancy\">condition</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div>A condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (or something <code data-lang=\"fancy\">Callable</code>) for selecting items from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["condition"], lines:[241, 241]}, ":indices":{file:"lib/array.fy", doc:"<p>Returns an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the indices of an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.\n [1,2,3] indices # => [0,1,2]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all indices of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[357, 357]}, "values_at:":{file:"lib/array.fy", doc:"<p>Returns new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with elements at given indices.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx_arr</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of indices.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the items with the given indices in <code data-lang=\"fancy\">idx_arr</code>.</div></div></div>\n\n", arg:["idx_arr"], lines:[202, 202]}, "at:put:":{file:"lib/rbx/array.fy", doc:"<p>Inserts a given object at a given index (position) in the Array.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index to set a value for.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Value (object) to be set at the given index.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">obj</div></div></div>\n\n\n<p></code></p>\n", arg:["idx", "obj"], lines:[73, 73]}, ":rest":{file:"lib/array.fy", doc:"<p>Returns all elements except the first one as a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>All elements in an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> after the first one.</div></div></div>\n\n", arg:[], lines:[105, 105]}, ":println":{file:"lib/array.fy", doc:"<p>Prints each element on a seperate line.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[287, 287]}, "all?:":{file:"lib/rbx/array.fy", doc:"<p>Takes condition-block and returns <code data-lang=\"fancy\">true</code> if all elements meet it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Predicate <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element until it returns <code data-lang=\"fancy\">false</code> for any one of them.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if all elements in <code data-lang=\"fancy\">self</code> yield <code data-lang=\"fancy\">true</code> for <code data-lang=\"fancy\">block</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["block"], lines:[115, 115]}, "append:":{file:"lib/array.fy", doc:"<p>Appends another <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> onto this one.</p>\n\n<p>Example:\n a = [1,2,3]\n a append: [3,4,5]\n a # => [1,2,3,3,4,5]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">arr</code> </label><div>Other <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> to be appended to <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["arr"], lines:[47, 47]}, "from:to:":{file:"lib/array.fy", doc:"<p>Returns sub-array starting at from: and going to to:</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">from</code> </label><div>Start index for sub-array.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">to</code> </label><div>End index ofr sub-array.</div></div></div>\n\n", arg:["from", "to"], lines:[389, 389]}, "find_by:":{file:"lib/array.fy", doc:"<p>Like find: but takes a block that gets called with each element to find it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The first element, for which <code data-lang=\"fancy\">block</code> yields <code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:["block"], lines:[191, 191]}, "find:":{file:"lib/array.fy", doc:"<p>Returns the item, if it's in the Array or nil (if not found).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code> / Element to find in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">item</code> if, it's found in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>, otherwise <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["item"], lines:[176, 176]}, "any?:":{file:"lib/rbx/array.fy", doc:"<p>Takes condition-block and returns <code data-lang=\"fancy\">true</code> if any element meets it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Predicate <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element until it returns <code data-lang=\"fancy\">true</code> for any one of them.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if any element in <code data-lang=\"fancy\">self</code> yields <code data-lang=\"fancy\">true</code> for <code data-lang=\"fancy\">block</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["block"], lines:[105, 105]}, ":*":{file:"lib/array.fy", doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> that contains the elements of self num times\nin a row.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["num"], lines:[331, 331]}, "remove:":{file:"lib/array.fy", doc:"<p>Removes all occurances of obj in the Array.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be removed within <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, with all occurances of <code data-lang=\"fancy\">obj</code> removed.</div></div></div>\n\n", arg:["obj"], lines:[264, 264]}, ":clone":{file:"lib/array.fy", doc:"<p>Clones (shallow copy) the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A shallow copy of the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[27, 27]}, "reject!:":{file:"lib/rbx/array.fy", doc:"<p>Same as Array#reject: but doing so in-place (destructive).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[132, 132]}, "[]:":{file:"lib/rbx/array.fy", doc:"<p>Inserts a given object at a given index (position) in the Array.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index to set a value for.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Value (object) to be set at the given index.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">obj</div></div></div>\n\n\n<p></code></p>\n", arg:["idx", "obj"], lines:[73, 73]}, ":inspect":{file:"lib/array.fy", doc:"<p>Returns a pretty-printed <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\">self</code>.\nExample:\n [1, 'foo, \"bar\", 42] inspect # => \"[1, 'foo, \\\"bar\\\", 42]\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Pretty-printed <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[308, 308]}, ":[]":{file:"lib/array.fy", doc:"<p>Given an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of 2 <code data-lang=\"fancy\" data-class-ref=\"Fixnum\" class=\"class-ref selectable\">Fixnum</code>s, it returns the sub-array between the given indices.\nIf given a single <code data-lang=\"fancy\" data-class-ref=\"Fixnum\" class=\"class-ref selectable\">Fixnum</code>, returns the element at that index.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">index</code> </label><div>Index to get the value for or <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of 2 indices used for a sub-array.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Element(s) stored in <code data-lang=\"fancy\">self</code> at <code data-lang=\"fancy\">index</code>, possibly <code data-lang=\"fancy\">nil</code> or an empty <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:["index"], lines:[68, 68]}, ":+":{file:"lib/array.fy", doc:"<p>Returns concatenation with another <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.\n [1,2,3] + [3,4,5] # => [1,2,3,3,4,5]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Concatenation of <code data-lang=\"fancy\">self</code> with another <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code></div></div></div>\n\n", arg:["other_arr"], lines:[346, 346]}, "select:":{file:"lib/array.fy", doc:"<p>Returns a new Array with all the elements in self that yield a\ntrue-ish value when called with the given Block.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Predicate <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be used as filter.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the elements for which <code data-lang=\"fancy\">block</code> doesn't yield <code data-lang=\"fancy\">false</code> or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["block"], lines:[408, 408]}, ":third":{file:"lib/array.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The third element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[89, 89]}, ":>>":{file:"lib/array.fy", doc:"<p>Returns new Array with elements of other_arr appended to these.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other_arr</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> to be appended to <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>New <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with <code data-lang=\"fancy\">other_arr</code> and <code data-lang=\"fancy\">self</code> appended.</div></div></div>\n\n", arg:["other_arr"], lines:[217, 217]}, "each_with_index:":{file:"lib/array.fy", doc:"<p>Iterate over all elements in <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.\nCalls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element and its index.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each element and its inde in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[137, 137]}, "includes?:":{file:"lib/rbx/array.fy", doc:"<p>Indicates, if an Array includes a given value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to search for in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">obj</code> is in <code data-lang=\"fancy\">self</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["obj"], lines:[25, 25]}, ":fourth":{file:"lib/array.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The fourth element in the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[96, 96]}, "last:":{file:"lib/rbx/array.fy", doc:"<p>Returns new Array with last n elements specified.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">count</code> </label><div>Number of last elements to get from an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with up to <code data-lang=\"fancy\">count</code> size of last elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["count"], lines:[95, 95]}, ":to_s":{file:"lib/array.fy", doc:"<p>Returns <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[297, 297]}, ":=?":{file:"lib/array.fy", doc:"<p>Compares two Arrays where order does not matter.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> to compare this one to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if all elements of <code data-lang=\"fancy\">other</code> are in <code data-lang=\"fancy\">self</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[159, 159]}}, methods:{"new:":{file:"lib/array.fy", doc:"<p>Creates a new Array with a given <code data-lang=\"fancy\">size</code> (default value is <code data-lang=\"fancy\">nil</code>).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">size</code> </label><div>Initial size of the <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> to be created (values default to <code data-lang=\"fancy\">nil</code>).</div></div></div>\n\n", arg:["size"], lines:[17, 17]}, ":===":{file:"lib/array.fy", doc:"<p>Matches an <code data-lang=\"fancy\">Array</code> against another object.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">object</code> </label><div>Object to match <code data-lang=\"fancy\">self</code> against.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</code>, if no match, matched values (in an <code data-lang=\"fancy\">Array</code>) otherwise.</div></div></div>\n\n", arg:["object"], lines:[443, 443]}, "new:with:":{file:"lib/rbx/array.fy", doc:"<p>Creates a new Array with a given size and default-value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["size", "default"], lines:[13, 13]}}}, "Fixnum":{ancestors:["Fixnum", "Number", "Object", "ImmediateValue", "Integer", "Precision", "Numeric", "Comparable", "Object", "Kernel"], doc:"<p>Standard class for integer values in Fancy.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Directory":{ancestors:["Directory", "Object", "Kernel"], doc:"<p>Instances of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> represent directories in the filesystem of\nthe operating system, in which Fancy is being run.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"delete:":{file:"lib/rbx/directory.fy", doc:"<p>Deletes a directory with a given name, if it's empty.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path to <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to delete.</div></div></div>\n\n", arg:["dirname"], lines:[45, 45]}, "list:":{file:"lib/rbx/directory.fy", doc:"<p>Example usage:\n Directory list: \"tests/<em>*/</em>.fy\" # => [\"tests/file1.fy\", \"tests/more/file2.fy\"]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">pattern</code> </label><div>Directory pattern or name containing files to be returned as an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of files matching directory <code data-lang=\"fancy\">pattern</code>.</div></div></div>\n\n", arg:["pattern"], lines:[56, 56]}, "create:":{file:"lib/rbx/directory.fy", doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> on the filesystem, possibly throwing\nIOError Exceptions that might occur.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to create.</div></div></div>\n\n", arg:["dirname"], lines:[15, 15]}, "exists?:":{file:"lib/directory.fy", doc:"<p>Indicates, if a Directory exists with a given pathname.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to check for existance.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">@return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> exists, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["dirname"], lines:[15, 15]}, "create!:":{file:"lib/rbx/directory.fy", doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> on the filesystem, ignoring any\nExceptions that might occur.\nBasically works like running <code>mkdir -p</code> on the shell.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">dirname</code> </label><div>Path of <code data-lang=\"fancy\" data-class-ref=\"Directory\" class=\"class-ref selectable\">Directory</code> to create.</div></div></div>\n\n", arg:["dirname"], lines:[30, 30]}}}, "ProxyReceiver":{ancestors:["ProxyReceiver", "BasicObject", "Object", "Kernel"], doc:"<p>A ProxyReceiver is an object which proxies all message sends to it to 2 other objects.\nIt will send each message first to its <code data-lang=\"fancy\">proxy</code> instance variable and then to the <code data-lang=\"fancy\">obj</code> instance variable.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"unknown_message:with_params:":{file:"lib/proxy.fy", doc:"<p>Forwards all incoming messages to <code data-lang=\"fancy\">self</code> to <code data-lang=\"fancy\">@proxy</code> and then <code data-lang=\"fancy\">@obj</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">msg</code> </label><div>Incoming message name.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">params</code> </label><div>Paremeters of incoming message send.</div></div></div>\n\n", arg:["msg", "params"], lines:[26, 26]}, "initialize:for:":{file:"lib/proxy.fy", doc:"<p>Initializes a new ProxyReceiver with <code data-lang=\"fancy\">proxy</code> for <code data-lang=\"fancy\">obj</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">proxy</code> </label><div>Proxy receiver for <code data-lang=\"fancy\">obj</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Original receiver object.</div></div></div>\n\n", arg:["@proxy", "@obj"], lines:[16, 16]}}, methods:{}}, "NameError":{ancestors:["NameError", "StandardError", "Exception", "Object", "Kernel"], doc:"<p>NameError exception class. Used within Rubinius.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Range":{ancestors:["Range", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], doc:"<p>Class of Range values. Are created by using Range literal syntax in Fancy.</p>\n\n<p>Example:\n (10..100) # Range from 10 to 100\n # the following code does the same as above:\n Range new: 10 to: 100</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"each:":{file:"lib/rbx/range.fy", doc:"<p>Calls <code data-lang=\"fancy\">block</code> on each value in <code data-lang=\"fancy\">self</code>. Used for iterating over a <code data-lang=\"fancy\" data-class-ref=\"Range\" class=\"class-ref selectable\">Range</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with every value in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[40, 40]}, "initialize:to:":{file:"lib/rbx/range.fy", doc:"<p>Initializes a new Range starting at <code data-lang=\"fancy\">start</code> and ending at <code data-lang=\"fancy\">end</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">end</code> </label><div>End element of Range.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">start</code> </label><div>Start element of Range.</div></div></div>\n\n", arg:["@start", "@end"], lines:[17, 17]}, ":to_s":{file:"lib/range.fy", doc:"<p>Same as Range#inspect</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[18, 18]}, ":inspect":{file:"lib/range.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[26, 26]}}, methods:{}}, "Thread":{ancestors:["Thread", "Object", "Kernel"], doc:"<p>Thread class.\nDeals with parallel execution.</p>\n\n<p>TODO:\n=> Still need to add more Fancy-ish wrapper methods and method\n documentation.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"sleep:":{file:"lib/rbx/thread.fy", doc:"<p>Sets the Fancy process for a given amount of seconds to sleep.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["seconds"], lines:[78, 78]}}}, "Fancy Package Uninstaller":{ancestors:["Fancy Package Uninstaller", "Object", "Kernel"], doc:"<p><code data-lang=\"fancy\">Fancy</code> Package@ Uninstaller.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Bignum":{ancestors:["Bignum", "Number", "Object", "Integer", "Precision", "Numeric", "Comparable", "Object", "Kernel"], doc:"<p>Class for large integer values in Fancy.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "MatchData":{ancestors:["MatchData", "Unmarshalable", "Object", "Kernel"], doc:"<p>MatchData instances are created when using the #=== match operator\n(e.g. by using match/case expressions).</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"at:":{file:"lib/rbx/match_data.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index of value to get.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value at index <code data-lang=\"fancy\">idx</code>.</div></div></div>\n\n", arg:["idx"], lines:[16, 16]}, ":to_a":{file:"lib/rbx/match_data.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> representation of <code data-lang=\"fancy\">self</code> containing matched values of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[24, 24]}}, methods:{}}, "NilClass":{ancestors:["NilClass", "ImmediateValue", "Object", "Kernel"], doc:"<p>NilClass. The class of the singleton <code data-lang=\"fancy\">nil</code> value.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"if_nil:else:":{file:"lib/nil_class.fy", doc:"<p>Calls <code data-lang=\"fancy\">then_block</code> with <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">then_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">else_block</code> </label><div>Gets ignored.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">then_block</code> with <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["then_block", "else_block"], lines:[53, 53]}, "if_nil:":{file:"lib/nil_class.fy", doc:"<p>Calls <code data-lang=\"fancy\">block</code> with <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">block</code> with <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[41, 41]}, ":nil?":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:[], lines:[61, 61]}, ":not":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:[], lines:[87, 87]}, "if_true:":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["block"], lines:[21, 21]}, "if_true:else:":{file:"lib/nil_class.fy", doc:"<p>Calls <code data-lang=\"fancy\">else_block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">else_block</code>.</div></div></div>\n\n", arg:["then_block", "else_block"], lines:[30, 30]}, ":to_a":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An empty <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[79, 79]}, ":to_s":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An empty <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div></div>\n\n", arg:[], lines:[69, 69]}, ":inspect":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</code> as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div></div>\n\n", arg:[], lines:[95, 95]}}, methods:{":new":{file:"lib/nil_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:[], lines:[13, 13]}}}, "Regexp":{ancestors:["Regexp", "Object", "Kernel"], doc:"<p>Regular Expression class. Used by Regexp literals in Fancy.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Date":{ancestors:["Date", "Comparable", "Object", "Kernel"], doc:"<p>Date class. Used for timely stuff.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "TCPSocket":{ancestors:["TCPSocket", "IPSocket", "BasicSocket", "IO", "IOMixin", "Object", "Unmarshalable", "File Constants", "Object", "Kernel"], doc:"<p>TCP Socket class.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"open:port:":{file:"lib/rbx/tcp_socket.fy", doc:"<p>Creates and opens a new <code data-lang=\"fancy\" data-class-ref=\"TCPSocket\" class=\"class-ref selectable\">TCPSocket</code> on <code data-lang=\"fancy\">server</code> and <code data-lang=\"fancy\">port</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">server</code> </label><div>Server hostname to open Socket on.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">port</code> </label><div>Server port to open Socket on.</div></div></div>\n\n", arg:["server", "port"], lines:[17, 17]}}}, "Fancy Documentation":{ancestors:["Fancy Documentation", "Object", "Kernel"], doc:"<p>A Fancy Documentation object is a holder for docstrings and specs.\nKeeps a registry of documentation for anything Fancy.</p>\n\n<p>Provides methods for searching and formatting an Object's docstrings.\nThis can be be handy for users of the interactive Fancy REPL,\ndocument generators, instrospection tools, IDEs, anything!</p>\n\n<p>This object can be converted to just anything by using its format:\nmethod. Formatters can be registered with Fancy Documentation#formatter:is:</p>\n\n<p>By default two formatters are defined:</p>\n\n<p> 'fancy => Returns the Fancy::Documentation object\n 'string => Returns the docs string representation</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"format:":{file:"lib/documentation.fy", doc:"<p>If format is specified, the documentation string will be\nconverted using the corresponding formatter. This allows\nyou to extend Fancy documentation system, and produce\nhtml documents, man pages, or anything you can imagine.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["format"], lines:[58, 58]}, ":docs":{doc:"<p>An array of docstrings for the object beind documented.</p>\n\n<p>We have an array of docstrings because in Fancy, some\nthings like classes can be re-openned and the user may\nspecify new documentation for it each time. Thus we dont\nwant to loose the previous documentation but rather build\nupon it. That is, fancy supports incremental documentation.</p>\n\n<div class=\"doctags\"></div>\n\n"}, ":specs":{doc:"<p>An array of associated Fancy specs for the object\nbeing documented.</p>\n\n<p>Its a lot better to keep the associated specs in\nFancy Documentation objects instead of just having them\nin method instances. This allows us to associate any object\nwith an spec example.</p>\n\n<p>This way you can have a single Fancy spec example that\nis related to many objects (methods, constants, classes)\nthat are being specified. Later in documentation, we can\nprovide links to all specs where an object is being exercised.</p>\n\n<div class=\"doctags\"></div>\n\n"}}, methods:{"for:append:":{file:"lib/documentation.fy", doc:"<p>Append docstring to the documentation for obj.\nIf obj has no documentation, one is created for it.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj", "docstring"], lines:[70, 70]}, "remove:":{file:"lib/rbx/documentation.fy", doc:"<p>Removes the documentation for obj.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], lines:[55, 55]}, "formatter:is:":{file:"lib/documentation.fy", doc:"<p>Registers a callable object as formatter under name.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["name", "callable"], lines:[91, 91]}, ":formatters":{file:"lib/documentation.fy", doc:"<p>Obtain the hash of known documentation formatters.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[100, 100]}, "for:is:":{file:"lib/rbx/documentation.fy", doc:"<p>Create a Fancy::Documentation instance.</p>\n\n<p>Note: As we're bootstrapping, we cannot set documentation here as\nan string literal.</p>\n\n<p>We are the very first thing to load, so just create a new\nFancy::Documentation object without using new:, and set it as\nfancy docs.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj", "docstring"], lines:[38, 38]}, "for:":{file:"lib/rbx/documentation.fy", doc:"<p>Obtains the Fancy Documentation for obj.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["obj"], lines:[50, 50]}, "formatter:":{file:"lib/documentation.fy", doc:"<p>Obtains a formatter by a given name. Returns a callable object.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["name"], lines:[83, 83]}}}, "TrueClass":{ancestors:["TrueClass", "ImmediateValue", "Object", "Kernel"], doc:"<p>TrueClass. The class of the singleton <code data-lang=\"fancy\">true</code> value.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":not":{file:"lib/true_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:[], lines:[70, 70]}, "if_true:":{file:"lib/true_class.fy", doc:"<p>Calls <code data-lang=\"fancy\">block</code> with <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">block</code> with <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[24, 24]}, "if_true:else:":{file:"lib/true_class.fy", doc:"<p>Calls <code data-lang=\"fancy\">then_block</code> with <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">then_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">else_block</code> </label><div>Gets ignored.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">then_block</code> with <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["then_block", "else_block"], lines:[36, 36]}, ":true?":{file:"lib/true_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:[], lines:[44, 44]}, ":to_a":{file:"lib/true_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An empty <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:[], lines:[62, 62]}, ":to_s":{file:"lib/true_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div></div>\n\n", arg:[], lines:[52, 52]}, ":inspect":{file:"lib/true_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div></div>\n\n", arg:[], lines:[52, 52]}}, methods:{":new":{file:"lib/true_class.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:[], lines:[13, 13]}}}, "Console":{ancestors:["Console", "Object", "Kernel"], doc:"<p>Console class. Used for <code data-lang=\"fancy\">STDIO</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{":newline":{file:"lib/rbx/console.fy", doc:"<p>Prints a newline to <code data-lang=\"fancy\">STDOUT</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[7, 7]}, ":readln":{file:"lib/rbx/console.fy", doc:"<p>Reads a line from <code data-lang=\"fancy\">STDIN</code> and returns it as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Line (<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>) read from <code data-lang=\"fancy\">STDIN</code>.</div></div></div>\n\n", arg:[], lines:[55, 55]}, "println:":{file:"lib/rbx/console.fy", doc:"<p>Prints a given object on <code data-lang=\"fancy\">STDOUT</code>, followed by a newline.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be printed on <code data-lang=\"fancy\">STDOUT</code>, followed by a newline.</div></div></div>\n\n", arg:["obj"], lines:[27, 27]}, "print:":{file:"lib/rbx/console.fy", doc:"<p>Prints a given object on <code data-lang=\"fancy\">STDOUT</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be printed on <code data-lang=\"fancy\">STDOUT</code>.</div></div></div>\n\n", arg:["obj"], lines:[17, 17]}, ":clear":{file:"lib/rbx/console.fy", doc:"<p>Clears the <code data-lang=\"fancy\" data-class-ref=\"Console\" class=\"class-ref selectable\">Console</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[61, 61]}, "readln:":{file:"lib/rbx/console.fy", doc:"<p>Prints a given message to <code data-lang=\"fancy\">STDOUT</code>, followed by reading a line from\n<code data-lang=\"fancy\">STDIN</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> that should be printed to <code data-lang=\"fancy\">STDOUT</code> before reading from <code data-lang=\"fancy\">STDIN</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Line (<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>) read from <code data-lang=\"fancy\">STDIN</code>.</div></div></div>\n\n", arg:["message"], lines:[40, 40]}}}, "FancyEnumerable":{ancestors:["FancyEnumerable", "Object", "Kernel"], doc:"<p>Mixin-Class with useful methods for collections that implement an <code data-lang=\"fancy\" data-method=\"each:\" class=\"selectable\">each:</code> method.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":first":{file:"lib/enumerable.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>First element in <code data-lang=\"fancy\">self</code> or <code data-lang=\"fancy\">nil</code>, if empty.</div></div></div>\n\n", arg:[], lines:[276, 276]}, "sort_by:":{file:"lib/enumerable.fy", doc:"<p>Sorts a collection by a given comparison block.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> taking 2 arguments used to compare elements in a collection.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Sorted <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[411, 411]}, "inject:into:":{file:"lib/enumerable.fy", doc:"<p>Same as reduce:init_val: but taking the initial value as first\nand the reducing block as second parameter.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["val", "block"], lines:[226, 226]}, "partition_by:":{file:"lib/enumerable.fy", doc:"<p>Example:\n 0 upto: 10 . partition_by: <code data-lang=\"fancy\">{&lt;</code> 3} # => [[0, 1, 2], [3, 4, 5, 6, 7, 8, 9, 10]]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets used to decide when to partition elements in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>s, partitioned by equal return values of calling <code data-lang=\"fancy\">block</code> with each element</div></div></div>\n\n", arg:["block"], lines:[371, 371]}, "each:in_between:":{file:"lib/enumerable.fy", doc:"<p>Similar to <code data-lang=\"fancy\" data-method=\"each:\" class=\"selectable\">each:</code> but calls an additional <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> between\ncalling the first <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> for each element in self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["each_block", "between_block"], lines:[23, 23]}, ":max":{file:"lib/enumerable.fy", doc:"<p>Returns the maximum value in the Enumerable (via the '>' comparison message).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Maximum value in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[325, 325]}, "map:":{file:"lib/enumerable.fy", doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with the results of calling a given block for every element.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets called with each element in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> containing all values of calling <code data-lang=\"fancy\">block</code> with each element in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[102, 102]}, ":last":{file:"lib/enumerable.fy", doc:"<p>Returns the last element in an Enumerable.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Last element in <code data-lang=\"fancy\">self</code> or <code data-lang=\"fancy\">nil</code>, if empty.</div></div></div>\n\n", arg:[], lines:[286, 286]}, ":uniq":{file:"lib/enumerable.fy", doc:"<p>Returns a new Array with all unique values (double entries are skipped).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all unique elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[235, 235]}, "take_while:":{file:"lib/enumerable.fy", doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> by taking elements from the beginning\nas long as they meet the given condition block.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all elements from the beginning until <code data-lang=\"fancy\">condition</code> yields <code data-lang=\"fancy\">false</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that is used as a condition for filtering.</div></div></div>\n\n", arg:["condition"], lines:[145, 145]}, ":product":{file:"lib/enumerable.fy", doc:"<p>Calculates the product of all the elements in the <code data-lang=\"fancy\">Enumerable</code>\n(assuming them to be <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code>s (implementing <code data-lang=\"fancy\">+</code> &amp; <code data-lang=\"fancy\">*</code>)).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[352, 352]}, "reject:":{file:"lib/enumerable.fy", doc:"<p>Similar to <code data-lang=\"fancy\" data-method=\"select:\" class=\"selectable\">select:</code> but inverse.\nReturns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all elements that don't meet the given condition block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], lines:[130, 130]}, "in_groups_of:":{file:"lib/enumerable.fy", doc:"<p>Example usage:\n [1,2,3,4,5] in_groups_of: 3 # => [[1,2,3],[4,5]]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>s with a max size of <code data-lang=\"fancy\">size</code> (grouped).</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">size</code> </label><div>Maximum size of each group.</div></div></div>\n\n", arg:["size"], lines:[422, 422]}, ":empty?":{file:"lib/enumerable.fy", doc:"<p>Indicates, if the Enumerable is empty (has no elements).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if size of <code data-lang=\"fancy\">self</code> is 0, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[265, 265]}, ":compact":{file:"lib/enumerable.fy", doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all values removed that are <code data-lang=\"fancy\">nil</code> ( return <code data-lang=\"fancy\">true</code> on <code data-lang=\"fancy\">nil?</code> ).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all non-nil elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[301, 301]}, "superior_by:":{file:"lib/enumerable.fy", doc:"<p>Returns the superiour element in the <code data-lang=\"fancy\">Enumerable</code> that has met\nthe given comparison block with all other elements.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["comparison_block"], lines:[309, 309]}, ":average":{file:"lib/enumerable.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Average value in <code data-lang=\"fancy\">self</code> (expecting <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code>s or Objects implementing <code data-lang=\"fancy\">+</code> and <code data-lang=\"fancy\">*</code>).</div></div></div>\n\n", arg:[], lines:[359, 359]}, "all?:":{file:"lib/enumerable.fy", doc:"<p>Similar to <code data-lang=\"fancy\" data-class-ref=\"FancyEnumerable\" class=\"class-ref selectable\">FancyEnumerable</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"any?:\" data-owner-class=\"FancyEnumerable\" class=\"singleton-method-ref selectable\">any?:</code> just checking for all elements.\nIndicates, if all elements meet the condition.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], lines:[57, 57]}, "find_by:":{file:"lib/enumerable.fy", doc:"<p>Similar to <code data-lang=\"fancy\" data-method=\"find:\" class=\"selectable\">find:</code> but takes a block that is called for each element to find it.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[91, 91]}, "find:":{file:"lib/enumerable.fy", doc:"<p>Returns <code data-lang=\"fancy\">nil</code>, if <code data-lang=\"fancy\">item</code> (or anything that returns <code data-lang=\"fancy\">true</code> when comparing to <code data-lang=\"fancy\">item</code>) isn't found.\nOtherwise returns that element that is equal to <code data-lang=\"fancy\">item</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item to be found in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The first element that is equal to <code data-lang=\"fancy\">item</code> or <code data-lang=\"fancy\">nil</code>, if none found.</div></div></div>\n\n", arg:["item"], lines:[79, 79]}, "drop:":{file:"lib/enumerable.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">amount</code> </label><div>Amount of elements to skip in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all but the first <code data-lang=\"fancy\">amount</code> elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["amount"], lines:[200, 200]}, ":size":{file:"lib/enumerable.fy", doc:"<p>Returns the size of an Enumerable.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Amount of elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[251, 251]}, "any?:":{file:"lib/enumerable.fy", doc:"<p>Indicates, if any element meets the condition.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">condition</code> yields <code data-lang=\"fancy\">true</code> for any element, <code data-lang=\"fancy\">false</code> otherwise.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (or <code data-lang=\"fancy\">Callable</code>) that is used to check if any element in <code data-lang=\"fancy\">self</code> yields true for it.</div></div></div>\n\n", arg:["condition"], lines:[43, 43]}, "take:":{file:"lib/enumerable.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">amount</code> </label><div>Amount of elements to take from <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>First <code data-lang=\"fancy\">amount</code> elements of <code data-lang=\"fancy\">self</code> in an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</div></div></div>\n\n", arg:["amount"], lines:[187, 187]}, "drop_while:":{file:"lib/enumerable.fy", doc:"<p>Similar to <code data-lang=\"fancy\" data-method=\"take_while:\" class=\"selectable\">take_while:</code> but inverse.\nReturns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> by skipping elements from the beginning\nas long as they meet the given condition block.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["condition"], lines:[163, 163]}, ":sum":{file:"lib/enumerable.fy", doc:"<p>Calculates the sum of all the elements in the <code data-lang=\"fancy\">Enumerable</code>\n(assuming them to be <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code>s (implementing '+' &amp; '*')).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[343, 343]}, "select:":{file:"lib/enumerable.fy", doc:"<p>Returns a new <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> with all elements that meet the given condition block.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> containing all elements in <code data-lang=\"fancy\">self</code> that yield <code data-lang=\"fancy\">true</code> when called with <code data-lang=\"fancy\">condition</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">condition</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that is used as a filter on all elements in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["condition"], lines:[117, 117]}, "includes?:":{file:"lib/enumerable.fy", doc:"<p>Indicates, if a collection includes a given element.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">item</code> </label><div>Item to check if it's included in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">item</code> in <code data-lang=\"fancy\">self</code>, otherwise <code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:["item"], lines:[15, 15]}, "reduce:init_val:":{file:"lib/enumerable.fy", doc:"<p>Calculates a value based on a given block to be called on an accumulator\nvalue and an initial value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block", "init_val"], lines:[213, 213]}, ":random":{file:"lib/enumerable.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Random element in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[394, 394]}, ":min":{file:"lib/enumerable.fy", doc:"<p>Returns the minimum value in the Enumerable (via the '&lt;' comparison message).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Minimum value in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[334, 334]}}, methods:{}}, "Tuple":{ancestors:["Rubinius Tuple", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], doc:"<p>Tuples are fixed-size containers providing index-based access to its\nelements.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":second":{file:"lib/tuple.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The second element in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[31, 31]}, ":==":{file:"lib/tuple.fy", doc:"<p>Compares two <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>s with each other.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> to compare <code data-lang=\"fancy\">self</code> with.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if tuples are equal element-wise, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[82, 82]}, ":third":{file:"lib/tuple.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The third element in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[39, 39]}, "at:":{file:"lib/rbx/tuple.fy", doc:"<p>Returns an element at a given indes.\nPossibly throws an <code data-lang=\"fancy\" data-class-ref=\"Rubinius\" class=\"class-ref selectable\">Rubinius</code> <code data-lang=\"fancy\" data-class-ref=\"Rubinius ObjectBoundsExceededError\" class=\"class-ref selectable\">ObjectBoundsExceededError</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index for the element to get.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Element at the given index within the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["idx"], lines:[34, 34]}, "each:":{file:"lib/tuple.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element in the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called for each element in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Return value of calling <code data-lang=\"fancy\">block</code> on the last item in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[57, 57]}, ":first":{file:"lib/tuple.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The first element in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[23, 23]}, ":fourth":{file:"lib/tuple.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The fourth element in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[47, 47]}, "at:put:":{file:"lib/rbx/tuple.fy", doc:"<p>Sets a value for a given index within a <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index of element to set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">val</code> </label><div>Value to set at given index.</div></div></div>\n\n", arg:["idx", "val"], lines:[44, 44]}, ":inspect":{file:"lib/tuple.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[90, 90]}, "[]:":{file:"lib/rbx/tuple.fy", doc:"<p>Sets a value for a given index within a <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index of element to set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">val</code> </label><div>Value to set at given index.</div></div></div>\n\n", arg:["idx", "val"], lines:[44, 44]}, ":[]":{file:"lib/tuple.fy", doc:"<p>Forwards to <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code>#at:.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["idx"], lines:[15, 15]}}, methods:{"new:":{file:"lib/rbx/tuple.fy", doc:"<p>Initializes a new <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> with a given amount of element slots.\nE.g. if <code data-lang=\"fancy\">size</code> is <code data-lang=\"fancy\">2</code>, creates a 2-Tuple.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">size</code> </label><div>Size of the <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> (amount of values to hold).</div></div></div>\n\n", arg:["size"], lines:[16, 16]}, ":===":{file:"lib/tuple.fy", doc:"<p>Matches <code data-lang=\"fancy\" data-class-ref=\"Tuple\" class=\"class-ref selectable\">Tuple</code> class against an object.\nIf the given object is a Tuple instance, return a Tuple object.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be matched against</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Tuple instance containing the values of <code data-lang=\"fancy\">obj</code> to be used in pattern matching.</div></div></div>\n\n", arg:["obj"], lines:[112, 112]}}}, "NoMethodError":{ancestors:["NoMethodError", "NameError", "StandardError", "Exception", "Object", "Kernel"], doc:"<p>Exception class that gets thrown when a method wasn't found within a class.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":method_name":{file:"lib/rbx/no_method_error.fy", doc:"<p>Returns the name of the method that was not found as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Name of the method not found (as <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>).</div></div></div>\n\n", arg:[], lines:[13, 13]}}, methods:{}}, "Fancy BreakIteration":{ancestors:["Fancy BreakIteration", "StandardError", "Exception", "Object", "Kernel"], doc:"<p>Raised to break the current iteration.\nIt is rescued by Block#loop.</p>\n\n<p>Example:\n 10 times: |i| {</p>\n\n<pre><code> i println\n if: (i == 3) then: {\n Fancy BreakIteration new raise!\n }\n</code></pre>\n\n<p> }\n \"Done!\" println</p>\n\n<p>Produces:\n 0\n 1\n 2\n 3\n Done!</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Actor":{ancestors:["Actor", "Object", "Kernel"], doc:"<p>Primitive Actor class.\nActors can be sent messages asynchronously. They process incoming messages\n(which can be any object, including Tuples, Arrays, Numbers ...) in a\nfirst-come, first-serve manner.</p>\n\n<p>Actors are used to implement asynchronous and future message sends in Fancy\nusing the <code data-lang=\"fancy\">@</code> and <code data-lang=\"fancy\">@@</code> syntax.</p>\n\n<p>Example usage:</p>\n\n<p> a = Actor spawn: {</p>\n\n<pre><code> loop: {\n match Actor receive {\n case 'hello -&gt; \"Hello World\" println\n case 'quit -&gt;\n \"OK, done!\" println\n break # Quit loop and let actor die\n }\n }\n</code></pre>\n\n<p> }</p>\n\n<p> 10 times: {</p>\n\n<pre><code> a ! 'hello # send 'hello to actor asynchronously\n</code></pre>\n\n<p> }\n a ! 'quit</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"spawn:":{file:"lib/rbx/actor.fy", doc:"<p>Example usage:</p>\n\n<p> Actor spawn: {</p>\n\n<pre><code> loop: {\n Actor receive println # print all incoming messages\n }\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that represents the <code data-lang=\"fancy\" data-class-ref=\"Actor\" class=\"class-ref selectable\">Actor</code>'s code body to be executed in a new <code data-lang=\"fancy\" data-class-ref=\"Thread\" class=\"class-ref selectable\">Thread</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Actor\" class=\"class-ref selectable\">Actor</code> running <code data-lang=\"fancy\">block</code> in a seperate <code data-lang=\"fancy\" data-class-ref=\"Thread\" class=\"class-ref selectable\">Thread</code>.</div></div></div>\n\n", arg:["block"], lines:[51, 51]}}}, "FancySpec SpecTest":{ancestors:["FancySpec SpecTest", "Object", "Kernel"], doc:"<p>FancySpec test case class.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"failed_test:":{file:"lib/fancy_spec.fy", doc:"<p>Gets called when a SpecTest failed.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">actual_and_expected</code> </label><div>Pair of actual and expected values for a failed test case.</div></div></div>\n\n", arg:["test"], lines:[157, 157]}, "failed_negative_test:":{file:"lib/fancy_spec.fy", doc:"<p>Gets called when a negative SpecTest (using <code data-lang=\"fancy\" data-class-ref=\"NegativeMatcher\" class=\"class-ref selectable\">NegativeMatcher</code>) failed.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value that should not have occured.</div></div></div>\n\n", arg:["test"], lines:[169, 169]}}}, "String":{ancestors:["String", "FancyEnumerable", "Object", "Enumerable", "Comparable", "Object", "Kernel"], doc:"<p>Strings are sequences of characters and behave as such.\nAll literal Strings within Fancy code are instances of the String\nclass.</p>\n\n<p>They also include FancyEnumerable, which means you can use all the\ncommon sequence methods on them, like +map:+, +select:+ etc.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"append:":{file:"lib/rbx/string.fy", doc:"<p>Appends another <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> onto this <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<p>Example usage:\n str = \"hello\"\n str append: \" world!\"\n str # => \"hello world!\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">string</code> </label><div>Other <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> to append on <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, but modified.</div></div></div>\n\n", arg:["string"], lines:[143, 143]}, ":blank?":{file:"lib/string.fy", doc:"<p>Indicates, if a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> consists only of whitespace.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\">self</code> consists only of whitespace, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[42, 42]}, "from:to:":{file:"lib/rbx/string.fy", doc:"<p>Returns a Substring from <code data-lang=\"fancy\">from</code> to <code data-lang=\"fancy\">to</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">from</code> </label><div>Start index.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">to</code> </label><div>End index.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Substring starting at index <code data-lang=\"fancy\">from</code> and ending at <code data-lang=\"fancy\">to</code>.</div></div></div>\n\n", arg:["from", "to"], lines:[41, 41]}, ":*":{file:"lib/string.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> that is the num-fold concatenation of itself.\n \"foo\" * 3 # => \\\342\200\235foofoofoo\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">num</code> </label><div>Amount of concatenations to do with <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> that is the num-fold concatenation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["num"], lines:[58, 58]}, ":lines":{file:"lib/string.fy", doc:"<p>Returns the lines of a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> as an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the lines in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[102, 102]}, ":eval":{file:"lib/rbx/string.fy", doc:"<p>Evaluates a <code data-lang=\"fancy\">String</code> in the current <code data-lang=\"fancy\">Binding</code> and returns its value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of evaluating <code data-lang=\"fancy\">self</code> as Fancy code.</div></div></div>\n\n", arg:[], lines:[85, 85]}, ":<<":{file:"lib/string.fy", doc:"<p>Appends <code data-lang=\"fancy\">object's</code> <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation to <code data-lang=\"fancy\">self</code>.</p>\n\n<p>Example usage:\n str = \"hello\"\n str &lt;&lt; \" \"\n str &lt;&lt; 42\n str # => \"hello 42\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">object</code> </label><div>An <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code> who's <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation will be appended to <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>, but modified.</div></div></div>\n\n", arg:["object"], lines:[119, 119]}, ":[]":{file:"lib/rbx/string.fy", doc:"<p>Given an Array of 2 Numbers, it returns the substring between the given indices.\nIf given a Number, returns the character at that index.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["index"], lines:[30, 30]}, ":words":{file:"lib/string.fy", doc:"<p>\"hello world\" words # => [\"hello\", \"world\"]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all the whitespace seperated words in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[72, 72]}, "at:":{file:"lib/rbx/string.fy", doc:"<p>Returns the character (as a <code data-lang=\"fancy\">String</code>) at index <code data-lang=\"fancy\">idx</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">idx</code> </label><div>Index of the character to retrieve.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Character in <code data-lang=\"fancy\">self</code> at position <code data-lang=\"fancy\">idx</code>.</div></div></div>\n\n", arg:["idx"], lines:[59, 59]}, ":whitespace?":{file:"lib/string.fy", doc:"<p>Indicates, if a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> is empty or a single whitespace character.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">self</code> consists only of a single whitespace character or is empty, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[32, 32]}, "each:":{file:"lib/rbx/string.fy", doc:"<p>Calls a given <code data-lang=\"fancy\">Block</code> with each character in a <code data-lang=\"fancy\">String</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\">Block</code> to be called for each character in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[49, 49]}, ":skip_leading_indentation":{file:"lib/string.fy", doc:"<p>Remove leading white space for multi-line strings.\nThis method expects the first character to be an line return.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[127, 127]}, ":split":{file:"lib/rbx/string.fy", doc:"<p>Splits a string by whitespace.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">Array</code> of all non-whitespace Substrings in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[77, 77]}, "split:":{file:"lib/rbx/string.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">str</code> </label><div><code data-lang=\"fancy\">String</code> where <code data-lang=\"fancy\">self</code> should be split at.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>An <code data-lang=\"fancy\">Array</code> of <code data-lang=\"fancy\">String</code> values in <code data-lang=\"fancy\">self</code> that are seperated by <code data-lang=\"fancy\">str</code>.</div></div></div>\n\n", arg:["str"], lines:[68, 68]}, ":++":{file:"lib/string.fy", doc:"<p>Concatenate <code data-lang=\"fancy\">self</code> with another Object's <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation.\n \"foo\\\342\200\235 ++ 42 # => \\\342\200\235foo42\\\342\200\235</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Object to concatenate <code data-lang=\"fancy\">self</code> with as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Concatenation of <code data-lang=\"fancy\">self</code> with <code data-lang=\"fancy\">other</code>.</div></div></div>\n\n", arg:["other"], lines:[22, 22]}, "includes?:":{file:"lib/rbx/string.fy", doc:"<p>Indicates if a given substring is in <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">substring</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> to be checked if it's in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\">substring</code> is in <code data-lang=\"fancy\">self</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["substring"], lines:[154, 154]}, ":rest":{file:"lib/string.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> containing all but the first character.\n \"hello\" rest # => \"ello\"</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> containing all but the first character.</div></div></div>\n\n", arg:[], lines:[92, 92]}, ":raise!":{file:"lib/string.fy", doc:"<p>Raises a new <code data-lang=\"fancy\" data-class-ref=\"StandardError\" class=\"class-ref selectable\">StandardError</code> with self as the message.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[80, 80]}, ":eval_global":{file:"lib/rbx/string.fy", doc:"<p>Same as <code data-lang=\"fancy\">String#eval</code> but evaluates <code data-lang=\"fancy\">self</code> in the global binding.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[93, 93]}}, methods:{}}, "Block":{ancestors:["Rubinius BlockEnvironment", "Object", "Kernel"], doc:"<p>The Block class (also BlockEnvironment) is the class of all\nBlock-literal values.\nA Block is a piece of unevaluated code, that can be passed around as\nany other value and evaluated by calling the +call+ or +call:+ methods.</p>\n\n<p>Blocks also work properly with their enclosing environment in that\nthey preserve any local variables that get used within the Block,\neven if the context in which they got defined has been destroyed.\n=> Blocks are proper closures.</p>\n\n<p>See: http://en.wikipedia.org/wiki/Closure_(computer_science) for\nmore information.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"if:":{file:"lib/block.fy", doc:"<p>Calls <code data-lang=\"fancy\">self</code> if <code data-lang=\"fancy\">obj</code> is true-ish.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Condition object to determine if <code data-lang=\"fancy\">self</code> should be called.</div></div></div>\n\n", arg:["obj"], lines:[106, 106]}, ":&&":{file:"lib/block.fy", doc:"<p>Short-circuiting &amp;&amp; (boolean AND).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other_block"], lines:[86, 86]}, ":receiver":{file:"lib/rbx/block.fy", doc:"<p>Returns the receiver of the <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (value for <code data-lang=\"fancy\">self</code>)</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Receiver object of a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.</div></div></div>\n\n", arg:[], lines:[13, 13]}, "while_nil:":{file:"lib/block.fy", doc:"<p>Executes a given Block while self evals to nil\nExample:\ni = 0\n{ i >= 10 } while_false: {\n i println\n i = i + 1\n}</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[28, 28]}, "unless:":{file:"lib/block.fy", doc:"<p>Opposite of Block#if:. Calls <code data-lang=\"fancy\">self</code> if <code data-lang=\"fancy\">obj</code> is false-ish.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Condition object to determine if <code data-lang=\"fancy\">self</code> should not be called.</div></div></div>\n\n", arg:["obj"], lines:[116, 116]}, "while_false:":{file:"lib/block.fy", doc:"<p>Executes a given Block while self evals to nil\nExample:\ni = 0\n{ i >= 10 } while_false: {\n i println\n i = i + 1\n}</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[28, 28]}, "until_do:":{file:"lib/block.fy", doc:"<p>Calls a given Block as long as <code data-lang=\"fancy\">self</code> yields <code data-lang=\"fancy\">nil</code> or <code data-lang=\"fancy\">false</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called while <code data-lang=\"fancy\">self</code> yields <code data-lang=\"fancy\">nil</code> or <code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:["block"], lines:[65, 65]}, ":===":{file:"lib/block.fy", doc:"<p>Matches a <code data-lang=\"fancy\">Block</code> against another object by calling <code data-lang=\"fancy\">self</code> with <code data-lang=\"fancy\">val</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">self</code> with <code data-lang=\"fancy\">val</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">val</code> </label><div>Other object to match <code data-lang=\"fancy\">self</code> against.</div></div></div>\n\n", arg:["val"], lines:[127, 127]}, "while_do:":{file:"lib/block.fy", doc:"<p>Calls <code data-lang=\"fancy\">work</code> while calling <code data-lang=\"fancy\">self</code> yields a <code data-lang=\"fancy\">true-ish</code> value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">work</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to call while <code data-lang=\"fancy\">self</code> yields <code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:["work"], lines:[54, 54]}, "until:":{file:"lib/block.fy", doc:"<p>Calls <code data-lang=\"fancy\">self</code> while <code data-lang=\"fancy\">block</code> yields <code data-lang=\"fancy\">nil</code> or <code data-lang=\"fancy\">false</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>Condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called to determine if <code data-lang=\"fancy\">self</code> should be called.</div></div></div>\n\n", arg:["block"], lines:[75, 75]}, "receiver:":{file:"lib/rbx/block.fy", doc:"<p>Sets the receiver (value for <code data-lang=\"fancy\">self</code>) of a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">recv</code> </label><div>New receiver object for a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.</div></div></div>\n\n", arg:["recv"], lines:[22, 22]}, "while_true:":{file:"lib/block.fy", doc:"<p>Calls <code data-lang=\"fancy\">work</code> while calling <code data-lang=\"fancy\">self</code> yields a <code data-lang=\"fancy\">true-ish</code> value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">work</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to call while <code data-lang=\"fancy\">self</code> yields <code data-lang=\"fancy\">true</code>.</div></div></div>\n\n", arg:["work"], lines:[54, 54]}, ":||":{file:"lib/block.fy", doc:"<p>Short-circuiting || (boolean OR).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["other_block"], lines:[96, 96]}}, methods:{}}, "Number":{ancestors:["Number", "Object", "Kernel"], doc:"<p>Number is a mixin-class for all number values (integer &amp; floats for\nnow).</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":negate":{file:"lib/number.fy", doc:"<p>Negates a Number (-1 becomes 1 and vice versa).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Negated value of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[119, 119]}, ":abs":{file:"lib/number.fy", doc:"<p>Returns the absolute (positive) value of a Number.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Absolute (positive) value of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[110, 110]}, ":even?":{file:"lib/number.fy", doc:"<p>Indicates, if a Number is even.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">self</code> is even, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[129, 129]}, "upto:do:":{file:"lib/number.fy", doc:"<p>Calls <code data-lang=\"fancy\">block</code> with each <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> between <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">num</code>.\nExpects <code data-lang=\"fancy\">num</code> to be greater or equal to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that should be called with each <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> between <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">num</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">num</code> </label><div>Maximum <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> to call <code data-lang=\"fancy\">block</code> with.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["num", "block"], lines:[34, 34]}, ":odd?":{file:"lib/number.fy", doc:"<p>Indicates, if a Number is odd.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">self</code> is odd, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[139, 139]}, "downto:":{file:"lib/number.fy", doc:"<p>Returns an Array with Numbers starting at <code data-lang=\"fancy\">self</code> and going down to <code data-lang=\"fancy\">num</code>.\nExpects <code data-lang=\"fancy\">num</code> to be smaller or equal to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">num</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> to create an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> down to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> containing numbers from <code data-lang=\"fancy\">self</code> down to <code data-lang=\"fancy\">num</code>.</div></div></div>\n\n", arg:["num"], lines:[51, 51]}, "upto:":{file:"lib/number.fy", doc:"<p>Returns an Array with Numbers starting at <code data-lang=\"fancy\">self</code> and going up to <code data-lang=\"fancy\">num</code>.\nExpects <code data-lang=\"fancy\">num</code> to be greater or equal to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">num</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> to create an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> up to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> containing numbers from <code data-lang=\"fancy\">self</code> to <code data-lang=\"fancy\">num</code>.</div></div></div>\n\n", arg:["num"], lines:[16, 16]}, ":squared":{file:"lib/number.fy", doc:"<p>Returns the square of a Number.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Squared value of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[85, 85]}, ":doubled":{file:"lib/number.fy", doc:"<p>Returns the double value of a Number.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Doubled value of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[95, 95]}, "downto:do:":{file:"lib/number.fy", doc:"<p>Calls <code data-lang=\"fancy\">block</code> with each <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> between <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">num</code>.\nExpects <code data-lang=\"fancy\">num</code> to be smaller or equal to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that should be called with each <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> between <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">num</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">num</code> </label><div>Minimum <code data-lang=\"fancy\" data-class-ref=\"Number\" class=\"class-ref selectable\">Number</code> to call <code data-lang=\"fancy\">block</code> with.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["num", "block"], lines:[70, 70]}}, methods:{}}, "Fancy Package RubyDependency":{ancestors:["Fancy Package RubyDependency", "Object", "Kernel"], doc:"<p>Same as <code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package\" class=\"class-ref selectable\">Package</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package Dependency\" class=\"class-ref selectable\">Dependency</code>, just for rubygem packages.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/package/dependency.fy", doc:"<p>Forward to message initialize:version:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["@gem_name"], lines:[22, 22]}}, methods:{}}, "Float":{ancestors:["Float", "Number", "Object", "Precision", "Numeric", "Comparable", "Object", "Kernel"], doc:"<p>Standard class for floating point number values in Fancy.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "FancySpec":{ancestors:["FancySpec", "Object", "Kernel"], doc:"<p>The FancySpec class is used for defining FancySpec testsuites.\nHave a look at the tests/ directory to see some examples.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/fancy_spec.fy", doc:"<p>Forward to message initialize:test_obj:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["@description"], lines:[16, 16]}, "it:for:when:":{file:"lib/fancy_spec.fy", doc:"<p>Example usage:\n it: \"should be an empty Array\" with: 'empty? when: {</p>\n\n<pre><code> arr = [1,2,3]\n 3 times: { arr pop }\n arr empty? is == true\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">spec_info_string</code> </label><div>Info <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> related to the test case defined in <code data-lang=\"fancy\">spec_block</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">method_name</code> </label><div>Name of Method that this testcase is related to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">spec_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that holds the testcase's code (including assertions).</div></div></div>\n\n", arg:["spec_info_string", "method_name", "spec_block"], lines:[78, 78]}, ":run":{file:"lib/fancy_spec.fy", doc:"<p>Runs a FancySpec's test cases.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[113, 113]}, "initialize:test_obj:":{file:"lib/fancy_spec.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">description</code> </label><div>Description <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> for testcase.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">test_obj</code> </label><div>Object to be tested, defaults to <code data-lang=\"fancy\">description</code>.</div></div></div>\n\n", arg:["@description", "@test_obj"], lines:[16, 16]}, "it:with:when:":{file:"lib/fancy_spec.fy", doc:"<p>Example usage:\n it: \"should be an empty Array\" with: 'empty? when: {</p>\n\n<pre><code> arr = [1,2,3]\n 3 times: { arr pop }\n arr empty? is == true\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">spec_info_string</code> </label><div>Info <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> related to the test case defined in <code data-lang=\"fancy\">spec_block</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">method_name</code> </label><div>Name of Method that this testcase is related to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">spec_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that holds the testcase's code (including assertions).</div></div></div>\n\n", arg:["spec_info_string", "method_name", "spec_block"], lines:[78, 78]}, "before_each:":{file:"lib/fancy_spec.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be run before each test case.</div></div></div>\n\n", arg:["block"], lines:[96, 96]}, "after_each:":{file:"lib/fancy_spec.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be run after each test case.</div></div></div>\n\n", arg:["block"], lines:[104, 104]}, "it:when:":{file:"lib/fancy_spec.fy", doc:"<p>Example usage:\n it: \"should be an empty Array\" when: {</p>\n\n<pre><code> arr = [1,2,3]\n 3 times: { arr pop }\n arr empty? is == true\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">spec_info_string</code> </label><div>Info <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> related to the test case defined in <code data-lang=\"fancy\">spec_block</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">spec_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that holds the testcase's code (including assertions).</div></div></div>\n\n", arg:["spec_info_string", "spec_block"], lines:[60, 60]}}, methods:{"describe:for:with:":{file:"lib/fancy_spec.fy", doc:"<p>Similar to FancySpec##describe:with: but also taking an explicit <code data-lang=\"fancy\">test_obj</code>.</p>\n\n<p>FancySpec describe: \"My cool class\" for: MyCoolClass with: {\n # test cases using it:for:when: here.\n}</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["description", "test_obj", "block"], lines:[42, 42]}, "describe:with:":{file:"lib/fancy_spec.fy", doc:"<p>Factory method for creating FancySpec instances.\nCalls <code data-lang=\"fancy\">block</code> with the new FancySpec instance as the receiver, then runs it.</p>\n\n<p>FancySpec describe: MyTestClass with: {\n # test cases using it:for:when: here.\n}</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["test_obj", "block"], lines:[28, 28]}}}, "FalseClass":{ancestors:["FalseClass", "ImmediateValue", "Object", "Kernel"], doc:"<p>FalseClass. The class of the singleton <code data-lang=\"fancy\">false</code> value.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":not":{file:"lib/false_class.fy", doc:"<p>Boolean negation of <code data-lang=\"fancy\">false</code> => <code data-lang=\"fancy\">true</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</div></div></div>\n\n\n<p></code></p>\n", arg:[], lines:[54, 54]}, "if_true:":{file:"lib/false_class.fy", doc:"<p>Returns <code data-lang=\"fancy\">nil</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["block"], lines:[14, 14]}, "if_true:else:":{file:"lib/false_class.fy", doc:"<p>Calls <code data-lang=\"fancy\">else_block</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["then_block", "else_block"], lines:[19, 19]}, ":to_a":{file:"lib/false_class.fy", doc:"<p>Returns an empty <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[44, 44]}, ":to_s":{file:"lib/false_class.fy", doc:"<p>Returns <code data-lang=\"fancy\">false</code> as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[37, 37]}, ":inspect":{file:"lib/false_class.fy", doc:"<p>Returns <code data-lang=\"fancy\">false</code> as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[37, 37]}, ":false?":{file:"lib/false_class.fy", doc:"<p>Returns <code data-lang=\"fancy\">true</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[32, 32]}}, methods:{}}, "FancySpec PositiveMatcher":{ancestors:["FancySpec PositiveMatcher", "Object", "Kernel"], doc:"<p>PositiveMatcher expects its actual value to be equal to an\nexpected value.\nIf the values are not equal, a SpecTest failure is generated.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"unknown_message:with_params:":{file:"lib/fancy_spec.fy", doc:"<p>Forwards any other message and parameters to the object itself\nand checks the return value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["msg", "params"], lines:[325, 325]}}, methods:{}}, "Fancy Documentation RDiscount":{ancestors:["Fancy Documentation RDiscount", "Object", "Kernel"], doc:"<p>A documentation formatter using ruby's RDiscount markdown</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"rdiscount:":{file:"lib/documentation.fy", doc:"<p>Format string as HTML using RDiscount ruby gem.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["doc"], lines:[123, 123]}}}, "TCPServer":{ancestors:["TCPServer", "Socket ListenAndAccept", "IO Socketable", "TCPSocket", "IPSocket", "BasicSocket", "IO", "IOMixin", "Object", "Unmarshalable", "File Constants", "Object", "Kernel"], doc:"<p>TCP Server</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Object":{ancestors:["Object", "Kernel"], doc:"<p>Root class of Fancy's class hierarchy.\nAll classes inherit from Object.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"send_async:with_params:":{file:"lib/object.fy", doc:"<p>Sends <code data-lang=\"fancy\">message</code> with <code data-lang=\"fancy\">params</code> to <code data-lang=\"fancy\">self</code> asynchronously and immediately returns <code data-lang=\"fancy\">nil</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">params</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of parameters as part of sending <code data-lang=\"fancy\">message</code> asynchronously to <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>Message to be sent asynchronously to <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</div></div></div>\n\n\n<p></code></p>\n", arg:["message", "params"], lines:[513, 513]}, "if_false:else:":{file:"lib/object.fy", doc:"<p>Calls <code data-lang=\"fancy\">else_block</code> (default behaviour).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">then_block</code> </label><div>Does not get called (default behaviour).</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">else_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">else_block</code>.</div></div></div>\n\n", arg:["then_block", "else_block"], lines:[104, 104]}, ":break":{file:"lib/object.fy", doc:"<p>Breaks / Stops current iteration.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[421, 421]}, ":to_enum":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"FancyEnumerator\" class=\"class-ref selectable\">FancyEnumerator</code> for <code data-lang=\"fancy\">self</code> using 'each: for iteration.</div></div></div>\n\n", arg:[], lines:[155, 155]}, "returning:do:":{file:"lib/object.fy", doc:"<p>Returns <code data-lang=\"fancy\">value</code> after calling <code data-lang=\"fancy\">block</code> with it.\nUseful for returning some object after using it, e.g.:</p>\n\n<p> # this will return [1,2]\n returning: [] do: |arr| {</p>\n\n<pre><code> arr &lt;&lt; 1\n arr &lt;&lt; 2\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets called with <code data-lang=\"fancy\">value</code> before returning <code data-lang=\"fancy\">value</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value that gets returned at the end.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">value</div></div></div>\n\n\n<p></code></p>\n", arg:["value", "block"], lines:[335, 335]}, ":to_a":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> representation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[139, 139]}, "do:while:":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">cond_block</code> </label><div>Condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> used to determine if <code data-lang=\"fancy\">body_block@</code> should be called again.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">body_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called at least once and as long as <code data-lang=\"fancy\">cond_block</code> yields a true-ish value.</div></div></div>\n\n", arg:["body_block", "cond_block"], lines:[248, 248]}, "while:do:":{file:"lib/object.fy", doc:"<p>Same as:\ncond_block while_do: body_block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond_block", "body_block"], lines:[230, 230]}, "next:":{file:"lib/object.fy", doc:"<p>Returns <code data-lang=\"fancy\">value</code> for current iteration and skip to the next one.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value for next iteration.</div></div></div>\n\n", arg:["value"], lines:[413, 413]}, ":?":{file:"lib/object.fy", doc:"<p>Calls #value on <code data-lang=\"fancy\">future</code>. Shortcut method.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">future</code> </label><div>Future object to get the value from.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Result of calling #value on <code data-lang=\"fancy\">future</code>.</div></div></div>\n\n", arg:["future"], lines:[379, 379]}, ":&&":{file:"lib/object.fy", doc:"<p>Boolean conjunction.\nIf <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code> are both true-ish (non-nil, non-false), returns <code data-lang=\"fancy\">other</code>.\nIf <code data-lang=\"fancy\">other</code> is a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>, calls it and returns its return value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Object or <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (for short-circuit evaluation) to compare <code data-lang=\"fancy\">self</code> to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">other</code> if both <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code> are true-ish, <code data-lang=\"fancy\">self</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[183, 183]}, ":does_not":{file:"lib/fancy_spec.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"NegativeMatcher\" class=\"class-ref selectable\">NegativeMatcher</code> for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[412, 412]}, ":actor":{file:"lib/object.fy", doc:"<p>Returns the Object's actor.\nIf none exists at this moment, a new one will be created\nand starts running in the background.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[489, 489]}, "loop:":{file:"lib/object.fy", doc:"<p>Infinitely calls the block (loops).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called endlessly (loop).</div></div></div>\n\n", arg:["block"], lines:[26, 26]}, ":dclone":{file:"lib/rbx/object.fy", doc:"<p>Returns a deep clone of self using Ruby's Marshal class.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[23, 23]}, "if_true:":{file:"lib/object.fy", doc:"<p>Calls the <code data-lang=\"fancy\">block</code> (default behaviour).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">block</code> with <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[70, 70]}, "if_true:else:":{file:"lib/object.fy", doc:"<p>Calls the <code data-lang=\"fancy\">then_block</code> (default behaviour).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">then_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">else_block</code> </label><div>Does not get called (default behaviour).</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">then_block</code> with <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["then_block", "else_block"], lines:[83, 83]}, ":does":{file:"lib/fancy_spec.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"PositiveMatcher\" class=\"class-ref selectable\">PositiveMatcher</code> for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[393, 393]}, "do:":{file:"lib/object.fy", doc:"<p>Helper method that calls <code data-lang=\"fancy\">block</code> with <code data-lang=\"fancy\">self</code> as the receiver.\nThis allows message cascading like code, e.g.:</p>\n\n<p> some_complex_object do: {</p>\n\n<pre><code> method_1: arg1\n method_2: arg2\n method_3: arg3\n</code></pre>\n\n<p> }</p>\n\n<p> # this is the same as:\n some_complex_object method_1: arg1\n some_complex_object method_2: arg2\n some_complex_object method_3: arg3</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called in the context of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[565, 565]}, "send_async:":{file:"lib/object.fy", doc:"<p>Forward to message send_async:with_params:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["message"], lines:[504, 504]}, "receive_message:with_params:":{file:"lib/rbx/object.fy", doc:"<p>Dynamically sends a given message with parameters to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">params</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of parameters used with <code data-lang=\"fancy\">message</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>Name of message to be sent to <code data-lang=\"fancy\">self</code> dynamically.</div></div></div>\n\n", arg:["message", "params"], lines:[116, 116]}, ":next":{file:"lib/object.fy", doc:"<p>Skip to the next iteration.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[403, 403]}, ":nil?":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:[], lines:[115, 115]}, "receive_message:":{file:"lib/rbx/object.fy", doc:"<p>Dynamically sends a given message (without parameters) to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>Name of message to be sent to <code data-lang=\"fancy\">self</code> dynamically.</div></div></div>\n\n", arg:["message"], lines:[105, 105]}, ":yield":{file:"lib/object.fy", doc:"<p>Same as Fiber##yield.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[387, 387]}, "set_slot:value:":{file:"lib/rbx/object.fy", doc:"<p>Sets an object's slot with a given value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of slot to be set.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">val</code> </label><div>Value for slot to be set.</div></div></div>\n\n", arg:["slotname", "val"], lines:[43, 43]}, ":true?":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:[], lines:[131, 131]}, ":!=":{file:"lib/object.fy", doc:"<p>Indicates, if two objects are not equal.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other object to compare against.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\">self</code> is not equal to <code data-lang=\"fancy\">other</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[59, 59]}, "responds_to?:":{file:"lib/rbx/object.fy", doc:"<p>Indicates if an object responds to a given message.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>The message to check for (preferably a Symbol).</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\">self</code> responds to <code data-lang=\"fancy\">message</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["message"], lines:[137, 137]}, "require:":{file:"lib/rbx/object.fy", doc:"<p>Loads and evaluates a given Fancy source file by trying to find the specified\nRelative paths are allowed (and by default expected).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">file_path</code> </label><div>in Fancy's loadpath (see <code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy CodeLoader\" class=\"class-ref selectable\">CodeLoader</code>).</div></div></div>\n\n", arg:["file_path"], lines:[18, 18]}, "yield:":{file:"lib/object.fy", doc:"<p>Same as Fiber##yield:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["values"], lines:[395, 395]}, ":to_s":{file:"lib/rbx/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> represenation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[32, 32]}, "define_singleton_method:with:":{file:"lib/rbx/object.fy", doc:"<p>Dynamically defines a method on <code data-lang=\"fancy\">self's</code> metaclass (a singleton method) using a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be used as the method's body.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the method to be defined on <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["name", "block"], lines:[64, 64]}, "if:then:":{file:"lib/object.fy", doc:"<p>Same as:\ncond if_true: block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "block"], lines:[212, 212]}, ":print":{file:"lib/object.fy", doc:"<p>Same as:\nConsole print: self</p>\n\n<p>Prints <code data-lang=\"fancy\">self</code> on STDOUT.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[48, 48]}, "until:do:":{file:"lib/object.fy", doc:"<p>Same as:\ncond_block until_do: body_block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond_block", "body_block"], lines:[239, 239]}, "documentation:":{file:"lib/object.fy", doc:"<p>Sets the documentation string for an Object.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">docstring</code> </label><div>New docstring for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["docstring"], lines:[306, 306]}, "is_a?:":{file:"lib/rbx/object.fy", doc:"<p>Indicates, if an object is an instance of a given Class.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">class</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> to check for if <code data-lang=\"fancy\">self</code> is an instance of.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if <code data-lang=\"fancy\">self</code> is an instance of <code data-lang=\"fancy\">class</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["class"], lines:[86, 86]}, ":die!":{file:"lib/object.fy", doc:"<p>Tells an object to let its actor to die (quit running).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[479, 479]}, ":should_not":{file:"lib/fancy_spec.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"NegativeMatcher\" class=\"class-ref selectable\">NegativeMatcher</code> for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[412, 412]}, "do:until:":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">cond_block</code> </label><div>Condition <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> used to determine if <code data-lang=\"fancy\">body_block@</code> should be called again.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">body_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called at least once and as long as <code data-lang=\"fancy\">cond_block</code> yields a false-ish value.</div></div></div>\n\n", arg:["body_block", "cond_block"], lines:[258, 258]}, ":<=>":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other object to compare against.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>-1 if <code data-lang=\"fancy\">self</code> is smaller, 0 if <code data-lang=\"fancy\">self</code> is equal or 1 if <code data-lang=\"fancy\">self</code> is greater or equal compared to <code data-lang=\"fancy\">other</code>.</div></div></div>\n\n", arg:["other"], lines:[541, 541]}, ":is":{file:"lib/fancy_spec.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"PositiveMatcher\" class=\"class-ref selectable\">PositiveMatcher</code> for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[393, 393]}, "if:then:else:":{file:"lib/object.fy", doc:"<p>Same as:\ncond if_true: then_block else: else_block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "then_block", "else_block"], lines:[221, 221]}, "if_nil:else:":{file:"lib/object.fy", doc:"<p>Calls <code data-lang=\"fancy\">else_block</code> (default behaviour).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">then_block</code> </label><div>Does not get called (default behaviour).</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">else_block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of calling <code data-lang=\"fancy\">else_block</code>.</div></div></div>\n\n", arg:["then_block", "else_block"], lines:[104, 104]}, ":if_responds?":{file:"lib/object.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"RespondsToProxy\" class=\"class-ref selectable\">RespondsToProxy</code> for <code data-lang=\"fancy\">self</code> that forwards any messages\nonly if <code data-lang=\"fancy\">self</code> responds to them.</p>\n\n<p>Example usage:</p>\n\n<p> # only send 'some_message: if object responds to it:\n object if_responds? some_message: some_parameter</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>RespondsToProxy for <code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:[], lines:[353, 353]}, "unless:do:":{file:"lib/object.fy", doc:"<p>Same as:\ncond if_true: { nil } else: block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "block"], lines:[268, 268]}, ":documentation":{file:"lib/object.fy", doc:"<p>Returns the <code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Documentation\" class=\"class-ref selectable\">Documentation</code> object for an Object.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Documentation\" class=\"class-ref selectable\">Documentation</code> object for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[296, 296]}, "kind_of?:":{file:"lib/rbx/object.fy", doc:"<p>Same as Object#is_a?:\nIndicates, if an object is an instance of a given Class.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["class"], lines:[95, 95]}, "send_future:":{file:"lib/object.fy", doc:"<p>Forward to message send_future:with_params:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["message"], lines:[492, 492]}, ":println":{file:"lib/object.fy", doc:"<p>Same as:\nConsole println: self</p>\n\n<p>Prints <code data-lang=\"fancy\">self</code> on <code data-lang=\"fancy\">STDOUT</code>, followed by a newline.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[37, 37]}, ":is_not":{file:"lib/fancy_spec.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"NegativeMatcher\" class=\"class-ref selectable\">NegativeMatcher</code> for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[412, 412]}, ":should":{file:"lib/fancy_spec.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"PositiveMatcher\" class=\"class-ref selectable\">PositiveMatcher</code> for self.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[393, 393]}, "if_nil:":{file:"lib/object.fy", doc:"<p>Does nothing (default behaviour).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[92, 92]}, "undefine_singleton_method:":{file:"lib/rbx/object.fy", doc:"<p>Undefines a singleton method of <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the method to be undefined no <code data-lang=\"fancy\">self's</code> metaclass.</div></div></div>\n\n", arg:["name"], lines:[74, 74]}, "to_enum:":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"FancyEnumerator\" class=\"class-ref selectable\">FancyEnumerator</code> for <code data-lang=\"fancy\">self</code> using <code data-lang=\"fancy\">iterator</code> for iteration.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">iterator</code> </label><div>Message to use for iteration on <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["iterator"], lines:[164, 164]}, ":identity":{file:"lib/object.fy", doc:"<p>The identity method simply returns self.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[316, 316]}, "break:":{file:"lib/object.fy", doc:"<p>Returns <code data-lang=\"fancy\">value</code> from iteratioen.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">value</code> </label><div>Value to return from iteration.</div></div></div>\n\n", arg:["value"], lines:[431, 431]}, "backtick:":{file:"lib/object.fy", doc:"<p>This is the default implementation for backtick: which gets called when using the backtick syntax.\nFor example:\n<code>cat README</code>\nGets translated to the following message send:\nself backtick: \"cat README\"\nWhich allows for custom implementations of the backtick: method, if needed.\nThis default implementation works the same way as in Ruby, Perl or Bash.\nIt returns the output of running the given string on the command line as a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["str"], lines:[368, 368]}, "unless:do:else:":{file:"lib/object.fy", doc:"<p>Same as:\ncond if_true: else_block else: block</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["cond", "block", "else_block"], lines:[277, 277]}, "extend:":{file:"lib/rbx/object.fy", doc:"<p>Extends <code data-lang=\"fancy\">self</code> with the methods in <code data-lang=\"fancy\">class</code> (by including its methods in <code data-lang=\"fancy\">self's</code> metaclass).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">class</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> to extend <code data-lang=\"fancy\">self</code> with.</div></div></div>\n\n", arg:["class"], lines:[146, 146]}, ":false?":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:[], lines:[123, 123]}, "send_future:with_params:":{file:"lib/object.fy", doc:"<p>Creates a <code data-lang=\"fancy\" data-class-ref=\"FutureSend\" class=\"class-ref selectable\">FutureSend</code> object (a Future / Promise) that will hold the value of sending <code data-lang=\"fancy\">message</code> to <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">params</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of parameters of the <code data-lang=\"fancy\" data-class-ref=\"FutureSend\" class=\"class-ref selectable\">FutureSend</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">message</code> </label><div>Message to be sent as a <code data-lang=\"fancy\" data-class-ref=\"FutureSend\" class=\"class-ref selectable\">FutureSend</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"FutureSend\" class=\"class-ref selectable\">FutureSend</code> object that will hold the return value of <code data-lang=\"fancy\">message</code> with <code data-lang=\"fancy\">params</code> on <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["message", "params"], lines:[501, 501]}, ":||":{file:"lib/object.fy", doc:"<p>Boolean disjunction.\nIf <code data-lang=\"fancy\">self</code> is true-ish (non-nil, non-false) returns <code data-lang=\"fancy\">self</code>.\nOtherwise returns <code data-lang=\"fancy\">other</code> (if <code data-lang=\"fancy\">other</code> is a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>, calls it first and returns its return value)</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Object or <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (for short-circuit evaluation) to compare <code data-lang=\"fancy\">self</code> to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code> if <code data-lang=\"fancy\">self</code> is true-ish, <code data-lang=\"fancy\">other</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[201, 201]}, "synchronized:":{file:"lib/object.fy", doc:"<p>Runs a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> in a synchronized fashion if called by multiple Threads.\nUses a <code data-lang=\"fancy\" data-class-ref=\"Mutex\" class=\"class-ref selectable\">Mutex</code> in the background for synchronization (created on demand for each <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be run only by one Thread at a time.</div></div></div>\n\n", arg:["block"], lines:[525, 525]}, "if_false:":{file:"lib/object.fy", doc:"<p>Does nothing (default behaviour).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">nil</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[92, 92]}, ":to_i":{file:"lib/object.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Fixnum\" class=\"class-ref selectable\">Fixnum</code> representation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[147, 147]}, "and:":{file:"lib/object.fy", doc:"<p>Boolean conjunction.\nIf <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code> are both true-ish (non-nil, non-false), returns <code data-lang=\"fancy\">other</code>.\nIf <code data-lang=\"fancy\">other</code> is a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>, calls it and returns its return value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Object or <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (for short-circuit evaluation) to compare <code data-lang=\"fancy\">self</code> to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">other</code> if both <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code> are true-ish, <code data-lang=\"fancy\">self</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[183, 183]}, ":++":{file:"lib/object.fy", doc:"<p>Returns the <code data-lang=\"fancy\">String</code> concatenation of <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code>.\nCalls to_s on <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code> and concatenates the results to a new <code data-lang=\"fancy\">String</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Other object to concatenate its <code data-lang=\"fancy\">String</code> value with.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">String</code> concatenation of <code data-lang=\"fancy\">String</code> values of <code data-lang=\"fancy\">self</code> and <code data-lang=\"fancy\">other</code>.</div></div></div>\n\n", arg:["other"], lines:[16, 16]}, "or:":{file:"lib/object.fy", doc:"<p>Boolean disjunction.\nIf <code data-lang=\"fancy\">self</code> is true-ish (non-nil, non-false) returns <code data-lang=\"fancy\">self</code>.\nOtherwise returns <code data-lang=\"fancy\">other</code> (if <code data-lang=\"fancy\">other</code> is a <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>, calls it first and returns its return value)</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">other</code> </label><div>Object or <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> (for short-circuit evaluation) to compare <code data-lang=\"fancy\">self</code> to.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code> if <code data-lang=\"fancy\">self</code> is true-ish, <code data-lang=\"fancy\">other</code> otherwise.</div></div></div>\n\n", arg:["other"], lines:[201, 201]}, "get_slot:":{file:"lib/rbx/object.fy", doc:"<p>Returns the value of a slot of <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of slot to get the value of.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value of slot with name <code data-lang=\"fancy\">slotname</code>.</div></div></div>\n\n", arg:["slotname"], lines:[54, 54]}, "method:":{file:"lib/object.fy", doc:"<p>Returns the method with a given name for self, if defined.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> with <code data-lang=\"fancy\">method_name</code> defined for <code data-lang=\"fancy\">self</code>, or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["method_name"], lines:[287, 287]}}, methods:{}}, "Fancy FDoc":{ancestors:["Fancy FDoc", "Object", "Kernel"], doc:"<p>FDoc is a tool to generate API documentation from Fancy source.</p>\n\n<p>Works as follows:</p>\n\n<ol>\n<li>We setup a handler to be invoked every time an object is set documentation\nSee fdoc_hook.fy, its loaded even before all of lib/rbx/*.fy so we can\nAlso have documentation for all fancy rubinius.</li>\n<li>We load boot.fy, so we get documentation for all fancy's lib.</li>\n<li>We run FDoc main\nwhich can possibly load any file/directory you specify and optionally\nrun specs, effectively associating them with documented objects.</li>\n<li>Generate output file.\nCurrently the plan is to output a json formatted object.\nTo be loaded by an html file and use jquery to build a GUI from it.</li>\n</ol>\n\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{":main":{file:"lib/fdoc.fy", doc:"<p>FDoc will load all .fy files you give to it, and optionally run\nany specified FancySpec, and later produce documentation output.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[32, 32]}}}, "System":{ancestors:["System", "Object", "Kernel"], doc:"<p>System class. Holds system-wide relevant methods.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"pipe:do:":{file:"lib/rbx/system.fy", doc:"<p>Runs the given string as a popen3() call, passing in a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code>.\nThe <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> is expected to take 3 arguments for <code data-lang=\"fancy\">STDIN</code>, <code data-lang=\"fancy\">STDOUT</code> and <code data-lang=\"fancy\">STDERR</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with <code data-lang=\"fancy\">STDIN</code>, <code data-lang=\"fancy\">STDOUT</code> and <code data-lang=\"fancy\">STDERR</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">command_str</code> </label><div>String to run as a command via popen3()</div></div></div>\n\n", arg:["command_str", "block"], lines:[55, 55]}, "do:":{file:"lib/rbx/system.fy", doc:"<p>Runs the given string as a system() command.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["command_str"], lines:[21, 21]}, "piperead:":{file:"lib/rbx/system.fy", doc:"<p>Runs the given string as a popen() call and returns the output\nof the call as a string.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["command_str"], lines:[30, 30]}, "pipe:":{file:"lib/rbx/system.fy", doc:"<p>Runs the given string as a popen3() call and returns a IO handle\nthat can be read from</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"IO\" class=\"class-ref selectable\">IO</code> object representing the command's <code data-lang=\"fancy\">STDOUT</code> IO stream.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">command_str</code> </label><div>String to run as a command via popen3()</div></div></div>\n\n", arg:["command_str"], lines:[42, 42]}, ":exit":{file:"lib/rbx/system.fy", doc:"<p>Exit the running Fancy process.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[13, 13]}}}, "Fiber":{ancestors:["Rubinius Fiber", "Object", "Kernel"], doc:"<p>Fiber class. Fibers are cooperatively scheduled coroutines supported\nby the Rubinius VM.\nControl flow between multiple Fibers is always explicitly handled.\nThere is no preemptive scheduler.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"resume:":{file:"lib/rbx/fiber.fy", doc:"<p>Resumes <code data-lang=\"fancy\">self</code> (if paused) or raises an exception, if <code data-lang=\"fancy\" data-class-ref=\"Fiber\" class=\"class-ref selectable\">Fiber</code> is dead.\nPasses along <code data-lang=\"fancy\">vals</code> as the return value of the last call to <code data-lang=\"fancy\">yield</code> in <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">vals</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of values to pass along to <code data-lang=\"fancy\">self</code> for resuming.</div></div></div>\n\n", arg:["vals"], lines:[39, 39]}}, methods:{"new:":{file:"lib/rbx/fiber.fy", doc:"<p>Creates a new Fiber running <code data-lang=\"fancy\">block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be run in a new Fiber.</div></div></div>\n\n", arg:["block"], lines:[18, 18]}, "yield:":{file:"lib/rbx/fiber.fy", doc:"<p>Returns execution control to the parent <code data-lang=\"fancy\" data-class-ref=\"Fiber\" class=\"class-ref selectable\">Fiber</code> and passes along <code data-lang=\"fancy\">vals</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">vals</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of values to pass along to parent <code data-lang=\"fancy\" data-class-ref=\"Fiber\" class=\"class-ref selectable\">Fiber</code>.</div></div></div>\n\n", arg:["vals"], lines:[28, 28]}}}, "Integer":{ancestors:["Integer", "Precision", "Numeric", "Comparable", "Object", "Kernel"], doc:"<p>Base class for integer values in Fancy.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"times:offset:":{file:"lib/integer.fy", doc:"<p>Similar to #times: but starts at a given offset.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each number between <code data-lang=\"fancy\">offset</code> and <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">offset</code> </label><div>Offset to be used as starting point of iteration.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block", "offset"], lines:[31, 31]}, "times:":{file:"lib/integer.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each number between 0 and <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each number between 0 and <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[14, 14]}}, methods:{}}, "Time":{ancestors:["Time", "Comparable", "Object", "Kernel"], doc:"<p>Time class. Used for even more timely stuff.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "UnboundMethod":{ancestors:["UnboundMethod", "MethodMixin", "Object", "Object", "Kernel"], doc:"<p>An instance UnboundMethod represents a Method object not bound to a specific <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> or <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Fancy FDoc Formatter":{ancestors:["Fancy FDoc Formatter", "Object", "Kernel"], doc:"<p>A documentation formater intended to be used by <code data-lang=\"fancy\" data-class-ref=\"FDoc\" class=\"class-ref selectable\">FDoc</code>.</p>\n\n<p>This formatter makes some transformations on a docstring\nand then converts it to html using markdown.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{"create_class_references:":{file:"lib/fdoc.fy", doc:"<p>Creates class references for Fancy class names.</p>\n\n<p>A docstring may contain class names sorounded by @\nwithout space between the @.</p>\n\n<p>Nested classes can be indicated by using :: like</p>\n\n<p> Foo::Bar</p>\n\n<p>This will create references for both, <code data-lang=\"fancy\">Foo</code> and <code data-lang=\"fancy\">Bar</code></p>\n\n<p>Instance methods should be written:</p>\n\n<p> Foo::Bar#baz</p>\n\n<p>Class methods should be written:</p>\n\n<p> Foo::Bar.baz</p>\n\n<p>Some examples:</p>\n\n<p>A simple class reference:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code></p>\n\n<p>Nested class reference:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc\" class=\"class-ref selectable\">FDoc</code></p>\n\n<p>A fancy method without arguments:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc\" class=\"class-ref selectable\">FDoc</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc JSON\" class=\"class-ref selectable\">JSON</code> <code data-lang=\"fancy\" data-singleton-method-ref=\":generate_map\" data-owner-class=\"Fancy FDoc JSON\" class=\"singleton-method-ref selectable\">generate_map</code></p>\n\n<p>A ruby method reference (will link to ruby docs if available)</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> <code data-lang=\"fancy\" data-ruby-singleton-method-ref=\"split\" data-owner-class=\"String\" class=\"ruby-singleton-method-ref selectable\">split</code></p>\n\n<p>A fancy method with many arguments:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package\" class=\"class-ref selectable\">Package</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package Installer\" class=\"class-ref selectable\">Installer</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"initialize:version:install_path:\" data-owner-class=\"Fancy Package Installer\" class=\"singleton-method-ref selectable\">initialize:version:install_path:</code></p>\n\n<p>A singleton method:</p>\n\n<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc\" class=\"class-ref selectable\">FDoc</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy FDoc Formatter\" class=\"class-ref selectable\">Formatter</code> <code data-lang=\"fancy\" data-singleton-method-ref=\"format:\" data-owner-class=\"Fancy FDoc Formatter\" class=\"singleton-method-ref selectable\">format:</code></p>\n\n<div class=\"doctags\"></div>\n\n", arg:["str"], lines:[256, 256]}}}, "StandardError":{ancestors:["StandardError", "Exception", "Object", "Kernel"], doc:"<p>StandardError. Base class of most Exception classes.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/rbx/exception.fy", doc:"<p>Creates a new Exception with a given message.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">msg</code> </label><div>Message (<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code>) for the Exception.</div></div></div>\n\n", arg:["msg"], lines:[26, 26]}, ":initialize":{file:"lib/rbx/exception.fy", doc:"<p>Creates a new Exception with an empty message.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[16, 16]}, ":raise!":{file:"lib/rbx/exception.fy", doc:"<p>Raises (throws) an Exception to be caught somewhere up the\ncallstack.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[35, 35]}}, methods:{}}, "Fancy Package Installer":{ancestors:["Fancy Package Installer", "Object", "Kernel"], doc:"<p><code data-lang=\"fancy\" data-class-ref=\"Fancy\" class=\"class-ref selectable\">Fancy</code> <code data-lang=\"fancy\" data-class-ref=\"Fancy Package\" class=\"class-ref selectable\">Package</code> installer.</p>\n\n<p>Downloads packages from Github (usually the latest tagged version,\nif no version is specified, or the latest HEAD revision in the\nmaster branch) and install it to the <code data-lang=\"fancy\">FANCY_PACKAGE_DIR</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/package/installer.fy", doc:"<p>Forward to message initialize:version:install_path:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["@package_name"], lines:[44, 44]}, "rename_dir:":{file:"lib/package/installer.fy", doc:"<p>Renames a given directory to a common way within the install path.\n=> It will rename the given dirname to $user/$repo-$version.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["dirname"], lines:[158, 158]}, "download_url:":{file:"lib/package/installer.fy", doc:"<p>Returns the download url for a given version of the package\nto be installed.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["version"], lines:[110, 110]}, ":latest_tag":{file:"lib/package/installer.fy", doc:"<p>Returns the latest tag (sorted alphabetically).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[82, 82]}, ":run":{file:"lib/package/installer.fy", doc:"<p>Runs the installer &amp; installs the package into\n<code data-lang=\"fancy\">$FANCY_PACKAGE_DIR</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[52, 52]}, "initialize:version:":{file:"lib/package/installer.fy", doc:"<p>Forward to message initialize:version:install_path:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["@package_name", "@version"], lines:[44, 44]}, ":load_fancypack":{file:"lib/package/installer.fy", doc:"<p>Loads the @.fancypack file within the downloaded package directory.\nIf no @.fancypack file is found, raise an error.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[167, 167]}, ":tags":{file:"lib/package/installer.fy", doc:"<p>Returns a list of tags the repository has on Github.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[91, 91]}, "initialize:version:install_path:":{file:"lib/package/installer.fy", doc:"<p>Creates a new <code data-lang=\"fancy\">Package</code> Installer@ for a given package name, an\noptional version (default is 'latest') and an optional\ninstallation path (default is the standard installation path for\nFancy packages).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["@package_name", "@version", "@install_path"], lines:[44, 44]}, "has_version?:":{file:"lib/package/installer.fy", doc:"<p>Indicates, if a given version is available on Github.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["version"], lines:[98, 98]}, "download_tgz:":{file:"lib/package/installer.fy", doc:"<p>Downloads the .tar.gz file from Github with the given version\n(tag or branch name) and saves it to the specified <code data-lang=\"fancy\">install_path</code>.</p>\n\n<p>The Default install_path is ~/.fancy/packages/.\nIf an environment variable <code data-lang=\"fancy\">FANCY_PACKAGE_DIR</code> is defined, it\nwill get used.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["version"], lines:[135, 135]}}, methods:{}}, "Hash":{ancestors:["Hash", "FancyEnumerable", "Object", "Enumerable", "Object", "Kernel"], doc:"<p>Class for Hashes (HashMaps / Dictionaries).\nMaps a key to a value.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"each_value:":{file:"lib/hash.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each value in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[59, 59]}, "delete:":{file:"lib/rbx/hash.fy", doc:"<p>Deletes a key-value pair from <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">key</code> </label><div>Key of key-value pair to be deleted in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["key"], lines:[34, 34]}, "each_key:":{file:"lib/hash.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each key.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each key in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[47, 47]}, "each:":{file:"lib/hash.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each key and value.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each key and value in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</div></div></div>\n\n\n<p></code></p>\n", arg:["block"], lines:[36, 36]}, "includes?:":{file:"lib/rbx/hash.fy", doc:"<p>Indicates if a given key is in <code data-lang=\"fancy\">self</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">key</code> </label><div>Key to search for.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if Hash includes <code data-lang=\"fancy\">key</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["key"], lines:[53, 53]}, "values_at:":{file:"lib/hash.fy", doc:"<p>Example usage:\n &lt;['foo => 1, 'bar => 2, 'baz => 42]> values_at: ('foo, 'baz) # => [1, 42]</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">keys</code> </label><div>Collection of keys to get the values for.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all values for the given keys.</div></div></div>\n\n", arg:["keys"], lines:[105, 105]}, ":to_a":{file:"lib/hash.fy", doc:"<p>Returns an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of the key-value pairs in a <code data-lang=\"fancy\" data-class-ref=\"Hash\" class=\"class-ref selectable\">Hash</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all key-value pairs in <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[71, 71]}, ":to_s":{file:"lib/hash.fy", doc:"<p>Returns a <code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of a <code data-lang=\"fancy\" data-class-ref=\"Hash\" class=\"class-ref selectable\">Hash</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> representation of <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[80, 80]}, ":[]":{file:"lib/hash.fy", doc:"<p>Returns the value for a given key.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">key</code> </label><div>Key for value to get.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Value for given <code data-lang=\"fancy\">key</code> or <code data-lang=\"fancy\">nil</code>, if <code data-lang=\"fancy\">key</code> not set.</div></div></div>\n\n", arg:["key"], lines:[18, 18]}}, methods:{}}, "IO":{ancestors:["IO", "IOMixin", "Object", "Unmarshalable", "File Constants", "Object", "Kernel"], doc:"<p>Base class for IO related classes (like <code data-lang=\"fancy\" data-class-ref=\"File\" class=\"class-ref selectable\">File</code>, <code data-lang=\"fancy\" data-class-ref=\"Socket\" class=\"class-ref selectable\">Socket</code>, <code data-lang=\"fancy\" data-class-ref=\"Console\" class=\"class-ref selectable\">Console</code> etc.).</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "Fancy Package Dependency":{ancestors:["Fancy Package Dependency", "Object", "Kernel"], doc:"<p>Package Dependency.\nRepresents a Dependency to another Package with a given version.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/package/dependency.fy", doc:"<p>Forward to message initialize:version:</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["@name"], lines:[11, 11]}}, methods:{}}, "Symbol":{ancestors:["Symbol", "ImmediateValue", "Object", "Kernel"], doc:"<p>Symbols are unique identifiers and only created once.</p>\n\n<p>If there are several occurrances of the same Symbol literal within\nFancy code, they all refer to the same Symbol object.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"call:":{file:"lib/symbol.fy", doc:"<p>This allows Symbols to be used like Blocks\n(e.g. in all methods of Enumerable).\nExample: [1, 2, 3] map: 'squared # => [1, 4, 9]</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["arg"], lines:[21, 21]}, ":defined?":{file:"lib/rbx/symbol.fy", doc:"<p>Indicates if a Symbol is defined as a constant in the senders scope.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">self</code> is defined as a constant in senders scope, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:[], lines:[20, 20]}}, methods:{}}, "Fancy StopIteration":{ancestors:["Fancy StopIteration", "StandardError", "Exception", "Object", "Kernel"], doc:"<p>Raised to stop the iteration, in particular by Enumerator#next.\nIt is rescued by Block#loop.</p>\n\n<p>Example:\n {</p>\n\n<pre><code> 'Hello println\n Fancy StopIteration new raise!\n 'World println\n</code></pre>\n\n<p> } loop\n 'Done! println</p>\n\n<p>Produces:\n Hello\n Done!</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":result":{file:"lib/iteration.fy", doc:"<p>Returns the return value of the iterator.</p>\n\n<p>o = Object new\ndef o each: block {\n block call: [1]\n block call: [2]\n block call: [3]\n 100\n}</p>\n\n<p>e = o to_enum\ne next p #=> 1\ne next p #=> 2\ne next p #=> 3\ntry {\n e next\n} catch Fancy StopIteration => ex {\n ex result p #=> 100\n}</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[82, 82]}}, methods:{}}, "Fancy NextIteration":{ancestors:["Fancy NextIteration", "StandardError", "Exception", "Object", "Kernel"], doc:"<p>Raised to continue with next iteration (and stopping the current one).\nIt is rescued by Block#loop.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{}, methods:{}}, "MethodMixin":{ancestors:["MethodMixin", "Object", "Kernel"], doc:"<p>Mixin class with common methods included by <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> and <code data-lang=\"fancy\" data-class-ref=\"UnboundMethod\" class=\"class-ref selectable\">UnboundMethod</code>.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{":private?":{file:"lib/rbx/method.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if the <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> is private in its defined context.</div></div></div>\n\n", arg:[], lines:[48, 48]}, "documentation:":{file:"lib/rbx/method.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">docstring</code> </label><div>New docstring for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["docstring"], lines:[19, 19]}, ":public?":{file:"lib/rbx/method.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if the <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> is public in its defined context.</div></div></div>\n\n", arg:[], lines:[34, 34]}, ":documentation":{file:"lib/rbx/method.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Docstring for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[11, 11]}, ":tests":{file:"lib/rbx/method.fy", doc:"<p>Returns an Array of all the FancySpec SpecTests defined for a\nMethod.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[57, 57]}, ":visibility":{file:"lib/rbx/method.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The visibility (<code data-lang=\"fancy\">'private</code>, <code data-lang=\"fancy\">'protected</code>, <code data-lang=\"fancy\">'public</code>) of a <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> in its defined context, if any.</div></div></div>\n\n", arg:[], lines:[26, 26]}, ":protected?":{file:"lib/rbx/method.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if the <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> is protected in its defined context.</div></div></div>\n\n", arg:[], lines:[41, 41]}}, methods:{}}, "Stack":{ancestors:["Stack", "Object", "Kernel"], doc:"<p>A simple Stack container class.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/stack.fy", doc:"<p>Initializes a new Stack with a given size.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">size</code> </label><div>Initial size of the new Stack.</div></div></div>\n\n", arg:["size"], lines:[21, 21]}, ":initialize":{file:"lib/stack.fy", doc:"<p>Initializes a new Stack.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[11, 11]}, ":size":{file:"lib/stack.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Size of the Stack.</div></div></div>\n\n", arg:[], lines:[59, 59]}, ":top":{file:"lib/stack.fy", doc:"\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The top-of-stack element.</div></div></div>\n\n", arg:[], lines:[51, 51]}, "each:":{file:"lib/stack.fy", doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element in <code data-lang=\"fancy\">self</code>, starting with the top of stack element.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each element in <code data-lang=\"fancy\">self</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["block"], lines:[80, 80]}, "push:":{file:"lib/stack.fy", doc:"<p>Pushes a value onto the Stack.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be pushed onto <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["obj"], lines:[31, 31]}, ":pop":{file:"lib/stack.fy", doc:"<p>Pops the top-of-stack element from the Stack and returns it.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Top-of-stack element.</div></div></div>\n\n", arg:[], lines:[43, 43]}, ":empty?":{file:"lib/stack.fy", doc:"<p>Indicates, if the Stack is empty.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if empty, otherwise <code data-lang=\"fancy\">false</code>.</div></div></div>\n\n", arg:[], lines:[69, 69]}, ":<<":{file:"lib/stack.fy", doc:"<p>Pushes a value onto the Stack.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">obj</code> </label><div>Object to be pushed onto <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["obj"], lines:[31, 31]}}, methods:{}}, "Class":{ancestors:["Class", "Module", "Object", "Kernel"], doc:"<p>This class is the class of <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> objects - e.g. <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>, <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>,\n<code data-lang=\"fancy\" data-class-ref=\"String\" class=\"class-ref selectable\">String</code> etc.\nAny class in the language is an instance of this class, as in Ruby\nor Smalltalk.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"initialize:":{file:"lib/rbx/class.fy", doc:"<p>Initializes a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a superclass.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["superclass"], lines:[61, 61]}, "alias_method:for:":{file:"lib/class.fy", doc:"<p>Defines an alias method for another method.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">new_method_name</code> </label><div>New method name to be used as an alias for <code data-lang=\"fancy\">old_method_name</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">old_method_name</code> </label><div>Name of method to alias (must exist in the <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>).</div></div></div>\n\n", arg:["new_method_name", "old_method_name"], lines:[138, 138]}, "write_slot:":{file:"lib/class.fy", doc:"<p>Defines a slot writer method for a given slotname.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of slot to define a setter method for.</div></div></div>\n\n", arg:["slotname"], lines:[85, 85]}, "define_slot_reader:":{file:"lib/class.fy", doc:"<p>Defines a slot reader method with a given name.\nE.g. for a slotname <code data-lang=\"fancy\">count</code> it will define the following method:\n def count {</p>\n\n<pre><code> get_slot: 'count\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of the slot to define a getter method for.</div></div></div>\n\n", arg:["slotname"], lines:[25, 25]}, "subclass:":{file:"lib/rbx/class.fy", doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with <code data-lang=\"fancy\">self</code> as superclass and the given body.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">body_block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that gets used as the body of the <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> inherited from <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:["body_block"], lines:[115, 115]}, "instance_method:":{file:"lib/rbx/class.fy", doc:"<p>Returns an instance method for a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a given name.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the instance method to return.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>The instance <code data-lang=\"fancy\" data-class-ref=\"Method\" class=\"class-ref selectable\">Method</code> with the given <code data-lang=\"fancy\">name</code> or <code data-lang=\"fancy\">nil</code>.</div></div></div>\n\n", arg:["name"], lines:[137, 137]}, "read_write_slots:":{file:"lib/class.fy", doc:"<p>Defines slot reader &amp; writer methods for all given slotnames.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames to define getter & setter methods for.</div></div></div>\n\n", arg:["slots"], lines:[94, 94]}, ":nested_classes":{file:"lib/rbx/class.fy", doc:"<p>Returns all the nested classes within a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> as an <code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of all nested classes for <code data-lang=\"fancy\">self</code>.</div></div></div>\n\n", arg:[], lines:[125, 125]}, "define_class_method:with:":{file:"lib/rbx/class.fy", doc:"<p>Defines a class method on a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> (a singleton method) with a\ngiven name and body.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be used as the class methods body.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the class method to be defined.</div></div></div>\n\n", arg:["name", "block"], lines:[95, 95]}, ":new":{file:"lib/rbx/class.fy", doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> instance by subclassing <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> subclassed from <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code>.</div></div></div>\n\n", arg:[], lines:[18, 18]}, "alias_method:for_ruby:":{file:"lib/rbx/class.fy", doc:"<p>Creates a method alias for a Ruby method.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["new_method_name", "ruby_method_name"], lines:[153, 153]}, "subclass?:":{file:"lib/class.fy", doc:"<p>Indicates, if a Class is a subclass of another Class.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">class_obj</code> </label><div>Class object to check for, if <code data-lang=\"fancy\">self</code> is a subclass of <code data-lang=\"fancy\">class_obj</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code>, if <code data-lang=\"fancy\">self</code> is a subclass of <code data-lang=\"fancy\">class_obj</code>, <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n", arg:["class_obj"], lines:[127, 127]}, ":initialize":{file:"lib/rbx/class.fy", doc:"<p>Initializes a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with <code data-lang=\"fancy\" data-class-ref=\"Object\" class=\"class-ref selectable\">Object</code> set as superclass (default superclass).</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[54, 54]}, "private:":{file:"lib/rbx/class.fy", doc:"<p>Sets any given method names to private on this <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">method_names</code> </label><div>One or more (<code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>) method names (as a <code data-lang=\"fancy\" data-class-ref=\"Symbol\" class=\"class-ref selectable\">Symbol</code>) to be set to private in this <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div></div>\n\n", arg:["method_names"], lines:[174, 174]}, "protected:":{file:"lib/rbx/class.fy", doc:"<p>Sets any given method names to protected on this <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">method_names</code> </label><div>One or more (<code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>) method names (as a <code data-lang=\"fancy\" data-class-ref=\"Symbol\" class=\"class-ref selectable\">Symbol</code>) to be set to protected in this <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div></div>\n\n", arg:["method_names"], lines:[186, 186]}, "undefine_method:":{file:"lib/rbx/class.fy", doc:"<p>Undefines an instance method on a Class with a given name.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the method to undefine (remove) from a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div></div>\n\n", arg:["name"], lines:[83, 83]}, "undefine_class_method:":{file:"lib/rbx/class.fy", doc:"<p>Undefines a class method on a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a given name.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the class method to undefine (remove).</div></div></div>\n\n", arg:["name"], lines:[105, 105]}, "public:":{file:"lib/rbx/class.fy", doc:"<p>Sets any given method names to public on this <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">method_names</code> </label><div>One or more (<code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code>) method names (as a <code data-lang=\"fancy\" data-class-ref=\"Symbol\" class=\"class-ref selectable\">Symbol</code>) to be set to public in this <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div></div>\n\n", arg:["method_names"], lines:[162, 162]}, ":forwards_unary_ruby_methods":{file:"lib/rbx/class.fy", doc:"<p>Creates ruby_alias methods for any unary ruby methods of a class.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:[], lines:[196, 196]}, "write_slots:":{file:"lib/class.fy", doc:"<p>Defines slot writer methods for all given slotnames.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames to define setter methods for.</div></div></div>\n\n", arg:["slots"], lines:[72, 72]}, "read_slot:":{file:"lib/class.fy", doc:"<p>Defines a slot reader method for a given slotname.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of slot to define a getter method for.</div></div></div>\n\n", arg:["slotname"], lines:[63, 63]}, "define_slot_writer:":{file:"lib/class.fy", doc:"<p>Defines a slot writer method with a given name.\nE.g. for a slotname <code data-lang=\"fancy\">count</code> it will define the following method:\n def count: c {</p>\n\n<pre><code> set_slot: 'count value: c\n</code></pre>\n\n<p> }</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of the slot to defnie define a setter method for.</div></div></div>\n\n", arg:["slotname"], lines:[41, 41]}, "read_slots:":{file:"lib/class.fy", doc:"<p>Defines slot reader methods for all given slotnames.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slots</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Array\" class=\"class-ref selectable\">Array</code> of slotnames to define getter methods for.</div></div></div>\n\n", arg:["slots"], lines:[50, 50]}, "new:":{file:"lib/rbx/class.fy", doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> instance by subclassing <code data-lang=\"fancy\">superclass</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">superclass</code> </label><div>The superclass to inherit from.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> inherited from <code data-lang=\"fancy\">superclass</code>.</div></div></div>\n\n", arg:["superclass"], lines:[32, 32]}, "read_write_slot:":{file:"lib/class.fy", doc:"<p>Defines slot reader &amp; writer methods for a given slotname.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">slotname</code> </label><div>Name of slot to define getter & setter methods for.</div></div></div>\n\n", arg:["slotname"], lines:[108, 108]}, "define_method:with:":{file:"lib/rbx/class.fy", doc:"<p>Defines an instance method on a <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> with a given name and\nbody.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that is used as the method's body.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">name</code> </label><div>Name of the method to be defined.</div></div></div>\n\n", arg:["name", "block"], lines:[73, 73]}, "alias_method_rbx:for:":{file:"lib/rbx/class.fy", doc:"<p>Rbx specific version of alias_method:for: due to bootstrap order\nreasons. Should not be used directly.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["new_method_name", "old_method_name"], lines:[146, 146]}}, methods:{"superclass:body:":{file:"lib/rbx/class.fy", doc:"<p>Creates a new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> by subclassing <code data-lang=\"fancy\">superclass</code> and\nusing <code data-lang=\"fancy\">body_block</code> as its body.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">body_block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> that is used as the body of the new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">superclass</code> </label><div>The superclass to inherit from.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>A new <code data-lang=\"fancy\" data-class-ref=\"Class\" class=\"class-ref selectable\">Class</code> inherited from <code data-lang=\"fancy\">superclass</code>.</div></div></div>\n\n", arg:["superclass", "body_block"], lines:[47, 47]}}}, "FancySpec NegativeMatcher":{ancestors:["FancySpec NegativeMatcher", "Object", "Kernel"], doc:"<p>NegativeMatcher expects its actual value to be unequal to an\nexpected value.\nIf the values are equal, a SpecTest failure is generated.</p>\n\n<div class=\"doctags\"></div>\n\n", instance_methods:{"unknown_message:with_params:":{file:"lib/fancy_spec.fy", doc:"<p>Forwards any other message and parameters to the object itself\nand checks the return value.</p>\n\n<div class=\"doctags\"></div>\n\n", arg:["msg", "params"], lines:[377, 377]}}, methods:{}}}, date:"Thu Jul 14 19:30:11 -0700 2011", methods:{"FutureSend#initialize:receiver:message:":{args:["@actor", "@receiver", "@message"], doc:"<p>Forward to message initialize:receiver:message:with_params:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "FancyEnumerator#each:":{args:["block"], doc:"<p>Calls a given <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> with each element in the collection this enumerator is attached to.\nUsed for iterating over the collection using this enumerator.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div><code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each element in the collection (iteration).</div></div></div>\n\n"}, "Fancy Package Specification#add_dependency:":{args:["name"], doc:"<p>Forward to message add_dependency:version:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "String#:raise!":{args:[], doc:"<p>Raises a new StdError with <code data-lang=\"fancy\">self</code> as the message.</p>\n\n<div class=\"doctags\"></div>\n\n"}, "Object#for_options:do:":{args:["op_names", "block"], doc:"<p>Runs a given block if any of the given options is in ARGV.</p>\n\n<div class=\"doctags\"></div>\n\n"}, "FancyEnumerator#:peek":{args:[], doc:"<p>Returns the next object in the FancyEnumerator, but doesn't move the\ninternal position forward.\nWhen the position reaches the end, a Fancy StopIteration exception is\nraised.</p>\n\n<p>Example:\n a = [1,2,3]\n e = a to_enum\n e next p #=> 1\n e peek p #=> 2\n e peek p #=> 2\n e peek p #=> 2\n e next p #=> 2\n e next p #=> 3\n e next p #=> raises Fancy StopIteration</p>\n\n<div class=\"doctags\"></div>\n\n"}, "Object#for_option:do:":{args:["op_name", "block"], doc:"<p>Runs a given block if an option is in ARGV.</p>\n\n<div class=\"doctags\"></div>\n\n"}, "FancyEnumerator#with:each:":{args:["object", "block"], doc:"<p>Similar to #each: but also passing in a given <code data-lang=\"fancy\">object</code> to each invocation of <code data-lang=\"fancy\">block</code>.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">block</code> </label><div>A <code data-lang=\"fancy\" data-class-ref=\"Block\" class=\"class-ref selectable\">Block</code> to be called with each element in the collection and <code data-lang=\"fancy\">object</code>.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">object</code> </label><div>Object to pass along to <code data-lang=\"fancy\">block</code> with each element in the collection.</div></div></div>\n\n"}, "ThreadPool#execute_synchronous:":{args:["block"], doc:"<p>Forward to message execute_synchronous:with_args:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "ThreadPool#execute:":{args:["block"], doc:"<p>Forward to message execute:with_args:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "Fancy FDoc JSON#write:":{args:["filename"], doc:"<p>Forward to message write:call:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "FancyEnumerator#initialize:":{args:["@collection"], doc:"<p>Initializes a new FancyEnumerator with a given <code data-lang=\"fancy\">collection</code>,\nusing #each: for iteration.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">collection</code> </label><div>Collection to iterate over.</div></div></div>\n\n"}, "FancyEnumerator#:ended?":{args:[], doc:"<p>Indicates if an enumerator has ended (no more values left).</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div><code data-lang=\"fancy\">true</code> if the enumerator has ended (no more values left), <code data-lang=\"fancy\">false</code> otherwise.</div></div></div>\n\n"}, "Fancy Package Specification#add_ruby_dependency:":{args:["gem_name"], doc:"<p>Forward to message add_ruby_dependency:version:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "ThreadPool#initialize:":{args:["@count"], doc:"<p>Forward to message initialize:limit:</p>\n\n<div class=\"doctags\"></div>\n\n"}, "FancyEnumerator#:rewind":{args:[], doc:"<p>Resets the enumerator to start from the collection's beginning.</p>\n\n<div class=\"doctags\"></div>\n\n"}, "FancyEnumerator#:next":{args:[], doc:"<p>Returns the next element in the collection this enumerator is attached to.\nIt will move the internal position forward (compared to e.g. #peek, which doesn't).</p>\n\n<p>Example:\n a = [1,2,3]\n e = a to_enum\n e next # => 1\n e next # => 2\n e next # => 3\n e next # => raises Fancy StopIteration</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">return</code> </label><div>Next element in the collection this enumerator is attached to.</div></div></div>\n\n"}, "FancyEnumerator#initialize:with:":{args:["@collection", "@iterator"], doc:"<p>Initializes a new FancyEnumerator with a given <code data-lang=\"fancy\">collection</code>\nand <code data-lang=\"fancy\">iterator</code> selector to be used for iteration.</p>\n\n<div class=\"doctags\"><div class=\"doctag\"><label> <code data-lang=\"fancy\">collection</code> </label><div>Collection to iterate over.</div></div><div class=\"doctag\"><label> <code data-lang=\"fancy\">iterator</code> </label><div>Selector to use to iterate over <code data-lang=\"fancy\">collection</code>.</div></div></div>\n\n"}}, objects:{}}); })();
@@ -35,7 +35,6 @@
35
35
  };
36
36
 
37
37
  var populateMethods = function(type, cls) {
38
-
39
38
  var indexed = _.reduce(_.keys(cls[type]), function(dict, name) {
40
39
  var first = firstLetter(name);
41
40
  var ms = dict[first] || [];
@@ -90,7 +89,7 @@
90
89
  }
91
90
  });
92
91
  });
93
-
92
+ return _.keys(cls[type]).length;
94
93
  }
95
94
 
96
95
  /* populate functions */
@@ -148,8 +147,26 @@
148
147
  $(".class.content").html(cls.doc);
149
148
 
150
149
 
151
- populateMethods("instance_methods", cls);
152
- populateMethods("methods", cls);
150
+ // hide instance and class method parts if none available
151
+ // otherwise show them
152
+ if(populateMethods("instance_methods", cls) == 0) {
153
+ $(".accordion .instance_methods").hide();
154
+ } else {
155
+ $(".accordion .instance_methods").show();
156
+ }
157
+
158
+ if(populateMethods("methods", cls) == 0) {
159
+ $(".accordion .methods").hide();
160
+ } else {
161
+ $(".accordion .methods").show();
162
+ }
163
+
164
+ // reset accordion to be closed
165
+ $(".accordion").accordion({
166
+ collapsible: true,
167
+ active: false,
168
+ fillSpace: true
169
+ });
153
170
 
154
171
  });
155
172
  };
@@ -175,6 +192,7 @@
175
192
 
176
193
  $(".accordion").accordion({
177
194
  collapsible: true,
195
+ active: false,
178
196
  fillSpace: true
179
197
  });
180
198
 
@@ -2,9 +2,9 @@
2
2
  <html>
3
3
  <head>
4
4
  <link rel="stylesheet" href="fancy.css" type="text/css" media="screen">
5
- <script type="text/javascript" src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
6
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js"></script>
7
- <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
5
+ <script type="text/javascript" src="jquery.tools.min.js"></script>
6
+ <script type="text/javascript" src="jquery-ui.min.js"></script>
7
+ <script type="text/javascript" src="themeswitchertool.js"></script>
8
8
  <script type="text/javascript" src="underscore-min.js"></script>
9
9
  <script type="text/javascript" src="fdoc.js"></script>
10
10
  <script type="text/javascript" src="fancy.jsonp"></script>
@@ -37,14 +37,13 @@
37
37
  </div>
38
38
  <div class="accordion">
39
39
 
40
- <h3>Instance Methods</h3>
41
-
40
+ <h3 class="instance_methods">Instance Methods</h3>
42
41
  <div>
43
42
  <div class="index instance_methods"></div>
44
43
  <div class="content instance_methods"></div>
45
44
  </div>
46
45
 
47
- <h3>Class Methods</h3>
46
+ <h3 class="methods">Class Methods</h3>
48
47
  <div>
49
48
  <div class="index methods"></div>
50
49
  <div class="content methods"></div>
@@ -0,0 +1,401 @@
1
+ /*!
2
+ * jQuery UI 1.8.6
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI
9
+ */
10
+ (function(b,c){function f(g){return!b(g).parents().andSelf().filter(function(){return b.curCSS(this,"visibility")==="hidden"||b.expr.filters.hidden(this)}).length}b.ui=b.ui||{};if(!b.ui.version){b.extend(b.ui,{version:"1.8.6",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
11
+ NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});b.fn.extend({_focus:b.fn.focus,focus:function(g,e){return typeof g==="number"?this.each(function(){var a=this;setTimeout(function(){b(a).focus();e&&e.call(a)},g)}):this._focus.apply(this,arguments)},scrollParent:function(){var g;g=b.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(b.curCSS(this,
12
+ "position",1))&&/(auto|scroll)/.test(b.curCSS(this,"overflow",1)+b.curCSS(this,"overflow-y",1)+b.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(b.curCSS(this,"overflow",1)+b.curCSS(this,"overflow-y",1)+b.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!g.length?b(document):g},zIndex:function(g){if(g!==c)return this.css("zIndex",g);if(this.length){g=b(this[0]);for(var e;g.length&&g[0]!==document;){e=g.css("position");
13
+ if(e==="absolute"||e==="relative"||e==="fixed"){e=parseInt(g.css("zIndex"),10);if(!isNaN(e)&&e!==0)return e}g=g.parent()}}return 0},disableSelection:function(){return this.bind((b.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(g){g.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});b.each(["Width","Height"],function(g,e){function a(j,n,q,l){b.each(d,function(){n-=parseFloat(b.curCSS(j,"padding"+this,true))||0;if(q)n-=parseFloat(b.curCSS(j,
14
+ "border"+this+"Width",true))||0;if(l)n-=parseFloat(b.curCSS(j,"margin"+this,true))||0});return n}var d=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),i={innerWidth:b.fn.innerWidth,innerHeight:b.fn.innerHeight,outerWidth:b.fn.outerWidth,outerHeight:b.fn.outerHeight};b.fn["inner"+e]=function(j){if(j===c)return i["inner"+e].call(this);return this.each(function(){b(this).css(h,a(this,j)+"px")})};b.fn["outer"+e]=function(j,n){if(typeof j!=="number")return i["outer"+e].call(this,j);return this.each(function(){b(this).css(h,
15
+ a(this,j,true,n)+"px")})}});b.extend(b.expr[":"],{data:function(g,e,a){return!!b.data(g,a[3])},focusable:function(g){var e=g.nodeName.toLowerCase(),a=b.attr(g,"tabindex");if("area"===e){e=g.parentNode;a=e.name;if(!g.href||!a||e.nodeName.toLowerCase()!=="map")return false;g=b("img[usemap=#"+a+"]")[0];return!!g&&f(g)}return(/input|select|textarea|button|object/.test(e)?!g.disabled:"a"==e?g.href||!isNaN(a):!isNaN(a))&&f(g)},tabbable:function(g){var e=b.attr(g,"tabindex");return(isNaN(e)||e>=0)&&b(g).is(":focusable")}});
16
+ b(function(){var g=document.body,e=g.appendChild(e=document.createElement("div"));b.extend(e.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=e.offsetHeight===100;b.support.selectstart="onselectstart"in e;g.removeChild(e).style.display="none"});b.extend(b.ui,{plugin:{add:function(g,e,a){g=b.ui[g].prototype;for(var d in a){g.plugins[d]=g.plugins[d]||[];g.plugins[d].push([e,a[d]])}},call:function(g,e,a){if((e=g.plugins[e])&&g.element[0].parentNode)for(var d=0;d<e.length;d++)g.options[e[d][0]]&&
17
+ e[d][1].apply(g.element,a)}},contains:function(g,e){return document.compareDocumentPosition?g.compareDocumentPosition(e)&16:g!==e&&g.contains(e)},hasScroll:function(g,e){if(b(g).css("overflow")==="hidden")return false;e=e&&e==="left"?"scrollLeft":"scrollTop";var a=false;if(g[e]>0)return true;g[e]=1;a=g[e]>0;g[e]=0;return a},isOverAxis:function(g,e,a){return g>e&&g<e+a},isOver:function(g,e,a,d,h,i){return b.ui.isOverAxis(g,a,h)&&b.ui.isOverAxis(e,d,i)}})}})(jQuery);
18
+ (function(b,c){if(b.cleanData){var f=b.cleanData;b.cleanData=function(e){for(var a=0,d;(d=e[a])!=null;a++)b(d).triggerHandler("remove");f(e)}}else{var g=b.fn.remove;b.fn.remove=function(e,a){return this.each(function(){if(!a)if(!e||b.filter(e,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return g.call(b(this),e,a)})}}b.widget=function(e,a,d){var h=e.split(".")[0],i;e=e.split(".")[1];i=h+"-"+e;if(!d){d=a;a=b.Widget}b.expr[":"][i]=function(j){return!!b.data(j,
19
+ e)};b[h]=b[h]||{};b[h][e]=function(j,n){arguments.length&&this._createWidget(j,n)};a=new a;a.options=b.extend(true,{},a.options);b[h][e].prototype=b.extend(true,a,{namespace:h,widgetName:e,widgetEventPrefix:b[h][e].prototype.widgetEventPrefix||e,widgetBaseClass:i},d);b.widget.bridge(e,b[h][e])};b.widget.bridge=function(e,a){b.fn[e]=function(d){var h=typeof d==="string",i=Array.prototype.slice.call(arguments,1),j=this;d=!h&&i.length?b.extend.apply(null,[true,d].concat(i)):d;if(h&&d.charAt(0)==="_")return j;
20
+ h?this.each(function(){var n=b.data(this,e),q=n&&b.isFunction(n[d])?n[d].apply(n,i):n;if(q!==n&&q!==c){j=q;return false}}):this.each(function(){var n=b.data(this,e);n?n.option(d||{})._init():b.data(this,e,new a(d,this))});return j}};b.Widget=function(e,a){arguments.length&&this._createWidget(e,a)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(e,a){b.data(a,this.widgetName,this);this.element=b(a);this.options=b.extend(true,{},this.options,
21
+ this._getCreateOptions(),e);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
22
+ widget:function(){return this.element},option:function(e,a){var d=e;if(arguments.length===0)return b.extend({},this.options);if(typeof e==="string"){if(a===c)return this.options[e];d={};d[e]=a}this._setOptions(d);return this},_setOptions:function(e){var a=this;b.each(e,function(d,h){a._setOption(d,h)});return this},_setOption:function(e,a){this.options[e]=a;if(e==="disabled")this.widget()[a?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",a);return this},
23
+ enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,a,d){var h=this.options[e];a=b.Event(a);a.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();d=d||{};if(a.originalEvent){e=b.event.props.length;for(var i;e;){i=b.event.props[--e];a[i]=a.originalEvent[i]}}this.element.trigger(a,d);return!(b.isFunction(h)&&h.call(this.element[0],a,d)===false||a.isDefaultPrevented())}}})(jQuery);
24
+ (function(b){b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var c=this;this.element.bind("mousedown."+this.widgetName,function(f){return c._mouseDown(f)}).bind("click."+this.widgetName,function(f){if(c._preventClickEvent){c._preventClickEvent=false;f.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(c){c.originalEvent=c.originalEvent||{};if(!c.originalEvent.mouseHandled){this._mouseStarted&&
25
+ this._mouseUp(c);this._mouseDownEvent=c;var f=this,g=c.which==1,e=typeof this.options.cancel=="string"?b(c.target).parents().add(c.target).filter(this.options.cancel).length:false;if(!g||e||!this._mouseCapture(c))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){f.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(c)&&this._mouseDelayMet(c)){this._mouseStarted=this._mouseStart(c)!==false;if(!this._mouseStarted){c.preventDefault();
26
+ return true}}this._mouseMoveDelegate=function(a){return f._mouseMove(a)};this._mouseUpDelegate=function(a){return f._mouseUp(a)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.preventDefault();return c.originalEvent.mouseHandled=true}},_mouseMove:function(c){if(b.browser.msie&&!(document.documentMode>=9)&&!c.button)return this._mouseUp(c);if(this._mouseStarted){this._mouseDrag(c);return c.preventDefault()}if(this._mouseDistanceMet(c)&&
27
+ this._mouseDelayMet(c))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,c)!==false)?this._mouseDrag(c):this._mouseUp(c);return!this._mouseStarted},_mouseUp:function(c){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=c.target==this._mouseDownEvent.target;this._mouseStop(c)}return false},_mouseDistanceMet:function(c){return Math.max(Math.abs(this._mouseDownEvent.pageX-
28
+ c.pageX),Math.abs(this._mouseDownEvent.pageY-c.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
29
+ (function(b){b.widget("ui.draggable",b.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
30
+ "original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(c){var f=
31
+ this.options;if(this.helper||f.disabled||b(c.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(c);if(!this.handle)return false;return true},_mouseStart:function(c){var f=this.options;this.helper=this._createHelper(c);this._cacheHelperProportions();if(b.ui.ddmanager)b.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
32
+ this.margins.top,left:this.offset.left-this.margins.left};b.extend(this.offset,{click:{left:c.pageX-this.offset.left,top:c.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(c);this.originalPageX=c.pageX;this.originalPageY=c.pageY;f.cursorAt&&this._adjustOffsetFromHelper(f.cursorAt);f.containment&&this._setContainment();if(this._trigger("start",c)===false){this._clear();return false}this._cacheHelperProportions();
33
+ b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(c,true);return true},_mouseDrag:function(c,f){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute");if(!f){f=this._uiHash();if(this._trigger("drag",c,f)===false){this._mouseUp({});return false}this.position=f.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
34
+ this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";b.ui.ddmanager&&b.ui.ddmanager.drag(this,c);return false},_mouseStop:function(c){var f=false;if(b.ui.ddmanager&&!this.options.dropBehaviour)f=b.ui.ddmanager.drop(this,c);if(this.dropped){f=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!f||this.options.revert=="valid"&&f||this.options.revert===true||b.isFunction(this.options.revert)&&this.options.revert.call(this.element,
35
+ f)){var g=this;b(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){g._trigger("stop",c)!==false&&g._clear()})}else this._trigger("stop",c)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(c){var f=!this.options.handle||!b(this.options.handle,this.element).length?true:false;b(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
36
+ c.target)f=true});return f},_createHelper:function(c){var f=this.options;c=b.isFunction(f.helper)?b(f.helper.apply(this.element[0],[c])):f.helper=="clone"?this.element.clone():this.element;c.parents("body").length||c.appendTo(f.appendTo=="parent"?this.element[0].parentNode:f.appendTo);c[0]!=this.element[0]&&!/(fixed|absolute)/.test(c.css("position"))&&c.css("position","absolute");return c},_adjustOffsetFromHelper:function(c){if(typeof c=="string")c=c.split(" ");if(b.isArray(c))c={left:+c[0],top:+c[1]||
37
+ 0};if("left"in c)this.offset.click.left=c.left+this.margins.left;if("right"in c)this.offset.click.left=this.helperProportions.width-c.right+this.margins.left;if("top"in c)this.offset.click.top=c.top+this.margins.top;if("bottom"in c)this.offset.click.top=this.helperProportions.height-c.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var c=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],
38
+ this.offsetParent[0])){c.left+=this.scrollParent.scrollLeft();c.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)c={top:0,left:0};return{top:c.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:c.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var c=this.element.position();return{top:c.top-
39
+ (parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:c.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var c=this.options;if(c.containment==
40
+ "parent")c.containment=this.helper[0].parentNode;if(c.containment=="document"||c.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,b(c.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b(c.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(c.containment)&&
41
+ c.containment.constructor!=Array){var f=b(c.containment)[0];if(f){c=b(c.containment).offset();var g=b(f).css("overflow")!="hidden";this.containment=[c.left+(parseInt(b(f).css("borderLeftWidth"),10)||0)+(parseInt(b(f).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(b(f).css("borderTopWidth"),10)||0)+(parseInt(b(f).css("paddingTop"),10)||0)-this.margins.top,c.left+(g?Math.max(f.scrollWidth,f.offsetWidth):f.offsetWidth)-(parseInt(b(f).css("borderLeftWidth"),10)||0)-(parseInt(b(f).css("paddingRight"),
42
+ 10)||0)-this.helperProportions.width-this.margins.left,c.top+(g?Math.max(f.scrollHeight,f.offsetHeight):f.offsetHeight)-(parseInt(b(f).css("borderTopWidth"),10)||0)-(parseInt(b(f).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(c.containment.constructor==Array)this.containment=c.containment},_convertPositionTo:function(c,f){if(!f)f=this.position;c=c=="absolute"?1:-1;var g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],
43
+ this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(g[0].tagName);return{top:f.top+this.offset.relative.top*c+this.offset.parent.top*c-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:g.scrollTop())*c),left:f.left+this.offset.relative.left*c+this.offset.parent.left*c-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
44
+ e?0:g.scrollLeft())*c)}},_generatePosition:function(c){var f=this.options,g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(g[0].tagName),a=c.pageX,d=c.pageY;if(this.originalPosition){if(this.containment){if(c.pageX-this.offset.click.left<this.containment[0])a=this.containment[0]+this.offset.click.left;if(c.pageY-this.offset.click.top<this.containment[1])d=this.containment[1]+
45
+ this.offset.click.top;if(c.pageX-this.offset.click.left>this.containment[2])a=this.containment[2]+this.offset.click.left;if(c.pageY-this.offset.click.top>this.containment[3])d=this.containment[3]+this.offset.click.top}if(f.grid){d=this.originalPageY+Math.round((d-this.originalPageY)/f.grid[1])*f.grid[1];d=this.containment?!(d-this.offset.click.top<this.containment[1]||d-this.offset.click.top>this.containment[3])?d:!(d-this.offset.click.top<this.containment[1])?d-f.grid[1]:d+f.grid[1]:d;a=this.originalPageX+
46
+ Math.round((a-this.originalPageX)/f.grid[0])*f.grid[0];a=this.containment?!(a-this.offset.click.left<this.containment[0]||a-this.offset.click.left>this.containment[2])?a:!(a-this.offset.click.left<this.containment[0])?a-f.grid[0]:a+f.grid[0]:a}}return{top:d-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:g.scrollTop()),left:a-this.offset.click.left-
47
+ this.offset.relative.left-this.offset.parent.left+(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:g.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(c,f,g){g=g||this._uiHash();b.ui.plugin.call(this,c,[f,g]);if(c=="drag")this.positionAbs=
48
+ this._convertPositionTo("absolute");return b.Widget.prototype._trigger.call(this,c,f,g)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});b.extend(b.ui.draggable,{version:"1.8.6"});b.ui.plugin.add("draggable","connectToSortable",{start:function(c,f){var g=b(this).data("draggable"),e=g.options,a=b.extend({},f,{item:g.element});g.sortables=[];b(e.connectToSortable).each(function(){var d=b.data(this,"sortable");
49
+ if(d&&!d.options.disabled){g.sortables.push({instance:d,shouldRevert:d.options.revert});d._refreshItems();d._trigger("activate",c,a)}})},stop:function(c,f){var g=b(this).data("draggable"),e=b.extend({},f,{item:g.element});b.each(g.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;g.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;
50
+ g.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,e)}})},drag:function(c,f){var g=b(this).data("draggable"),e=this;b.each(g.sortables,function(){this.instance.positionAbs=g.positionAbs;this.instance.helperProportions=g.helperProportions;this.instance.offset.click=g.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=
51
+ 1;this.instance.currentItem=b(e).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=g.offset.click.top;this.instance.offset.click.left=g.offset.click.left;this.instance.offset.parent.left-=g.offset.parent.left-this.instance.offset.parent.left;
52
+ this.instance.offset.parent.top-=g.offset.parent.top-this.instance.offset.parent.top;g._trigger("toSortable",c);g.dropped=this.instance.element;g.currentItem=g.element;this.instance.fromOutside=g}this.instance.currentItem&&this.instance._mouseDrag(c)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=
53
+ this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();g._trigger("fromSortable",c);g.dropped=false}})}});b.ui.plugin.add("draggable","cursor",{start:function(){var c=b("body"),f=b(this).data("draggable").options;if(c.css("cursor"))f._cursor=c.css("cursor");c.css("cursor",f.cursor)},stop:function(){var c=b(this).data("draggable").options;c._cursor&&b("body").css("cursor",c._cursor)}});b.ui.plugin.add("draggable","iframeFix",{start:function(){var c=
54
+ b(this).data("draggable").options;b(c.iframeFix===true?"iframe":c.iframeFix).each(function(){b('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(b(this).offset()).appendTo("body")})},stop:function(){b("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});b.ui.plugin.add("draggable","opacity",{start:function(c,f){c=b(f.helper);f=b(this).data("draggable").options;
55
+ if(c.css("opacity"))f._opacity=c.css("opacity");c.css("opacity",f.opacity)},stop:function(c,f){c=b(this).data("draggable").options;c._opacity&&b(f.helper).css("opacity",c._opacity)}});b.ui.plugin.add("draggable","scroll",{start:function(){var c=b(this).data("draggable");if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML")c.overflowOffset=c.scrollParent.offset()},drag:function(c){var f=b(this).data("draggable"),g=f.options,e=false;if(f.scrollParent[0]!=document&&f.scrollParent[0].tagName!=
56
+ "HTML"){if(!g.axis||g.axis!="x")if(f.overflowOffset.top+f.scrollParent[0].offsetHeight-c.pageY<g.scrollSensitivity)f.scrollParent[0].scrollTop=e=f.scrollParent[0].scrollTop+g.scrollSpeed;else if(c.pageY-f.overflowOffset.top<g.scrollSensitivity)f.scrollParent[0].scrollTop=e=f.scrollParent[0].scrollTop-g.scrollSpeed;if(!g.axis||g.axis!="y")if(f.overflowOffset.left+f.scrollParent[0].offsetWidth-c.pageX<g.scrollSensitivity)f.scrollParent[0].scrollLeft=e=f.scrollParent[0].scrollLeft+g.scrollSpeed;else if(c.pageX-
57
+ f.overflowOffset.left<g.scrollSensitivity)f.scrollParent[0].scrollLeft=e=f.scrollParent[0].scrollLeft-g.scrollSpeed}else{if(!g.axis||g.axis!="x")if(c.pageY-b(document).scrollTop()<g.scrollSensitivity)e=b(document).scrollTop(b(document).scrollTop()-g.scrollSpeed);else if(b(window).height()-(c.pageY-b(document).scrollTop())<g.scrollSensitivity)e=b(document).scrollTop(b(document).scrollTop()+g.scrollSpeed);if(!g.axis||g.axis!="y")if(c.pageX-b(document).scrollLeft()<g.scrollSensitivity)e=b(document).scrollLeft(b(document).scrollLeft()-
58
+ g.scrollSpeed);else if(b(window).width()-(c.pageX-b(document).scrollLeft())<g.scrollSensitivity)e=b(document).scrollLeft(b(document).scrollLeft()+g.scrollSpeed)}e!==false&&b.ui.ddmanager&&!g.dropBehaviour&&b.ui.ddmanager.prepareOffsets(f,c)}});b.ui.plugin.add("draggable","snap",{start:function(){var c=b(this).data("draggable"),f=c.options;c.snapElements=[];b(f.snap.constructor!=String?f.snap.items||":data(draggable)":f.snap).each(function(){var g=b(this),e=g.offset();this!=c.element[0]&&c.snapElements.push({item:this,
59
+ width:g.outerWidth(),height:g.outerHeight(),top:e.top,left:e.left})})},drag:function(c,f){for(var g=b(this).data("draggable"),e=g.options,a=e.snapTolerance,d=f.offset.left,h=d+g.helperProportions.width,i=f.offset.top,j=i+g.helperProportions.height,n=g.snapElements.length-1;n>=0;n--){var q=g.snapElements[n].left,l=q+g.snapElements[n].width,k=g.snapElements[n].top,m=k+g.snapElements[n].height;if(q-a<d&&d<l+a&&k-a<i&&i<m+a||q-a<d&&d<l+a&&k-a<j&&j<m+a||q-a<h&&h<l+a&&k-a<i&&i<m+a||q-a<h&&h<l+a&&k-a<j&&
60
+ j<m+a){if(e.snapMode!="inner"){var o=Math.abs(k-j)<=a,p=Math.abs(m-i)<=a,s=Math.abs(q-h)<=a,r=Math.abs(l-d)<=a;if(o)f.position.top=g._convertPositionTo("relative",{top:k-g.helperProportions.height,left:0}).top-g.margins.top;if(p)f.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top;if(s)f.position.left=g._convertPositionTo("relative",{top:0,left:q-g.helperProportions.width}).left-g.margins.left;if(r)f.position.left=g._convertPositionTo("relative",{top:0,left:l}).left-g.margins.left}var u=
61
+ o||p||s||r;if(e.snapMode!="outer"){o=Math.abs(k-i)<=a;p=Math.abs(m-j)<=a;s=Math.abs(q-d)<=a;r=Math.abs(l-h)<=a;if(o)f.position.top=g._convertPositionTo("relative",{top:k,left:0}).top-g.margins.top;if(p)f.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top;if(s)f.position.left=g._convertPositionTo("relative",{top:0,left:q}).left-g.margins.left;if(r)f.position.left=g._convertPositionTo("relative",{top:0,left:l-g.helperProportions.width}).left-g.margins.left}if(!g.snapElements[n].snapping&&
62
+ (o||p||s||r||u))g.options.snap.snap&&g.options.snap.snap.call(g.element,c,b.extend(g._uiHash(),{snapItem:g.snapElements[n].item}));g.snapElements[n].snapping=o||p||s||r||u}else{g.snapElements[n].snapping&&g.options.snap.release&&g.options.snap.release.call(g.element,c,b.extend(g._uiHash(),{snapItem:g.snapElements[n].item}));g.snapElements[n].snapping=false}}}});b.ui.plugin.add("draggable","stack",{start:function(){var c=b(this).data("draggable").options;c=b.makeArray(b(c.stack)).sort(function(g,e){return(parseInt(b(g).css("zIndex"),
63
+ 10)||0)-(parseInt(b(e).css("zIndex"),10)||0)});if(c.length){var f=parseInt(c[0].style.zIndex)||0;b(c).each(function(g){this.style.zIndex=f+g});this[0].style.zIndex=f+c.length}}});b.ui.plugin.add("draggable","zIndex",{start:function(c,f){c=b(f.helper);f=b(this).data("draggable").options;if(c.css("zIndex"))f._zIndex=c.css("zIndex");c.css("zIndex",f.zIndex)},stop:function(c,f){c=b(this).data("draggable").options;c._zIndex&&b(f.helper).css("zIndex",c._zIndex)}})})(jQuery);
64
+ (function(b){b.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var c=this.options,f=c.accept;this.isover=0;this.isout=1;this.accept=b.isFunction(f)?f:function(g){return g.is(f)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};b.ui.ddmanager.droppables[c.scope]=b.ui.ddmanager.droppables[c.scope]||[];b.ui.ddmanager.droppables[c.scope].push(this);
65
+ c.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var c=b.ui.ddmanager.droppables[this.options.scope],f=0;f<c.length;f++)c[f]==this&&c.splice(f,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(c,f){if(c=="accept")this.accept=b.isFunction(f)?f:function(g){return g.is(f)};b.Widget.prototype._setOption.apply(this,arguments)},_activate:function(c){var f=b.ui.ddmanager.current;this.options.activeClass&&
66
+ this.element.addClass(this.options.activeClass);f&&this._trigger("activate",c,this.ui(f))},_deactivate:function(c){var f=b.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);f&&this._trigger("deactivate",c,this.ui(f))},_over:function(c){var f=b.ui.ddmanager.current;if(!(!f||(f.currentItem||f.element)[0]==this.element[0]))if(this.accept.call(this.element[0],f.currentItem||f.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
67
+ this._trigger("over",c,this.ui(f))}},_out:function(c){var f=b.ui.ddmanager.current;if(!(!f||(f.currentItem||f.element)[0]==this.element[0]))if(this.accept.call(this.element[0],f.currentItem||f.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",c,this.ui(f))}},_drop:function(c,f){var g=f||b.ui.ddmanager.current;if(!g||(g.currentItem||g.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var a=
68
+ b.data(this,"droppable");if(a.options.greedy&&!a.options.disabled&&a.options.scope==g.options.scope&&a.accept.call(a.element[0],g.currentItem||g.element)&&b.ui.intersect(g,b.extend(a,{offset:a.element.offset()}),a.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],g.currentItem||g.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
69
+ c,this.ui(g));return this.element}return false},ui:function(c){return{draggable:c.currentItem||c.element,helper:c.helper,position:c.position,offset:c.positionAbs}}});b.extend(b.ui.droppable,{version:"1.8.6"});b.ui.intersect=function(c,f,g){if(!f.offset)return false;var e=(c.positionAbs||c.position.absolute).left,a=e+c.helperProportions.width,d=(c.positionAbs||c.position.absolute).top,h=d+c.helperProportions.height,i=f.offset.left,j=i+f.proportions.width,n=f.offset.top,q=n+f.proportions.height;
70
+ switch(g){case "fit":return i<=e&&a<=j&&n<=d&&h<=q;case "intersect":return i<e+c.helperProportions.width/2&&a-c.helperProportions.width/2<j&&n<d+c.helperProportions.height/2&&h-c.helperProportions.height/2<q;case "pointer":return b.ui.isOver((c.positionAbs||c.position.absolute).top+(c.clickOffset||c.offset.click).top,(c.positionAbs||c.position.absolute).left+(c.clickOffset||c.offset.click).left,n,i,f.proportions.height,f.proportions.width);case "touch":return(d>=n&&d<=q||h>=n&&h<=q||d<n&&h>q)&&(e>=
71
+ i&&e<=j||a>=i&&a<=j||e<i&&a>j);default:return false}};b.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(c,f){var g=b.ui.ddmanager.droppables[c.options.scope]||[],e=f?f.type:null,a=(c.currentItem||c.element).find(":data(droppable)").andSelf(),d=0;a:for(;d<g.length;d++)if(!(g[d].options.disabled||c&&!g[d].accept.call(g[d].element[0],c.currentItem||c.element))){for(var h=0;h<a.length;h++)if(a[h]==g[d].element[0]){g[d].proportions.height=0;continue a}g[d].visible=g[d].element.css("display")!=
72
+ "none";if(g[d].visible){g[d].offset=g[d].element.offset();g[d].proportions={width:g[d].element[0].offsetWidth,height:g[d].element[0].offsetHeight};e=="mousedown"&&g[d]._activate.call(g[d],f)}}},drop:function(c,f){var g=false;b.each(b.ui.ddmanager.droppables[c.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&b.ui.intersect(c,this,this.options.tolerance))g=g||this._drop.call(this,f);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],c.currentItem||
73
+ c.element)){this.isout=1;this.isover=0;this._deactivate.call(this,f)}}});return g},drag:function(c,f){c.options.refreshPositions&&b.ui.ddmanager.prepareOffsets(c,f);b.each(b.ui.ddmanager.droppables[c.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var g=b.ui.intersect(c,this,this.options.tolerance);if(g=!g&&this.isover==1?"isout":g&&this.isover==0?"isover":null){var e;if(this.options.greedy){var a=this.element.parents(":data(droppable):eq(0)");if(a.length){e=
74
+ b.data(a[0],"droppable");e.greedyChild=g=="isover"?1:0}}if(e&&g=="isover"){e.isover=0;e.isout=1;e._out.call(e,f)}this[g]=1;this[g=="isout"?"isover":"isout"]=0;this[g=="isover"?"_over":"_out"].call(this,f);if(e&&g=="isout"){e.isout=0;e.isover=1;e._over.call(e,f)}}}})}}})(jQuery);
75
+ (function(b){b.widget("ui.resizable",b.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var g=this,e=this.options;this.element.addClass("ui-resizable");b.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,
76
+ _proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&b.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(b('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
77
+ top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
78
+ this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=e.handles||(!b(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
79
+ nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var a=this.handles.split(",");this.handles={};for(var d=0;d<a.length;d++){var h=b.trim(a[d]),i=b('<div class="ui-resizable-handle '+("ui-resizable-"+h)+'"></div>');/sw|se|ne|nw/.test(h)&&i.css({zIndex:++e.zIndex});"se"==h&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[h]=".ui-resizable-"+h;this.element.append(i)}}this._renderAxis=function(j){j=j||this.element;for(var n in this.handles){if(this.handles[n].constructor==
80
+ String)this.handles[n]=b(this.handles[n],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var q=b(this.handles[n],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(n)?q.outerHeight():q.outerWidth();q=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");j.css(q,l);this._proportionallyResize()}b(this.handles[n])}};this._renderAxis(this.element);this._handles=b(".ui-resizable-handle",this.element).disableSelection();
81
+ this._handles.mouseover(function(){if(!g.resizing){if(this.className)var j=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);g.axis=j&&j[1]?j[1]:"se"}});if(e.autoHide){this._handles.hide();b(this.element).addClass("ui-resizable-autohide").hover(function(){b(this).removeClass("ui-resizable-autohide");g._handles.show()},function(){if(!g.resizing){b(this).addClass("ui-resizable-autohide");g._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var g=function(a){b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
82
+ if(this.elementIsWrapper){g(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);g(this.originalElement);return this},_mouseCapture:function(g){var e=false;for(var a in this.handles)if(b(this.handles[a])[0]==g.target)e=true;return!this.options.disabled&&e},_mouseStart:function(g){var e=this.options,a=this.element.position(),
83
+ d=this.element;this.resizing=true;this.documentScroll={top:b(document).scrollTop(),left:b(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:a.top,left:a.left});b.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();a=c(this.helper.css("left"));var h=c(this.helper.css("top"));if(e.containment){a+=b(e.containment).scrollLeft()||0;h+=b(e.containment).scrollTop()||0}this.offset=
84
+ this.helper.offset();this.position={left:a,top:h};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:a,top:h};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio:
85
+ this.originalSize.width/this.originalSize.height||1;e=b(".ui-resizable-"+this.axis).css("cursor");b("body").css("cursor",e=="auto"?this.axis+"-resize":e);d.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(g){var e=this.helper,a=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;a=d.apply(this,[g,g.pageX-a.left||0,g.pageY-a.top||0]);if(this._aspectRatio||g.shiftKey)a=this._updateRatio(a,g);a=this._respectSize(a,g);this._propagate("resize",
86
+ g);e.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(a);this._trigger("resize",g,this.ui());return false},_mouseStop:function(g){this.resizing=false;var e=this.options,a=this;if(this._helper){var d=this._proportionallyResizeElements,h=d.length&&/textarea/i.test(d[0].nodeName);d=h&&b.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;
87
+ h={width:a.size.width-(h?0:a.sizeDiff.width),height:a.size.height-d};d=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var i=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;e.animate||this.element.css(b.extend(h,{top:i,left:d}));a.helper.height(a.size.height);a.helper.width(a.size.width);this._helper&&!e.animate&&this._proportionallyResize()}b("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
88
+ g);this._helper&&this.helper.remove();return false},_updateCache:function(g){this.offset=this.helper.offset();if(f(g.left))this.position.left=g.left;if(f(g.top))this.position.top=g.top;if(f(g.height))this.size.height=g.height;if(f(g.width))this.size.width=g.width},_updateRatio:function(g){var e=this.position,a=this.size,d=this.axis;if(g.height)g.width=a.height*this.aspectRatio;else if(g.width)g.height=a.width/this.aspectRatio;if(d=="sw"){g.left=e.left+(a.width-g.width);g.top=null}if(d=="nw"){g.top=
89
+ e.top+(a.height-g.height);g.left=e.left+(a.width-g.width)}return g},_respectSize:function(g){var e=this.options,a=this.axis,d=f(g.width)&&e.maxWidth&&e.maxWidth<g.width,h=f(g.height)&&e.maxHeight&&e.maxHeight<g.height,i=f(g.width)&&e.minWidth&&e.minWidth>g.width,j=f(g.height)&&e.minHeight&&e.minHeight>g.height;if(i)g.width=e.minWidth;if(j)g.height=e.minHeight;if(d)g.width=e.maxWidth;if(h)g.height=e.maxHeight;var n=this.originalPosition.left+this.originalSize.width,q=this.position.top+this.size.height,
90
+ l=/sw|nw|w/.test(a);a=/nw|ne|n/.test(a);if(i&&l)g.left=n-e.minWidth;if(d&&l)g.left=n-e.maxWidth;if(j&&a)g.top=q-e.minHeight;if(h&&a)g.top=q-e.maxHeight;if((e=!g.width&&!g.height)&&!g.left&&g.top)g.top=null;else if(e&&!g.top&&g.left)g.left=null;return g},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var g=this.helper||this.element,e=0;e<this._proportionallyResizeElements.length;e++){var a=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[a.css("borderTopWidth"),
91
+ a.css("borderRightWidth"),a.css("borderBottomWidth"),a.css("borderLeftWidth")],h=[a.css("paddingTop"),a.css("paddingRight"),a.css("paddingBottom"),a.css("paddingLeft")];this.borderDif=b.map(d,function(i,j){i=parseInt(i,10)||0;j=parseInt(h[j],10)||0;return i+j})}b.browser.msie&&(b(g).is(":hidden")||b(g).parents(":hidden").length)||a.css({height:g.height()-this.borderDif[0]-this.borderDif[2]||0,width:g.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var g=this.options;this.elementOffset=
92
+ this.element.offset();if(this._helper){this.helper=this.helper||b('<div style="overflow:hidden;"></div>');var e=b.browser.msie&&b.browser.version<7,a=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-a+"px",top:this.elementOffset.top-a+"px",zIndex:++g.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(g,e){return{width:this.originalSize.width+
93
+ e}},w:function(g,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(g,e,a){return{top:this.originalPosition.top+a,height:this.originalSize.height-a}},s:function(g,e,a){return{height:this.originalSize.height+a}},se:function(g,e,a){return b.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,e,a]))},sw:function(g,e,a){return b.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,e,a]))},ne:function(g,e,a){return b.extend(this._change.n.apply(this,
94
+ arguments),this._change.e.apply(this,[g,e,a]))},nw:function(g,e,a){return b.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,e,a]))}},_propagate:function(g,e){b.ui.plugin.call(this,g,[e,this.ui()]);g!="resize"&&this._trigger(g,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});b.extend(b.ui.resizable,
95
+ {version:"1.8.6"});b.ui.plugin.add("resizable","alsoResize",{start:function(){var g=b(this).data("resizable").options,e=function(a){b(a).each(function(){var d=b(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof g.alsoResize=="object"&&!g.alsoResize.parentNode)if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];e(g.alsoResize)}else b.each(g.alsoResize,
96
+ function(a){e(a)});else e(g.alsoResize)},resize:function(g,e){var a=b(this).data("resizable");g=a.options;var d=a.originalSize,h=a.originalPosition,i={height:a.size.height-d.height||0,width:a.size.width-d.width||0,top:a.position.top-h.top||0,left:a.position.left-h.left||0},j=function(n,q){b(n).each(function(){var l=b(this),k=b(this).data("resizable-alsoresize"),m={},o=q&&q.length?q:l.parents(e.originalElement[0]).length?["width","height"]:["width","height","top","left"];b.each(o,function(p,s){if((p=
97
+ (k[s]||0)+(i[s]||0))&&p>=0)m[s]=p||null});if(b.browser.opera&&/relative/.test(l.css("position"))){a._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(m)})};typeof g.alsoResize=="object"&&!g.alsoResize.nodeType?b.each(g.alsoResize,function(n,q){j(n,q)}):j(g.alsoResize)},stop:function(){var g=b(this).data("resizable"),e=g.options,a=function(d){b(d).each(function(){var h=b(this);h.css({position:h.data("resizable-alsoresize").position})})};if(g._revertToRelativePosition){g._revertToRelativePosition=
98
+ false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?b.each(e.alsoResize,function(d){a(d)}):a(e.alsoResize)}b(this).removeData("resizable-alsoresize")}});b.ui.plugin.add("resizable","animate",{stop:function(g){var e=b(this).data("resizable"),a=e.options,d=e._proportionallyResizeElements,h=d.length&&/textarea/i.test(d[0].nodeName),i=h&&b.ui.hasScroll(d[0],"left")?0:e.sizeDiff.height;h={width:e.size.width-(h?0:e.sizeDiff.width),height:e.size.height-i};i=parseInt(e.element.css("left"),10)+(e.position.left-
99
+ e.originalPosition.left)||null;var j=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(b.extend(h,j&&i?{top:j,left:i}:{}),{duration:a.animateDuration,easing:a.animateEasing,step:function(){var n={width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};d&&d.length&&b(d[0]).css({width:n.width,height:n.height});e._updateCache(n);e._propagate("resize",
100
+ g)}})}});b.ui.plugin.add("resizable","containment",{start:function(){var g=b(this).data("resizable"),e=g.element,a=g.options.containment;if(e=a instanceof b?a.get(0):/parent/.test(a)?e.parent().get(0):a){g.containerElement=b(e);if(/document/.test(a)||a==document){g.containerOffset={left:0,top:0};g.containerPosition={left:0,top:0};g.parentData={element:b(document),left:0,top:0,width:b(document).width(),height:b(document).height()||document.body.parentNode.scrollHeight}}else{var d=b(e),h=[];b(["Top",
101
+ "Right","Left","Bottom"]).each(function(n,q){h[n]=c(d.css("padding"+q))});g.containerOffset=d.offset();g.containerPosition=d.position();g.containerSize={height:d.innerHeight()-h[3],width:d.innerWidth()-h[1]};a=g.containerOffset;var i=g.containerSize.height,j=g.containerSize.width;j=b.ui.hasScroll(e,"left")?e.scrollWidth:j;i=b.ui.hasScroll(e)?e.scrollHeight:i;g.parentData={element:e,left:a.left,top:a.top,width:j,height:i}}}},resize:function(g){var e=b(this).data("resizable"),a=e.options,d=e.containerOffset,
102
+ h=e.position;g=e._aspectRatio||g.shiftKey;var i={top:0,left:0},j=e.containerElement;if(j[0]!=document&&/static/.test(j.css("position")))i=d;if(h.left<(e._helper?d.left:0)){e.size.width+=e._helper?e.position.left-d.left:e.position.left-i.left;if(g)e.size.height=e.size.width/a.aspectRatio;e.position.left=a.helper?d.left:0}if(h.top<(e._helper?d.top:0)){e.size.height+=e._helper?e.position.top-d.top:e.position.top;if(g)e.size.width=e.size.height*a.aspectRatio;e.position.top=e._helper?d.top:0}e.offset.left=
103
+ e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;a=Math.abs((e._helper?e.offset.left-i.left:e.offset.left-i.left)+e.sizeDiff.width);d=Math.abs((e._helper?e.offset.top-i.top:e.offset.top-d.top)+e.sizeDiff.height);h=e.containerElement.get(0)==e.element.parent().get(0);i=/relative|absolute/.test(e.containerElement.css("position"));if(h&&i)a-=e.parentData.left;if(a+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-a;if(g)e.size.height=e.size.width/e.aspectRatio}if(d+
104
+ e.size.height>=e.parentData.height){e.size.height=e.parentData.height-d;if(g)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var g=b(this).data("resizable"),e=g.options,a=g.containerOffset,d=g.containerPosition,h=g.containerElement,i=b(g.helper),j=i.offset(),n=i.outerWidth()-g.sizeDiff.width;i=i.outerHeight()-g.sizeDiff.height;g._helper&&!e.animate&&/relative/.test(h.css("position"))&&b(this).css({left:j.left-d.left-a.left,width:n,height:i});g._helper&&!e.animate&&/static/.test(h.css("position"))&&
105
+ b(this).css({left:j.left-d.left-a.left,width:n,height:i})}});b.ui.plugin.add("resizable","ghost",{start:function(){var g=b(this).data("resizable"),e=g.options,a=g.size;g.ghost=g.originalElement.clone();g.ghost.css({opacity:0.25,display:"block",position:"relative",height:a.height,width:a.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");g.ghost.appendTo(g.helper)},resize:function(){var g=b(this).data("resizable");g.ghost&&g.ghost.css({position:"relative",
106
+ height:g.size.height,width:g.size.width})},stop:function(){var g=b(this).data("resizable");g.ghost&&g.helper&&g.helper.get(0).removeChild(g.ghost.get(0))}});b.ui.plugin.add("resizable","grid",{resize:function(){var g=b(this).data("resizable"),e=g.options,a=g.size,d=g.originalSize,h=g.originalPosition,i=g.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var j=Math.round((a.width-d.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((a.height-d.height)/(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(i)){g.size.width=
107
+ d.width+j;g.size.height=d.height+e}else if(/^(ne)$/.test(i)){g.size.width=d.width+j;g.size.height=d.height+e;g.position.top=h.top-e}else{if(/^(sw)$/.test(i)){g.size.width=d.width+j;g.size.height=d.height+e}else{g.size.width=d.width+j;g.size.height=d.height+e;g.position.top=h.top-e}g.position.left=h.left-j}}});var c=function(g){return parseInt(g,10)||0},f=function(g){return!isNaN(parseInt(g,10))}})(jQuery);
108
+ (function(b){b.widget("ui.selectable",b.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=b(c.options.filter,c.element[0]);f.each(function(){var g=b(this),e=g.offset();b.data(this,"selectable-item",{element:this,$element:g,left:e.left,top:e.top,right:e.left+g.outerWidth(),bottom:e.top+g.outerHeight(),startselected:false,selected:g.hasClass("ui-selected"),
109
+ selecting:g.hasClass("ui-selecting"),unselecting:g.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=b("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
110
+ c.pageY];if(!this.options.disabled){var g=this.options;this.selectees=b(g.filter,this.element[0]);this._trigger("start",c);b(g.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});g.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=b.data(this,"selectable-item");e.startselected=true;if(!c.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;f._trigger("unselecting",
111
+ c,{unselecting:e.element})}});b(c.target).parents().andSelf().each(function(){var e=b.data(this,"selectable-item");if(e){var a=!c.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(a?"ui-unselecting":"ui-selected").addClass(a?"ui-selecting":"ui-unselecting");e.unselecting=!a;e.selecting=a;(e.selected=a)?f._trigger("selecting",c,{selecting:e.element}):f._trigger("unselecting",c,{unselecting:e.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var g=
112
+ this.options,e=this.opos[0],a=this.opos[1],d=c.pageX,h=c.pageY;if(e>d){var i=d;d=e;e=i}if(a>h){i=h;h=a;a=i}this.helper.css({left:e,top:a,width:d-e,height:h-a});this.selectees.each(function(){var j=b.data(this,"selectable-item");if(!(!j||j.element==f.element[0])){var n=false;if(g.tolerance=="touch")n=!(j.left>d||j.right<e||j.top>h||j.bottom<a);else if(g.tolerance=="fit")n=j.left>e&&j.right<d&&j.top>a&&j.bottom<h;if(n){if(j.selected){j.$element.removeClass("ui-selected");j.selected=false}if(j.unselecting){j.$element.removeClass("ui-unselecting");
113
+ j.unselecting=false}if(!j.selecting){j.$element.addClass("ui-selecting");j.selecting=true;f._trigger("selecting",c,{selecting:j.element})}}else{if(j.selecting)if(c.metaKey&&j.startselected){j.$element.removeClass("ui-selecting");j.selecting=false;j.$element.addClass("ui-selected");j.selected=true}else{j.$element.removeClass("ui-selecting");j.selecting=false;if(j.startselected){j.$element.addClass("ui-unselecting");j.unselecting=true}f._trigger("unselecting",c,{unselecting:j.element})}if(j.selected)if(!c.metaKey&&
114
+ !j.startselected){j.$element.removeClass("ui-selected");j.selected=false;j.$element.addClass("ui-unselecting");j.unselecting=true;f._trigger("unselecting",c,{unselecting:j.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;b(".ui-unselecting",this.element[0]).each(function(){var g=b.data(this,"selectable-item");g.$element.removeClass("ui-unselecting");g.unselecting=false;g.startselected=false;f._trigger("unselected",c,{unselected:g.element})});b(".ui-selecting",this.element[0]).each(function(){var g=
115
+ b.data(this,"selectable-item");g.$element.removeClass("ui-selecting").addClass("ui-selected");g.selecting=false;g.selected=true;g.startselected=true;f._trigger("selected",c,{selected:g.element})});this._trigger("stop",c);this.helper.remove();return false}});b.extend(b.ui.selectable,{version:"1.8.6"})})(jQuery);
116
+ (function(b){b.widget("ui.sortable",b.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
117
+ this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var c=this.items.length-1;c>=0;c--)this.items[c].item.removeData("sortable-item");return this},_setOption:function(c,f){if(c==="disabled"){this.options[c]=f;this.widget()[f?"addClass":"removeClass"]("ui-sortable-disabled")}else b.Widget.prototype._setOption.apply(this,
118
+ arguments)},_mouseCapture:function(c,f){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(c);var g=null,e=this;b(c.target).parents().each(function(){if(b.data(this,"sortable-item")==e){g=b(this);return false}});if(b.data(c.target,"sortable-item")==e)g=b(c.target);if(!g)return false;if(this.options.handle&&!f){var a=false;b(this.options.handle,g).find("*").andSelf().each(function(){if(this==c.target)a=true});if(!a)return false}this.currentItem=
119
+ g;this._removeCurrentsFromItems();return true},_mouseStart:function(c,f,g){f=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(c);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");b.extend(this.offset,
120
+ {click:{left:c.pageX-this.offset.left,top:c.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(c);this.originalPageX=c.pageX;this.originalPageY=c.pageY;f.cursorAt&&this._adjustOffsetFromHelper(f.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();f.containment&&this._setContainment();
121
+ if(f.cursor){if(b("body").css("cursor"))this._storedCursor=b("body").css("cursor");b("body").css("cursor",f.cursor)}if(f.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",f.opacity)}if(f.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",f.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
122
+ c,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!g)for(g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",c,e._uiHash(this));if(b.ui.ddmanager)b.ui.ddmanager.current=this;b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(c);return true},_mouseDrag:function(c){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute");
123
+ if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var f=this.options,g=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-c.pageY<f.scrollSensitivity)this.scrollParent[0].scrollTop=g=this.scrollParent[0].scrollTop+f.scrollSpeed;else if(c.pageY-this.overflowOffset.top<f.scrollSensitivity)this.scrollParent[0].scrollTop=g=this.scrollParent[0].scrollTop-f.scrollSpeed;if(this.overflowOffset.left+
124
+ this.scrollParent[0].offsetWidth-c.pageX<f.scrollSensitivity)this.scrollParent[0].scrollLeft=g=this.scrollParent[0].scrollLeft+f.scrollSpeed;else if(c.pageX-this.overflowOffset.left<f.scrollSensitivity)this.scrollParent[0].scrollLeft=g=this.scrollParent[0].scrollLeft-f.scrollSpeed}else{if(c.pageY-b(document).scrollTop()<f.scrollSensitivity)g=b(document).scrollTop(b(document).scrollTop()-f.scrollSpeed);else if(b(window).height()-(c.pageY-b(document).scrollTop())<f.scrollSensitivity)g=b(document).scrollTop(b(document).scrollTop()+
125
+ f.scrollSpeed);if(c.pageX-b(document).scrollLeft()<f.scrollSensitivity)g=b(document).scrollLeft(b(document).scrollLeft()-f.scrollSpeed);else if(b(window).width()-(c.pageX-b(document).scrollLeft())<f.scrollSensitivity)g=b(document).scrollLeft(b(document).scrollLeft()+f.scrollSpeed)}g!==false&&b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
126
+ "px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(f=this.items.length-1;f>=0;f--){g=this.items[f];var e=g.item[0],a=this._intersectsWithPointer(g);if(a)if(e!=this.currentItem[0]&&this.placeholder[a==1?"next":"prev"]()[0]!=e&&!b.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!b.ui.contains(this.element[0],e):true)){this.direction=a==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(g))this._rearrange(c,
127
+ g);else break;this._trigger("change",c,this._uiHash());break}}this._contactContainers(c);b.ui.ddmanager&&b.ui.ddmanager.drag(this,c);this._trigger("sort",c,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,f){if(c){b.ui.ddmanager&&!this.options.dropBehaviour&&b.ui.ddmanager.drop(this,c);if(this.options.revert){var g=this;f=g.placeholder.offset();g.reverting=true;b(this.helper).animate({left:f.left-this.offset.parent.left-g.margins.left+(this.offsetParent[0]==
128
+ document.body?0:this.offsetParent[0].scrollLeft),top:f.top-this.offset.parent.top-g.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){g._clear(c)})}else this._clear(c,f);return false}},cancel:function(){var c=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var f=this.containers.length-1;f>=0;f--){this.containers[f]._trigger("deactivate",
129
+ null,c._uiHash(this));if(this.containers[f].containerCache.over){this.containers[f]._trigger("out",null,c._uiHash(this));this.containers[f].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();b.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?b(this.domPosition.prev).after(this.currentItem):
130
+ b(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(c){var f=this._getItemsAsjQuery(c&&c.connected),g=[];c=c||{};b(f).each(function(){var e=(b(c.item||this).attr(c.attribute||"id")||"").match(c.expression||/(.+)[-=_](.+)/);if(e)g.push((c.key||e[1]+"[]")+"="+(c.key&&c.expression?e[1]:e[2]))});!g.length&&c.key&&g.push(c.key+"=");return g.join("&")},toArray:function(c){var f=this._getItemsAsjQuery(c&&c.connected),g=[];c=c||{};f.each(function(){g.push(b(c.item||this).attr(c.attribute||
131
+ "id")||"")});return g},_intersectsWith:function(c){var f=this.positionAbs.left,g=f+this.helperProportions.width,e=this.positionAbs.top,a=e+this.helperProportions.height,d=c.left,h=d+c.width,i=c.top,j=i+c.height,n=this.offset.click.top,q=this.offset.click.left;n=e+n>i&&e+n<j&&f+q>d&&f+q<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>c[this.floating?"width":"height"]?n:d<f+
132
+ this.helperProportions.width/2&&g-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&a-this.helperProportions.height/2<j},_intersectsWithPointer:function(c){var f=b.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,c.top,c.height);c=b.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,c.left,c.width);f=f&&c;c=this._getDragVerticalDirection();var g=this._getDragHorizontalDirection();if(!f)return false;return this.floating?g&&g=="right"||c=="down"?2:1:c&&(c=="down"?
133
+ 2:1)},_intersectsWithSides:function(c){var f=b.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,c.top+c.height/2,c.height);c=b.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,c.left+c.width/2,c.width);var g=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&c||e=="left"&&!c:g&&(g=="down"&&f||g=="up"&&!f)},_getDragVerticalDirection:function(){var c=this.positionAbs.top-this.lastPositionAbs.top;return c!=0&&(c>0?"down":"up")},
134
+ _getDragHorizontalDirection:function(){var c=this.positionAbs.left-this.lastPositionAbs.left;return c!=0&&(c>0?"right":"left")},refresh:function(c){this._refreshItems(c);this.refreshPositions();return this},_connectWith:function(){var c=this.options;return c.connectWith.constructor==String?[c.connectWith]:c.connectWith},_getItemsAsjQuery:function(c){var f=[],g=[],e=this._connectWith();if(e&&c)for(c=e.length-1;c>=0;c--)for(var a=b(e[c]),d=a.length-1;d>=0;d--){var h=b.data(a[d],"sortable");if(h&&h!=
135
+ this&&!h.options.disabled)g.push([b.isFunction(h.options.items)?h.options.items.call(h.element):b(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}g.push([b.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):b(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(c=g.length-1;c>=0;c--)g[c][0].each(function(){f.push(this)});return b(f)},_removeCurrentsFromItems:function(){for(var c=
136
+ this.currentItem.find(":data(sortable-item)"),f=0;f<this.items.length;f++)for(var g=0;g<c.length;g++)c[g]==this.items[f].item[0]&&this.items.splice(f,1)},_refreshItems:function(c){this.items=[];this.containers=[this];var f=this.items,g=[[b.isFunction(this.options.items)?this.options.items.call(this.element[0],c,{item:this.currentItem}):b(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var a=e.length-1;a>=0;a--)for(var d=b(e[a]),h=d.length-1;h>=0;h--){var i=b.data(d[h],"sortable");
137
+ if(i&&i!=this&&!i.options.disabled){g.push([b.isFunction(i.options.items)?i.options.items.call(i.element[0],c,{item:this.currentItem}):b(i.options.items,i.element),i]);this.containers.push(i)}}for(a=g.length-1;a>=0;a--){c=g[a][1];e=g[a][0];h=0;for(d=e.length;h<d;h++){i=b(e[h]);i.data("sortable-item",c);f.push({item:i,instance:c,width:0,height:0,left:0,top:0})}}},refreshPositions:function(c){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var f=this.items.length-1;f>=
138
+ 0;f--){var g=this.items[f],e=this.options.toleranceElement?b(this.options.toleranceElement,g.item):g.item;if(!c){g.width=e.outerWidth();g.height=e.outerHeight()}e=e.offset();g.left=e.left;g.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(f=this.containers.length-1;f>=0;f--){e=this.containers[f].element.offset();this.containers[f].containerCache.left=e.left;this.containers[f].containerCache.top=e.top;this.containers[f].containerCache.width=
139
+ this.containers[f].element.outerWidth();this.containers[f].containerCache.height=this.containers[f].element.outerHeight()}return this},_createPlaceholder:function(c){var f=c||this,g=f.options;if(!g.placeholder||g.placeholder.constructor==String){var e=g.placeholder;g.placeholder={element:function(){var a=b(document.createElement(f.currentItem[0].nodeName)).addClass(e||f.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)a.style.visibility="hidden";return a},
140
+ update:function(a,d){if(!(e&&!g.forcePlaceholderSize)){d.height()||d.height(f.currentItem.innerHeight()-parseInt(f.currentItem.css("paddingTop")||0,10)-parseInt(f.currentItem.css("paddingBottom")||0,10));d.width()||d.width(f.currentItem.innerWidth()-parseInt(f.currentItem.css("paddingLeft")||0,10)-parseInt(f.currentItem.css("paddingRight")||0,10))}}}}f.placeholder=b(g.placeholder.element.call(f.element,f.currentItem));f.currentItem.after(f.placeholder);g.placeholder.update(f,f.placeholder)},_contactContainers:function(c){for(var f=
141
+ null,g=null,e=this.containers.length-1;e>=0;e--)if(!b.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(f&&b.ui.contains(this.containers[e].element[0],f.element[0]))){f=this.containers[e];g=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",c,this._uiHash(this));this.containers[e].containerCache.over=0}if(f)if(this.containers.length===1){this.containers[g]._trigger("over",c,this._uiHash(this));
142
+ this.containers[g].containerCache.over=1}else if(this.currentContainer!=this.containers[g]){f=1E4;e=null;for(var a=this.positionAbs[this.containers[g].floating?"left":"top"],d=this.items.length-1;d>=0;d--)if(b.ui.contains(this.containers[g].element[0],this.items[d].item[0])){var h=this.items[d][this.containers[g].floating?"left":"top"];if(Math.abs(h-a)<f){f=Math.abs(h-a);e=this.items[d]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[g];e?this._rearrange(c,e,null,true):this._rearrange(c,
143
+ null,this.containers[g].element,true);this._trigger("change",c,this._uiHash());this.containers[g]._trigger("change",c,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[g]._trigger("over",c,this._uiHash(this));this.containers[g].containerCache.over=1}}},_createHelper:function(c){var f=this.options;c=b.isFunction(f.helper)?b(f.helper.apply(this.element[0],[c,this.currentItem])):f.helper=="clone"?this.currentItem.clone():this.currentItem;c.parents("body").length||
144
+ b(f.appendTo!="parent"?f.appendTo:this.currentItem[0].parentNode)[0].appendChild(c[0]);if(c[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(c[0].style.width==""||f.forceHelperSize)c.width(this.currentItem.width());if(c[0].style.height==""||f.forceHelperSize)c.height(this.currentItem.height());return c},_adjustOffsetFromHelper:function(c){if(typeof c==
145
+ "string")c=c.split(" ");if(b.isArray(c))c={left:+c[0],top:+c[1]||0};if("left"in c)this.offset.click.left=c.left+this.margins.left;if("right"in c)this.offset.click.left=this.helperProportions.width-c.right+this.margins.left;if("top"in c)this.offset.click.top=c.top+this.margins.top;if("bottom"in c)this.offset.click.top=this.helperProportions.height-c.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var c=this.offsetParent.offset();if(this.cssPosition==
146
+ "absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0])){c.left+=this.scrollParent.scrollLeft();c.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)c={top:0,left:0};return{top:c.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:c.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==
147
+ "relative"){var c=this.currentItem.position();return{top:c.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:c.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},
148
+ _setContainment:function(){var c=this.options;if(c.containment=="parent")c.containment=this.helper[0].parentNode;if(c.containment=="document"||c.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,b(c.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b(c.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-
149
+ this.margins.top];if(!/^(document|window|parent)$/.test(c.containment)){var f=b(c.containment)[0];c=b(c.containment).offset();var g=b(f).css("overflow")!="hidden";this.containment=[c.left+(parseInt(b(f).css("borderLeftWidth"),10)||0)+(parseInt(b(f).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(b(f).css("borderTopWidth"),10)||0)+(parseInt(b(f).css("paddingTop"),10)||0)-this.margins.top,c.left+(g?Math.max(f.scrollWidth,f.offsetWidth):f.offsetWidth)-(parseInt(b(f).css("borderLeftWidth"),
150
+ 10)||0)-(parseInt(b(f).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,c.top+(g?Math.max(f.scrollHeight,f.offsetHeight):f.offsetHeight)-(parseInt(b(f).css("borderTopWidth"),10)||0)-(parseInt(b(f).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(c,f){if(!f)f=this.position;c=c=="absolute"?1:-1;var g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?
151
+ this.offsetParent:this.scrollParent,e=/(html|body)/i.test(g[0].tagName);return{top:f.top+this.offset.relative.top*c+this.offset.parent.top*c-(b.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:g.scrollTop())*c),left:f.left+this.offset.relative.left*c+this.offset.parent.left*c-(b.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:g.scrollLeft())*c)}},_generatePosition:function(c){var f=
152
+ this.options,g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(g[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var a=c.pageX,d=c.pageY;if(this.originalPosition){if(this.containment){if(c.pageX-this.offset.click.left<this.containment[0])a=this.containment[0]+
153
+ this.offset.click.left;if(c.pageY-this.offset.click.top<this.containment[1])d=this.containment[1]+this.offset.click.top;if(c.pageX-this.offset.click.left>this.containment[2])a=this.containment[2]+this.offset.click.left;if(c.pageY-this.offset.click.top>this.containment[3])d=this.containment[3]+this.offset.click.top}if(f.grid){d=this.originalPageY+Math.round((d-this.originalPageY)/f.grid[1])*f.grid[1];d=this.containment?!(d-this.offset.click.top<this.containment[1]||d-this.offset.click.top>this.containment[3])?
154
+ d:!(d-this.offset.click.top<this.containment[1])?d-f.grid[1]:d+f.grid[1]:d;a=this.originalPageX+Math.round((a-this.originalPageX)/f.grid[0])*f.grid[0];a=this.containment?!(a-this.offset.click.left<this.containment[0]||a-this.offset.click.left>this.containment[2])?a:!(a-this.offset.click.left<this.containment[0])?a-f.grid[0]:a+f.grid[0]:a}}return{top:d-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(b.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
155
+ e?0:g.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(b.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:g.scrollLeft())}},_rearrange:function(c,f,g,e){g?g[0].appendChild(this.placeholder[0]):f.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?f.item[0]:f.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var a=this,d=this.counter;window.setTimeout(function(){d==
156
+ a.counter&&a.refreshPositions(!e)},0)},_clear:function(c,f){this.reverting=false;var g=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!f&&g.push(function(a){this._trigger("receive",
157
+ a,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!f)g.push(function(a){this._trigger("update",a,this._uiHash())});if(!b.ui.contains(this.element[0],this.currentItem[0])){f||g.push(function(a){this._trigger("remove",a,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(b.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!f){g.push(function(a){return function(d){a._trigger("receive",
158
+ d,this._uiHash(this))}}.call(this,this.containers[e]));g.push(function(a){return function(d){a._trigger("update",d,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){f||g.push(function(a){return function(d){a._trigger("deactivate",d,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){g.push(function(a){return function(d){a._trigger("out",d,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=
159
+ 0}}this._storedCursor&&b("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!f){this._trigger("beforeStop",c,this._uiHash());for(e=0;e<g.length;e++)g[e].call(this,c);this._trigger("stop",c,this._uiHash())}return false}f||this._trigger("beforeStop",c,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
160
+ this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!f){for(e=0;e<g.length;e++)g[e].call(this,c);this._trigger("stop",c,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){b.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(c){var f=c||this;return{helper:f.helper,placeholder:f.placeholder||b([]),position:f.position,originalPosition:f.originalPosition,offset:f.positionAbs,item:f.currentItem,sender:c?c.element:null}}});
161
+ b.extend(b.ui.sortable,{version:"1.8.6"})})(jQuery);
162
+ jQuery.effects||function(b,c){function f(l){var k;if(l&&l.constructor==Array&&l.length==3)return l;if(k=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(l))return[parseInt(k[1],10),parseInt(k[2],10),parseInt(k[3],10)];if(k=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(l))return[parseFloat(k[1])*2.55,parseFloat(k[2])*2.55,parseFloat(k[3])*2.55];if(k=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(l))return[parseInt(k[1],16),
163
+ parseInt(k[2],16),parseInt(k[3],16)];if(k=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(l))return[parseInt(k[1]+k[1],16),parseInt(k[2]+k[2],16),parseInt(k[3]+k[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(l))return j.transparent;return j[b.trim(l).toLowerCase()]}function g(l,k){var m;do{m=b.curCSS(l,k);if(m!=""&&m!="transparent"||b.nodeName(l,"body"))break;k="backgroundColor"}while(l=l.parentNode);return f(m)}function e(){var l=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
164
+ k={},m,o;if(l&&l.length&&l[0]&&l[l[0]])for(var p=l.length;p--;){m=l[p];if(typeof l[m]=="string"){o=m.replace(/\-(\w)/g,function(s,r){return r.toUpperCase()});k[o]=l[m]}}else for(m in l)if(typeof l[m]==="string")k[m]=l[m];return k}function a(l){var k,m;for(k in l){m=l[k];if(m==null||b.isFunction(m)||k in q||/scrollbar/.test(k)||!/color/i.test(k)&&isNaN(parseFloat(m)))delete l[k]}return l}function d(l,k){var m={_:0},o;for(o in k)if(l[o]!=k[o])m[o]=k[o];return m}function h(l,k,m,o){if(typeof l=="object"){o=
165
+ k;m=null;k=l;l=k.effect}if(b.isFunction(k)){o=k;m=null;k={}}if(typeof k=="number"||b.fx.speeds[k]){o=m;m=k;k={}}if(b.isFunction(m)){o=m;m=null}k=k||{};m=m||k.duration;m=b.fx.off?0:typeof m=="number"?m:b.fx.speeds[m]||b.fx.speeds._default;o=o||k.complete;return[l,k,m,o]}function i(l){if(!l||typeof l==="number"||b.fx.speeds[l])return true;if(typeof l==="string"&&!b.effects[l])return true;return false}b.effects={};b.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor",
166
+ "borderColor","color","outlineColor"],function(l,k){b.fx.step[k]=function(m){if(!m.colorInit){m.start=g(m.elem,k);m.end=f(m.end);m.colorInit=true}m.elem.style[k]="rgb("+Math.max(Math.min(parseInt(m.pos*(m.end[0]-m.start[0])+m.start[0],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[1]-m.start[1])+m.start[1],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[2]-m.start[2])+m.start[2],10),255),0)+")"}});var j={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,
167
+ 0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],
168
+ lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},n=["add","remove","toggle"],q={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};b.effects.animateClass=function(l,k,m,o){if(b.isFunction(m)){o=
169
+ m;m=null}return this.each(function(){var p=b(this),s=p.attr("style")||" ",r=a(e.call(this)),u,v=p.attr("className");b.each(n,function(w,y){l[y]&&p[y+"Class"](l[y])});u=a(e.call(this));p.attr("className",v);p.animate(d(r,u),k,m,function(){b.each(n,function(w,y){l[y]&&p[y+"Class"](l[y])});if(typeof p.attr("style")=="object"){p.attr("style").cssText="";p.attr("style").cssText=s}else p.attr("style",s);o&&o.apply(this,arguments)})})};b.fn.extend({_addClass:b.fn.addClass,addClass:function(l,k,m,o){return k?
170
+ b.effects.animateClass.apply(this,[{add:l},k,m,o]):this._addClass(l)},_removeClass:b.fn.removeClass,removeClass:function(l,k,m,o){return k?b.effects.animateClass.apply(this,[{remove:l},k,m,o]):this._removeClass(l)},_toggleClass:b.fn.toggleClass,toggleClass:function(l,k,m,o,p){return typeof k=="boolean"||k===c?m?b.effects.animateClass.apply(this,[k?{add:l}:{remove:l},m,o,p]):this._toggleClass(l,k):b.effects.animateClass.apply(this,[{toggle:l},k,m,o])},switchClass:function(l,k,m,o,p){return b.effects.animateClass.apply(this,
171
+ [{add:k,remove:l},m,o,p])}});b.extend(b.effects,{version:"1.8.6",save:function(l,k){for(var m=0;m<k.length;m++)k[m]!==null&&l.data("ec.storage."+k[m],l[0].style[k[m]])},restore:function(l,k){for(var m=0;m<k.length;m++)k[m]!==null&&l.css(k[m],l.data("ec.storage."+k[m]))},setMode:function(l,k){if(k=="toggle")k=l.is(":hidden")?"show":"hide";return k},getBaseline:function(l,k){var m;switch(l[0]){case "top":m=0;break;case "middle":m=0.5;break;case "bottom":m=1;break;default:m=l[0]/k.height}switch(l[1]){case "left":l=
172
+ 0;break;case "center":l=0.5;break;case "right":l=1;break;default:l=l[1]/k.width}return{x:l,y:m}},createWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent();var k={width:l.outerWidth(true),height:l.outerHeight(true),"float":l.css("float")},m=b("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});l.wrap(m);m=l.parent();if(l.css("position")=="static"){m.css({position:"relative"});l.css({position:"relative"})}else{b.extend(k,
173
+ {position:l.css("position"),zIndex:l.css("z-index")});b.each(["top","left","bottom","right"],function(o,p){k[p]=l.css(p);if(isNaN(parseInt(k[p],10)))k[p]="auto"});l.css({position:"relative",top:0,left:0})}return m.css(k).show()},removeWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent().replaceWith(l);return l},setTransition:function(l,k,m,o){o=o||{};b.each(k,function(p,s){unit=l.cssUnit(s);if(unit[0]>0)o[s]=unit[0]*m+unit[1]});return o}});b.fn.extend({effect:function(l){var k=
174
+ h.apply(this,arguments),m={options:k[1],duration:k[2],callback:k[3]};k=m.options.mode;var o=b.effects[l];if(b.fx.off||!o)return k?this[k](m.duration,m.callback):this.each(function(){m.callback&&m.callback.call(this)});return o.call(this,m)},_show:b.fn.show,show:function(l){if(i(l))return this._show.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="show";return this.effect.apply(this,k)}},_hide:b.fn.hide,hide:function(l){if(i(l))return this._hide.apply(this,arguments);else{var k=
175
+ h.apply(this,arguments);k[1].mode="hide";return this.effect.apply(this,k)}},__toggle:b.fn.toggle,toggle:function(l){if(i(l)||typeof l==="boolean"||b.isFunction(l))return this.__toggle.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="toggle";return this.effect.apply(this,k)}},cssUnit:function(l){var k=this.css(l),m=[];b.each(["em","px","%","pt"],function(o,p){if(k.indexOf(p)>0)m=[parseFloat(k),p]});return m}});b.easing.jswing=b.easing.swing;b.extend(b.easing,{def:"easeOutQuad",swing:function(l,
176
+ k,m,o,p){return b.easing[b.easing.def](l,k,m,o,p)},easeInQuad:function(l,k,m,o,p){return o*(k/=p)*k+m},easeOutQuad:function(l,k,m,o,p){return-o*(k/=p)*(k-2)+m},easeInOutQuad:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k+m;return-o/2*(--k*(k-2)-1)+m},easeInCubic:function(l,k,m,o,p){return o*(k/=p)*k*k+m},easeOutCubic:function(l,k,m,o,p){return o*((k=k/p-1)*k*k+1)+m},easeInOutCubic:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k*k+m;return o/2*((k-=2)*k*k+2)+m},easeInQuart:function(l,k,m,o,p){return o*
177
+ (k/=p)*k*k*k+m},easeOutQuart:function(l,k,m,o,p){return-o*((k=k/p-1)*k*k*k-1)+m},easeInOutQuart:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k*k*k+m;return-o/2*((k-=2)*k*k*k-2)+m},easeInQuint:function(l,k,m,o,p){return o*(k/=p)*k*k*k*k+m},easeOutQuint:function(l,k,m,o,p){return o*((k=k/p-1)*k*k*k*k+1)+m},easeInOutQuint:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k*k*k*k+m;return o/2*((k-=2)*k*k*k*k+2)+m},easeInSine:function(l,k,m,o,p){return-o*Math.cos(k/p*(Math.PI/2))+o+m},easeOutSine:function(l,
178
+ k,m,o,p){return o*Math.sin(k/p*(Math.PI/2))+m},easeInOutSine:function(l,k,m,o,p){return-o/2*(Math.cos(Math.PI*k/p)-1)+m},easeInExpo:function(l,k,m,o,p){return k==0?m:o*Math.pow(2,10*(k/p-1))+m},easeOutExpo:function(l,k,m,o,p){return k==p?m+o:o*(-Math.pow(2,-10*k/p)+1)+m},easeInOutExpo:function(l,k,m,o,p){if(k==0)return m;if(k==p)return m+o;if((k/=p/2)<1)return o/2*Math.pow(2,10*(k-1))+m;return o/2*(-Math.pow(2,-10*--k)+2)+m},easeInCirc:function(l,k,m,o,p){return-o*(Math.sqrt(1-(k/=p)*k)-1)+m},easeOutCirc:function(l,
179
+ k,m,o,p){return o*Math.sqrt(1-(k=k/p-1)*k)+m},easeInOutCirc:function(l,k,m,o,p){if((k/=p/2)<1)return-o/2*(Math.sqrt(1-k*k)-1)+m;return o/2*(Math.sqrt(1-(k-=2)*k)+1)+m},easeInElastic:function(l,k,m,o,p){l=1.70158;var s=0,r=o;if(k==0)return m;if((k/=p)==1)return m+o;s||(s=p*0.3);if(r<Math.abs(o)){r=o;l=s/4}else l=s/(2*Math.PI)*Math.asin(o/r);return-(r*Math.pow(2,10*(k-=1))*Math.sin((k*p-l)*2*Math.PI/s))+m},easeOutElastic:function(l,k,m,o,p){l=1.70158;var s=0,r=o;if(k==0)return m;if((k/=p)==1)return m+
180
+ o;s||(s=p*0.3);if(r<Math.abs(o)){r=o;l=s/4}else l=s/(2*Math.PI)*Math.asin(o/r);return r*Math.pow(2,-10*k)*Math.sin((k*p-l)*2*Math.PI/s)+o+m},easeInOutElastic:function(l,k,m,o,p){l=1.70158;var s=0,r=o;if(k==0)return m;if((k/=p/2)==2)return m+o;s||(s=p*0.3*1.5);if(r<Math.abs(o)){r=o;l=s/4}else l=s/(2*Math.PI)*Math.asin(o/r);if(k<1)return-0.5*r*Math.pow(2,10*(k-=1))*Math.sin((k*p-l)*2*Math.PI/s)+m;return r*Math.pow(2,-10*(k-=1))*Math.sin((k*p-l)*2*Math.PI/s)*0.5+o+m},easeInBack:function(l,k,m,o,p,s){if(s==
181
+ c)s=1.70158;return o*(k/=p)*k*((s+1)*k-s)+m},easeOutBack:function(l,k,m,o,p,s){if(s==c)s=1.70158;return o*((k=k/p-1)*k*((s+1)*k+s)+1)+m},easeInOutBack:function(l,k,m,o,p,s){if(s==c)s=1.70158;if((k/=p/2)<1)return o/2*k*k*(((s*=1.525)+1)*k-s)+m;return o/2*((k-=2)*k*(((s*=1.525)+1)*k+s)+2)+m},easeInBounce:function(l,k,m,o,p){return o-b.easing.easeOutBounce(l,p-k,0,o,p)+m},easeOutBounce:function(l,k,m,o,p){return(k/=p)<1/2.75?o*7.5625*k*k+m:k<2/2.75?o*(7.5625*(k-=1.5/2.75)*k+0.75)+m:k<2.5/2.75?o*(7.5625*
182
+ (k-=2.25/2.75)*k+0.9375)+m:o*(7.5625*(k-=2.625/2.75)*k+0.984375)+m},easeInOutBounce:function(l,k,m,o,p){if(k<p/2)return b.easing.easeInBounce(l,k*2,0,o,p)*0.5+m;return b.easing.easeOutBounce(l,k*2-p,0,o,p)*0.5+o*0.5+m}})}(jQuery);
183
+ (function(b){b.effects.blind=function(c){return this.queue(function(){var f=b(this),g=["position","top","left"],e=b.effects.setMode(f,c.options.mode||"hide"),a=c.options.direction||"vertical";b.effects.save(f,g);f.show();var d=b.effects.createWrapper(f).css({overflow:"hidden"}),h=a=="vertical"?"height":"width";a=a=="vertical"?d.height():d.width();e=="show"&&d.css(h,0);var i={};i[h]=e=="show"?a:0;d.animate(i,c.duration,c.options.easing,function(){e=="hide"&&f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);
184
+ c.callback&&c.callback.apply(f[0],arguments);f.dequeue()})})}})(jQuery);
185
+ (function(b){b.effects.bounce=function(c){return this.queue(function(){var f=b(this),g=["position","top","left"],e=b.effects.setMode(f,c.options.mode||"effect"),a=c.options.direction||"up",d=c.options.distance||20,h=c.options.times||5,i=c.duration||250;/show|hide/.test(e)&&g.push("opacity");b.effects.save(f,g);f.show();b.effects.createWrapper(f);var j=a=="up"||a=="down"?"top":"left";a=a=="up"||a=="left"?"pos":"neg";d=c.options.distance||(j=="top"?f.outerHeight({margin:true})/3:f.outerWidth({margin:true})/
186
+ 3);if(e=="show")f.css("opacity",0).css(j,a=="pos"?-d:d);if(e=="hide")d/=h*2;e!="hide"&&h--;if(e=="show"){var n={opacity:1};n[j]=(a=="pos"?"+=":"-=")+d;f.animate(n,i/2,c.options.easing);d/=2;h--}for(n=0;n<h;n++){var q={},l={};q[j]=(a=="pos"?"-=":"+=")+d;l[j]=(a=="pos"?"+=":"-=")+d;f.animate(q,i/2,c.options.easing).animate(l,i/2,c.options.easing);d=e=="hide"?d*2:d/2}if(e=="hide"){n={opacity:0};n[j]=(a=="pos"?"-=":"+=")+d;f.animate(n,i/2,c.options.easing,function(){f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);
187
+ c.callback&&c.callback.apply(this,arguments)})}else{q={};l={};q[j]=(a=="pos"?"-=":"+=")+d;l[j]=(a=="pos"?"+=":"-=")+d;f.animate(q,i/2,c.options.easing).animate(l,i/2,c.options.easing,function(){b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(this,arguments)})}f.queue("fx",function(){f.dequeue()});f.dequeue()})}})(jQuery);
188
+ (function(b){b.effects.clip=function(c){return this.queue(function(){var f=b(this),g=["position","top","left","height","width"],e=b.effects.setMode(f,c.options.mode||"hide"),a=c.options.direction||"vertical";b.effects.save(f,g);f.show();var d=b.effects.createWrapper(f).css({overflow:"hidden"});d=f[0].tagName=="IMG"?d:f;var h={size:a=="vertical"?"height":"width",position:a=="vertical"?"top":"left"};a=a=="vertical"?d.height():d.width();if(e=="show"){d.css(h.size,0);d.css(h.position,a/2)}var i={};i[h.size]=
189
+ e=="show"?a:0;i[h.position]=e=="show"?0:a/2;d.animate(i,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){e=="hide"&&f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(f[0],arguments);f.dequeue()}})})}})(jQuery);
190
+ (function(b){b.effects.drop=function(c){return this.queue(function(){var f=b(this),g=["position","top","left","opacity"],e=b.effects.setMode(f,c.options.mode||"hide"),a=c.options.direction||"left";b.effects.save(f,g);f.show();b.effects.createWrapper(f);var d=a=="up"||a=="down"?"top":"left";a=a=="up"||a=="left"?"pos":"neg";var h=c.options.distance||(d=="top"?f.outerHeight({margin:true})/2:f.outerWidth({margin:true})/2);if(e=="show")f.css("opacity",0).css(d,a=="pos"?-h:h);var i={opacity:e=="show"?1:
191
+ 0};i[d]=(e=="show"?a=="pos"?"+=":"-=":a=="pos"?"-=":"+=")+h;f.animate(i,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){e=="hide"&&f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery);
192
+ (function(b){b.effects.explode=function(c){return this.queue(function(){var f=c.options.pieces?Math.round(Math.sqrt(c.options.pieces)):3,g=c.options.pieces?Math.round(Math.sqrt(c.options.pieces)):3;c.options.mode=c.options.mode=="toggle"?b(this).is(":visible")?"hide":"show":c.options.mode;var e=b(this).show().css("visibility","hidden"),a=e.offset();a.top-=parseInt(e.css("marginTop"),10)||0;a.left-=parseInt(e.css("marginLeft"),10)||0;for(var d=e.outerWidth(true),h=e.outerHeight(true),i=0;i<f;i++)for(var j=
193
+ 0;j<g;j++)e.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-j*(d/g),top:-i*(h/f)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:d/g,height:h/f,left:a.left+j*(d/g)+(c.options.mode=="show"?(j-Math.floor(g/2))*(d/g):0),top:a.top+i*(h/f)+(c.options.mode=="show"?(i-Math.floor(f/2))*(h/f):0),opacity:c.options.mode=="show"?0:1}).animate({left:a.left+j*(d/g)+(c.options.mode=="show"?0:(j-Math.floor(g/2))*(d/g)),top:a.top+
194
+ i*(h/f)+(c.options.mode=="show"?0:(i-Math.floor(f/2))*(h/f)),opacity:c.options.mode=="show"?1:0},c.duration||500);setTimeout(function(){c.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide();c.callback&&c.callback.apply(e[0]);e.dequeue();b("div.ui-effects-explode").remove()},c.duration||500)})}})(jQuery);
195
+ (function(b){b.effects.fade=function(c){return this.queue(function(){var f=b(this),g=b.effects.setMode(f,c.options.mode||"hide");f.animate({opacity:g},{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery);
196
+ (function(b){b.effects.fold=function(c){return this.queue(function(){var f=b(this),g=["position","top","left"],e=b.effects.setMode(f,c.options.mode||"hide"),a=c.options.size||15,d=!!c.options.horizFirst,h=c.duration?c.duration/2:b.fx.speeds._default/2;b.effects.save(f,g);f.show();var i=b.effects.createWrapper(f).css({overflow:"hidden"}),j=e=="show"!=d,n=j?["width","height"]:["height","width"];j=j?[i.width(),i.height()]:[i.height(),i.width()];var q=/([0-9]+)%/.exec(a);if(q)a=parseInt(q[1],10)/100*
197
+ j[e=="hide"?0:1];if(e=="show")i.css(d?{height:0,width:a}:{height:a,width:0});d={};q={};d[n[0]]=e=="show"?j[0]:a;q[n[1]]=e=="show"?j[1]:0;i.animate(d,h,c.options.easing).animate(q,h,c.options.easing,function(){e=="hide"&&f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(f[0],arguments);f.dequeue()})})}})(jQuery);
198
+ (function(b){b.effects.highlight=function(c){return this.queue(function(){var f=b(this),g=["backgroundImage","backgroundColor","opacity"],e=b.effects.setMode(f,c.options.mode||"show"),a={backgroundColor:f.css("backgroundColor")};if(e=="hide")a.opacity=0;b.effects.save(f,g);f.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(a,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){e=="hide"&&f.hide();b.effects.restore(f,g);e=="show"&&!b.support.opacity&&
199
+ this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery);
200
+ (function(b){b.effects.pulsate=function(c){return this.queue(function(){var f=b(this),g=b.effects.setMode(f,c.options.mode||"show");times=(c.options.times||5)*2-1;duration=c.duration?c.duration/2:b.fx.speeds._default/2;isVisible=f.is(":visible");animateTo=0;if(!isVisible){f.css("opacity",0).show();animateTo=1}if(g=="hide"&&isVisible||g=="show"&&!isVisible)times--;for(g=0;g<times;g++){f.animate({opacity:animateTo},duration,c.options.easing);animateTo=(animateTo+1)%2}f.animate({opacity:animateTo},duration,
201
+ c.options.easing,function(){animateTo==0&&f.hide();c.callback&&c.callback.apply(this,arguments)});f.queue("fx",function(){f.dequeue()}).dequeue()})}})(jQuery);
202
+ (function(b){b.effects.puff=function(c){return this.queue(function(){var f=b(this),g=b.effects.setMode(f,c.options.mode||"hide"),e=parseInt(c.options.percent,10)||150,a=e/100,d={height:f.height(),width:f.width()};b.extend(c.options,{fade:true,mode:g,percent:g=="hide"?e:100,from:g=="hide"?d:{height:d.height*a,width:d.width*a}});f.effect("scale",c.options,c.duration,c.callback);f.dequeue()})};b.effects.scale=function(c){return this.queue(function(){var f=b(this),g=b.extend(true,{},c.options),e=b.effects.setMode(f,
203
+ c.options.mode||"effect"),a=parseInt(c.options.percent,10)||(parseInt(c.options.percent,10)==0?0:e=="hide"?0:100),d=c.options.direction||"both",h=c.options.origin;if(e!="effect"){g.origin=h||["middle","center"];g.restore=true}h={height:f.height(),width:f.width()};f.from=c.options.from||(e=="show"?{height:0,width:0}:h);a={y:d!="horizontal"?a/100:1,x:d!="vertical"?a/100:1};f.to={height:h.height*a.y,width:h.width*a.x};if(c.options.fade){if(e=="show"){f.from.opacity=0;f.to.opacity=1}if(e=="hide"){f.from.opacity=
204
+ 1;f.to.opacity=0}}g.from=f.from;g.to=f.to;g.mode=e;f.effect("size",g,c.duration,c.callback);f.dequeue()})};b.effects.size=function(c){return this.queue(function(){var f=b(this),g=["position","top","left","width","height","overflow","opacity"],e=["position","top","left","overflow","opacity"],a=["width","height","overflow"],d=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],i=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],j=b.effects.setMode(f,
205
+ c.options.mode||"effect"),n=c.options.restore||false,q=c.options.scale||"both",l=c.options.origin,k={height:f.height(),width:f.width()};f.from=c.options.from||k;f.to=c.options.to||k;if(l){l=b.effects.getBaseline(l,k);f.from.top=(k.height-f.from.height)*l.y;f.from.left=(k.width-f.from.width)*l.x;f.to.top=(k.height-f.to.height)*l.y;f.to.left=(k.width-f.to.width)*l.x}var m={from:{y:f.from.height/k.height,x:f.from.width/k.width},to:{y:f.to.height/k.height,x:f.to.width/k.width}};if(q=="box"||q=="both"){if(m.from.y!=
206
+ m.to.y){g=g.concat(h);f.from=b.effects.setTransition(f,h,m.from.y,f.from);f.to=b.effects.setTransition(f,h,m.to.y,f.to)}if(m.from.x!=m.to.x){g=g.concat(i);f.from=b.effects.setTransition(f,i,m.from.x,f.from);f.to=b.effects.setTransition(f,i,m.to.x,f.to)}}if(q=="content"||q=="both")if(m.from.y!=m.to.y){g=g.concat(d);f.from=b.effects.setTransition(f,d,m.from.y,f.from);f.to=b.effects.setTransition(f,d,m.to.y,f.to)}b.effects.save(f,n?g:e);f.show();b.effects.createWrapper(f);f.css("overflow","hidden").css(f.from);
207
+ if(q=="content"||q=="both"){h=h.concat(["marginTop","marginBottom"]).concat(d);i=i.concat(["marginLeft","marginRight"]);a=g.concat(h).concat(i);f.find("*[width]").each(function(){child=b(this);n&&b.effects.save(child,a);var o={height:child.height(),width:child.width()};child.from={height:o.height*m.from.y,width:o.width*m.from.x};child.to={height:o.height*m.to.y,width:o.width*m.to.x};if(m.from.y!=m.to.y){child.from=b.effects.setTransition(child,h,m.from.y,child.from);child.to=b.effects.setTransition(child,
208
+ h,m.to.y,child.to)}if(m.from.x!=m.to.x){child.from=b.effects.setTransition(child,i,m.from.x,child.from);child.to=b.effects.setTransition(child,i,m.to.x,child.to)}child.css(child.from);child.animate(child.to,c.duration,c.options.easing,function(){n&&b.effects.restore(child,a)})})}f.animate(f.to,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){f.to.opacity===0&&f.css("opacity",f.from.opacity);j=="hide"&&f.hide();b.effects.restore(f,n?g:e);b.effects.removeWrapper(f);c.callback&&
209
+ c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery);
210
+ (function(b){b.effects.shake=function(c){return this.queue(function(){var f=b(this),g=["position","top","left"];b.effects.setMode(f,c.options.mode||"effect");var e=c.options.direction||"left",a=c.options.distance||20,d=c.options.times||3,h=c.duration||c.options.duration||140;b.effects.save(f,g);f.show();b.effects.createWrapper(f);var i=e=="up"||e=="down"?"top":"left",j=e=="up"||e=="left"?"pos":"neg";e={};var n={},q={};e[i]=(j=="pos"?"-=":"+=")+a;n[i]=(j=="pos"?"+=":"-=")+a*2;q[i]=(j=="pos"?"-=":"+=")+
211
+ a*2;f.animate(e,h,c.options.easing);for(a=1;a<d;a++)f.animate(n,h,c.options.easing).animate(q,h,c.options.easing);f.animate(n,h,c.options.easing).animate(e,h/2,c.options.easing,function(){b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(this,arguments)});f.queue("fx",function(){f.dequeue()});f.dequeue()})}})(jQuery);
212
+ (function(b){b.effects.slide=function(c){return this.queue(function(){var f=b(this),g=["position","top","left"],e=b.effects.setMode(f,c.options.mode||"show"),a=c.options.direction||"left";b.effects.save(f,g);f.show();b.effects.createWrapper(f).css({overflow:"hidden"});var d=a=="up"||a=="down"?"top":"left";a=a=="up"||a=="left"?"pos":"neg";var h=c.options.distance||(d=="top"?f.outerHeight({margin:true}):f.outerWidth({margin:true}));if(e=="show")f.css(d,a=="pos"?-h:h);var i={};i[d]=(e=="show"?a=="pos"?
213
+ "+=":"-=":a=="pos"?"-=":"+=")+h;f.animate(i,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){e=="hide"&&f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery);
214
+ (function(b){b.effects.transfer=function(c){return this.queue(function(){var f=b(this),g=b(c.options.to),e=g.offset();g={top:e.top,left:e.left,height:g.innerHeight(),width:g.innerWidth()};e=f.offset();var a=b('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(c.options.className).css({top:e.top,left:e.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,c.duration,c.options.easing,function(){a.remove();c.callback&&c.callback.apply(f[0],arguments);
215
+ f.dequeue()})})}})(jQuery);
216
+ (function(b){b.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var c=this,f=c.options;c.running=0;c.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");c.headers=
217
+ c.element.find(f.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){f.disabled||b(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){f.disabled||b(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){f.disabled||b(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){f.disabled||b(this).removeClass("ui-state-focus")});c.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
218
+ if(f.navigation){var g=c.element.find("a").filter(f.navigationFilter).eq(0);if(g.length){var e=g.closest(".ui-accordion-header");c.active=e.length?e:g.closest(".ui-accordion-content").prev()}}c.active=c._findActive(c.active||f.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");c.active.next().addClass("ui-accordion-content-active");c._createIcons();c.resize();c.element.attr("role","tablist");c.headers.attr("role","tab").bind("keydown.accordion",
219
+ function(a){return c._keydown(a)}).next().attr("role","tabpanel");c.headers.not(c.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();c.active.length?c.active.attr({"aria-expanded":"true",tabIndex:0}):c.headers.eq(0).attr("tabIndex",0);b.browser.safari||c.headers.find("a").attr("tabIndex",-1);f.event&&c.headers.bind(f.event.split(" ").join(".accordion ")+".accordion",function(a){c._clickHandler.call(c,a,this);a.preventDefault()})},_createIcons:function(){var c=this.options;if(c.icons){b("<span></span>").addClass("ui-icon "+
220
+ c.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(c.icons.header).toggleClass(c.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
221
+ this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var f=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(c.autoHeight||c.fillHeight)f.css("height","");return b.Widget.prototype.destroy.call(this)},_setOption:function(c,f){b.Widget.prototype._setOption.apply(this,arguments);c=="active"&&this.activate(f);if(c=="icons"){this._destroyIcons();
222
+ f&&this._createIcons()}if(c=="disabled")this.headers.add(this.headers.next())[f?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(c){if(!(this.options.disabled||c.altKey||c.ctrlKey)){var f=b.ui.keyCode,g=this.headers.length,e=this.headers.index(c.target),a=false;switch(c.keyCode){case f.RIGHT:case f.DOWN:a=this.headers[(e+1)%g];break;case f.LEFT:case f.UP:a=this.headers[(e-1+g)%g];break;case f.SPACE:case f.ENTER:this._clickHandler({target:c.target},c.target);
223
+ c.preventDefault()}if(a){b(c.target).attr("tabIndex",-1);b(a).attr("tabIndex",0);a.focus();return false}return true}},resize:function(){var c=this.options,f;if(c.fillSpace){if(b.browser.msie){var g=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}f=this.element.parent().height();b.browser.msie&&this.element.parent().css("overflow",g);this.headers.each(function(){f-=b(this).outerHeight(true)});this.headers.next().each(function(){b(this).height(Math.max(0,f-b(this).innerHeight()+
224
+ b(this).height()))}).css("overflow","auto")}else if(c.autoHeight){f=0;this.headers.next().each(function(){f=Math.max(f,b(this).height("").height())}).height(f)}return this},activate:function(c){this.options.active=c;c=this._findActive(c)[0];this._clickHandler({target:c},c);return this},_findActive:function(c){return c?typeof c==="number"?this.headers.filter(":eq("+c+")"):this.headers.not(this.headers.not(c)):c===false?b([]):this.headers.filter(":eq(0)")},_clickHandler:function(c,f){var g=this.options;
225
+ if(!g.disabled)if(c.target){c=b(c.currentTarget||f);f=c[0]===this.active[0];g.active=g.collapsible&&f?false:this.headers.index(c);if(!(this.running||!g.collapsible&&f)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);if(!f){c.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(g.icons.header).addClass(g.icons.headerSelected);
226
+ c.next().addClass("ui-accordion-content-active")}d=c.next();e=this.active.next();a={options:g,newHeader:f&&g.collapsible?b([]):c,oldHeader:this.active,newContent:f&&g.collapsible?b([]):d,oldContent:e};g=this.headers.index(this.active[0])>this.headers.index(c[0]);this.active=f?b([]):c;this._toggle(d,e,a,f,g)}}else if(g.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);
227
+ this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),a={options:g,newHeader:b([]),oldHeader:g.active,newContent:b([]),oldContent:e},d=this.active=b([]);this._toggle(d,e,a)}},_toggle:function(c,f,g,e,a){var d=this,h=d.options;d.toShow=c;d.toHide=f;d.data=g;var i=function(){if(d)return d._completed.apply(d,arguments)};d._trigger("changestart",null,d.data);d.running=f.size()===0?c.size():f.size();if(h.animated){g={};g=h.collapsible&&e?{toShow:b([]),toHide:f,complete:i,
228
+ down:a,autoHeight:h.autoHeight||h.fillSpace}:{toShow:c,toHide:f,complete:i,down:a,autoHeight:h.autoHeight||h.fillSpace};if(!h.proxied)h.proxied=h.animated;if(!h.proxiedDuration)h.proxiedDuration=h.duration;h.animated=b.isFunction(h.proxied)?h.proxied(g):h.proxied;h.duration=b.isFunction(h.proxiedDuration)?h.proxiedDuration(g):h.proxiedDuration;e=b.ui.accordion.animations;var j=h.duration,n=h.animated;if(n&&!e[n]&&!b.easing[n])n="slide";e[n]||(e[n]=function(q){this.slide(q,{easing:n,duration:j||700})});
229
+ e[n](g)}else{if(h.collapsible&&e)c.toggle();else{f.hide();c.show()}i(true)}f.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();c.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(c){this.running=c?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});b.extend(b.ui.accordion,{version:"1.8.6",animations:{slide:function(c,
230
+ f){c=b.extend({easing:"swing",duration:300},c,f);if(c.toHide.size())if(c.toShow.size()){var g=c.toShow.css("overflow"),e=0,a={},d={},h;f=c.toShow;h=f[0].style.width;f.width(parseInt(f.parent().width(),10)-parseInt(f.css("paddingLeft"),10)-parseInt(f.css("paddingRight"),10)-(parseInt(f.css("borderLeftWidth"),10)||0)-(parseInt(f.css("borderRightWidth"),10)||0));b.each(["height","paddingTop","paddingBottom"],function(i,j){d[j]="hide";i=(""+b.css(c.toShow[0],j)).match(/^([\d+-.]+)(.*)$/);a[j]={value:i[1],
231
+ unit:i[2]||"px"}});c.toShow.css({height:0,overflow:"hidden"}).show();c.toHide.filter(":hidden").each(c.complete).end().filter(":visible").animate(d,{step:function(i,j){if(j.prop=="height")e=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);c.toShow[0].style[j.prop]=e*a[j.prop].value+a[j.prop].unit},duration:c.duration,easing:c.easing,complete:function(){c.autoHeight||c.toShow.css("height","");c.toShow.css({width:h,overflow:g});c.complete()}})}else c.toHide.animate({height:"hide",paddingTop:"hide",
232
+ paddingBottom:"hide"},c);else c.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},c)},bounceslide:function(c){this.slide(c,{easing:c.down?"easeOutBounce":"swing",duration:c.down?1E3:200})}}})})(jQuery);
233
+ (function(b){b.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var c=this,f=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(e){if(!(c.options.disabled||c.element.attr("readonly"))){g=false;var a=b.ui.keyCode;switch(e.keyCode){case a.PAGE_UP:c._move("previousPage",
234
+ e);break;case a.PAGE_DOWN:c._move("nextPage",e);break;case a.UP:c._move("previous",e);e.preventDefault();break;case a.DOWN:c._move("next",e);e.preventDefault();break;case a.ENTER:case a.NUMPAD_ENTER:if(c.menu.active){g=true;e.preventDefault()}case a.TAB:if(!c.menu.active)return;c.menu.select(e);break;case a.ESCAPE:c.element.val(c.term);c.close(e);break;default:clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!=c.element.val()){c.selectedItem=null;c.search(null,e)}},c.options.delay);
235
+ break}}}).bind("keypress.autocomplete",function(e){if(g){g=false;e.preventDefault()}}).bind("focus.autocomplete",function(){if(!c.options.disabled){c.selectedItem=null;c.previous=c.element.val()}}).bind("blur.autocomplete",function(e){if(!c.options.disabled){clearTimeout(c.searching);c.closing=setTimeout(function(){c.close(e);c._change(e)},150)}});this._initSource();this.response=function(){return c._response.apply(c,arguments)};this.menu=b("<ul></ul>").addClass("ui-autocomplete").appendTo(b(this.options.appendTo||
236
+ "body",f)[0]).mousedown(function(e){var a=c.menu.element[0];b(e.target).closest(".ui-menu-item").length||setTimeout(function(){b(document).one("mousedown",function(d){d.target!==c.element[0]&&d.target!==a&&!b.ui.contains(a,d.target)&&c.close()})},1);setTimeout(function(){clearTimeout(c.closing)},13)}).menu({focus:function(e,a){a=a.item.data("item.autocomplete");false!==c._trigger("focus",e,{item:a})&&/^key/.test(e.originalEvent.type)&&c.element.val(a.value)},selected:function(e,a){a=a.item.data("item.autocomplete");
237
+ var d=c.previous;if(c.element[0]!==f.activeElement){c.element.focus();c.previous=d;setTimeout(function(){c.previous=d},1)}false!==c._trigger("select",e,{item:a})&&c.element.val(a.value);c.term=c.element.val();c.close(e);c.selectedItem=a},blur:function(){c.menu.element.is(":visible")&&c.element.val()!==c.term&&c.element.val(c.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");b.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
238
+ this.menu.element.remove();b.Widget.prototype.destroy.call(this)},_setOption:function(c,f){b.Widget.prototype._setOption.apply(this,arguments);c==="source"&&this._initSource();if(c==="appendTo")this.menu.element.appendTo(b(f||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var c=this,f,g;if(b.isArray(this.options.source)){f=this.options.source;this.source=function(e,a){a(b.ui.autocomplete.filter(f,e.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=
239
+ function(e,a){c.xhr&&c.xhr.abort();c.xhr=b.getJSON(g,e,function(d,h,i){i===c.xhr&&a(d);c.xhr=null})}}else this.source=this.options.source},search:function(c,f){c=c!=null?c:this.element.val();this.term=this.element.val();if(c.length<this.options.minLength)return this.close(f);clearTimeout(this.closing);if(this._trigger("search",f)!==false)return this._search(c)},_search:function(c){this.element.addClass("ui-autocomplete-loading");this.source({term:c},this.response)},_response:function(c){if(c&&c.length){c=
240
+ this._normalize(c);this._suggest(c);this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(c){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",c);this.menu.element.hide();this.menu.deactivate()}},_change:function(c){this.previous!==this.element.val()&&this._trigger("change",c,{item:this.selectedItem})},_normalize:function(c){if(c.length&&c[0].label&&c[0].value)return c;return b.map(c,function(f){if(typeof f===
241
+ "string")return{label:f,value:f};return b.extend({label:f.label||f.value,value:f.value||f.label},f)})},_suggest:function(c){this._renderMenu(this.menu.element.empty().zIndex(this.element.zIndex()+1),c);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position(b.extend({of:this.element},this.options.position));this._resizeMenu()},_resizeMenu:function(){var c=this.menu.element;c.outerWidth(Math.max(c.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(c,f){var g=
242
+ this;b.each(f,function(e,a){g._renderItem(c,a)})},_renderItem:function(c,f){return b("<li></li>").data("item.autocomplete",f).append(b("<a></a>").text(f.label)).appendTo(c)},_move:function(c,f){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(c)||this.menu.last()&&/^next/.test(c)){this.element.val(this.term);this.menu.deactivate()}else this.menu[c](f);else this.search(null,f)},widget:function(){return this.menu.element}});b.extend(b.ui.autocomplete,{escapeRegex:function(c){return c.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
243
+ "\\$&")},filter:function(c,f){var g=new RegExp(b.ui.autocomplete.escapeRegex(f),"i");return b.grep(c,function(e){return g.test(e.label||e.value||e)})}})})(jQuery);
244
+ (function(b){b.widget("ui.menu",{_create:function(){var c=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(f){if(b(f.target).closest(".ui-menu-item a").length){f.preventDefault();c.select(f)}});this.refresh()},refresh:function(){var c=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
245
+ -1).mouseenter(function(f){c.activate(f,b(this).parent())}).mouseleave(function(){c.deactivate()})},activate:function(c,f){this.deactivate();if(this.hasScroll()){var g=f.offset().top-this.element.offset().top,e=this.element.attr("scrollTop"),a=this.element.height();if(g<0)this.element.attr("scrollTop",e+g);else g>=a&&this.element.attr("scrollTop",e+g-a+f.height())}this.active=f.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",c,{item:f})},
246
+ deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(c){this.move("next",".ui-menu-item:first",c)},previous:function(c){this.move("prev",".ui-menu-item:last",c)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(c,f,g){if(this.active){c=this.active[c+"All"](".ui-menu-item").eq(0);
247
+ c.length?this.activate(g,c):this.activate(g,this.element.children(f))}else this.activate(g,this.element.children(f))},nextPage:function(c){if(this.hasScroll())if(!this.active||this.last())this.activate(c,this.element.children(".ui-menu-item:first"));else{var f=this.active.offset().top,g=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var a=b(this).offset().top-f-g+b(this).height();return a<10&&a>-10});e.length||(e=this.element.children(".ui-menu-item:last"));this.activate(c,
248
+ e)}else this.activate(c,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(c){if(this.hasScroll())if(!this.active||this.first())this.activate(c,this.element.children(".ui-menu-item:last"));else{var f=this.active.offset().top,g=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var e=b(this).offset().top-f+g-b(this).height();return e<10&&e>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
249
+ this.activate(c,result)}else this.activate(c,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(c){this._trigger("selected",c,{item:this.active})}})})(jQuery);
250
+ (function(b){var c,f=function(e){b(":ui-button",e.target.form).each(function(){var a=b(this).data("button");setTimeout(function(){a.refresh()},1)})},g=function(e){var a=e.name,d=e.form,h=b([]);if(a)h=d?b(d).find("[name='"+a+"']"):b("[name='"+a+"']",e.ownerDocument).filter(function(){return!this.form});return h};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
251
+ f);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var e=this,a=this.options,d=this.type==="checkbox"||this.type==="radio",h="ui-state-hover"+(!d?" ui-state-active":"");if(a.label===null)a.label=this.buttonElement.html();if(this.element.is(":disabled"))a.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
252
+ function(){if(!a.disabled){b(this).addClass("ui-state-hover");this===c&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){a.disabled||b(this).removeClass(h)}).bind("focus.button",function(){b(this).addClass("ui-state-focus")}).bind("blur.button",function(){b(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){e.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(a.disabled)return false;b(this).toggleClass("ui-state-active");
253
+ e.buttonElement.attr("aria-pressed",e.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(a.disabled)return false;b(this).addClass("ui-state-active");e.buttonElement.attr("aria-pressed",true);var i=e.element[0];g(i).not(i).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(a.disabled)return false;b(this).addClass("ui-state-active");
254
+ c=this;b(document).one("mouseup",function(){c=null})}).bind("mouseup.button",function(){if(a.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(i){if(a.disabled)return false;if(i.keyCode==b.ui.keyCode.SPACE||i.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(i){i.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",
255
+ a.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var e=this.element.is(":checked");e&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",e)}else this.buttonElement=
256
+ this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
257
+ this.buttonElement.removeAttr("title");b.Widget.prototype.destroy.call(this)},_setOption:function(e,a){b.Widget.prototype._setOption.apply(this,arguments);if(e==="disabled")a?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var e=this.element.is(":disabled");e!==this.options.disabled&&this._setOption("disabled",e);if(this.type==="radio")g(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
258
+ true):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var e=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
259
+ a=b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(e.empty()).text(),d=this.options.icons,h=d.primary&&d.secondary;if(d.primary||d.secondary){e.addClass("ui-button-text-icon"+(h?"s":d.primary?"-primary":"-secondary"));d.primary&&e.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&e.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){e.addClass(h?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
260
+ this.hasTitle||e.attr("title",a)}}else e.addClass("ui-button-text-only")}}});b.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,a){e==="disabled"&&this.buttons.button("option",e,a);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":visible").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end().end()},
261
+ destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");b.Widget.prototype.destroy.call(this)}})})(jQuery);
262
+ (function(b,c){function f(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
263
+ "ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
264
+ "Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
265
+ minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};b.extend(this._defaults,this.regional[""]);this.dpDiv=b('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}function g(a,d){b.extend(a,
266
+ d);for(var h in d)if(d[h]==null||d[h]==c)a[h]=d[h];return a}b.extend(b.ui,{datepicker:{version:"1.8.6"}});var e=(new Date).getTime();b.extend(f.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){g(this._defaults,a||{});return this},_attachDatepicker:function(a,d){var h=null;for(var i in this._defaults){var j=a.getAttribute("date:"+i);if(j){h=h||{};try{h[i]=eval(j)}catch(n){h[i]=
267
+ j}}}i=a.nodeName.toLowerCase();j=i=="div"||i=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var q=this._newInst(b(a),j);q.settings=b.extend({},d||{},h||{});if(i=="input")this._connectDatepicker(a,q);else j&&this._inlineDatepicker(a,q)},_newInst:function(a,d){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:d,dpDiv:!d?this.dpDiv:b('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
268
+ _connectDatepicker:function(a,d){var h=b(a);d.append=b([]);d.trigger=b([]);if(!h.hasClass(this.markerClassName)){this._attachments(h,d);h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(i,j,n){d.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(d,j)});this._autoSize(d);b.data(a,"datepicker",d)}},_attachments:function(a,d){var h=this._get(d,"appendText"),i=this._get(d,"isRTL");d.append&&
269
+ d.append.remove();if(h){d.append=b('<span class="'+this._appendClass+'">'+h+"</span>");a[i?"before":"after"](d.append)}a.unbind("focus",this._showDatepicker);d.trigger&&d.trigger.remove();h=this._get(d,"showOn");if(h=="focus"||h=="both")a.focus(this._showDatepicker);if(h=="button"||h=="both"){h=this._get(d,"buttonText");var j=this._get(d,"buttonImage");d.trigger=b(this._get(d,"buttonImageOnly")?b("<img/>").addClass(this._triggerClass).attr({src:j,alt:h,title:h}):b('<button type="button"></button>').addClass(this._triggerClass).html(j==
270
+ ""?h:b("<img/>").attr({src:j,alt:h,title:h})));a[i?"before":"after"](d.trigger);d.trigger.click(function(){b.datepicker._datepickerShowing&&b.datepicker._lastInput==a[0]?b.datepicker._hideDatepicker():b.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var d=new Date(2009,11,20),h=this._get(a,"dateFormat");if(h.match(/[DM]/)){var i=function(j){for(var n=0,q=0,l=0;l<j.length;l++)if(j[l].length>n){n=j[l].length;q=l}return q};d.setMonth(i(this._get(a,
271
+ h.match(/MM/)?"monthNames":"monthNamesShort")));d.setDate(i(this._get(a,h.match(/DD/)?"dayNames":"dayNamesShort"))+20-d.getDay())}a.input.attr("size",this._formatDate(a,d).length)}},_inlineDatepicker:function(a,d){var h=b(a);if(!h.hasClass(this.markerClassName)){h.addClass(this.markerClassName).append(d.dpDiv).bind("setData.datepicker",function(i,j,n){d.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(d,j)});b.data(a,"datepicker",d);this._setDate(d,this._getDefaultDate(d),
272
+ true);this._updateDatepicker(d);this._updateAlternate(d)}},_dialogDatepicker:function(a,d,h,i,j){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=b('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);b("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};b.data(this._dialogInput[0],"datepicker",a)}g(a.settings,i||{});d=d&&d.constructor==
273
+ Date?this._formatDate(a,d):d;this._dialogInput.val(d);this._pos=j?j.length?j:[j.pageX,j.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=h;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);
274
+ b.blockUI&&b.blockUI(this.dpDiv);b.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var d=b(a),h=b.data(a,"datepicker");if(d.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();b.removeData(a,"datepicker");if(i=="input"){h.append.remove();h.trigger.remove();d.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(i=="div"||i=="span")d.removeClass(this.markerClassName).empty()}},
275
+ _enableDatepicker:function(a){var d=b(a),h=b.data(a,"datepicker");if(d.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=false;h.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(i=="div"||i=="span")d.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs,function(j){return j==a?null:j})}},_disableDatepicker:function(a){var d=
276
+ b(a),h=b.data(a,"datepicker");if(d.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=true;h.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(i=="div"||i=="span")d.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs,function(j){return j==a?null:j});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;
277
+ for(var d=0;d<this._disabledInputs.length;d++)if(this._disabledInputs[d]==a)return true;return false},_getInst:function(a){try{return b.data(a,"datepicker")}catch(d){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,d,h){var i=this._getInst(a);if(arguments.length==2&&typeof d=="string")return d=="defaults"?b.extend({},b.datepicker._defaults):i?d=="all"?b.extend({},i.settings):this._get(i,d):null;var j=d||{};if(typeof d=="string"){j={};j[d]=h}if(i){this._curInst==i&&
278
+ this._hideDatepicker();var n=this._getDateDatepicker(a,true);g(i.settings,j);this._attachments(b(a),i);this._autoSize(i);this._setDateDatepicker(a,n);this._updateDatepicker(i)}},_changeDatepicker:function(a,d,h){this._optionDatepicker(a,d,h)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,d){if(a=this._getInst(a)){this._setDate(a,d);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,d){(a=this._getInst(a))&&
279
+ !a.inline&&this._setDateFromField(a,d);return a?this._getDate(a):null},_doKeyDown:function(a){var d=b.datepicker._getInst(a.target),h=true,i=d.dpDiv.is(".ui-datepicker-rtl");d._keyEvent=true;if(b.datepicker._datepickerShowing)switch(a.keyCode){case 9:b.datepicker._hideDatepicker();h=false;break;case 13:h=b("td."+b.datepicker._dayOverClass,d.dpDiv).add(b("td."+b.datepicker._currentClass,d.dpDiv));h[0]?b.datepicker._selectDay(a.target,d.selectedMonth,d.selectedYear,h[0]):b.datepicker._hideDatepicker();
280
+ return false;case 27:b.datepicker._hideDatepicker();break;case 33:b.datepicker._adjustDate(a.target,a.ctrlKey?-b.datepicker._get(d,"stepBigMonths"):-b.datepicker._get(d,"stepMonths"),"M");break;case 34:b.datepicker._adjustDate(a.target,a.ctrlKey?+b.datepicker._get(d,"stepBigMonths"):+b.datepicker._get(d,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)b.datepicker._clearDate(a.target);h=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)b.datepicker._gotoToday(a.target);h=a.ctrlKey||
281
+ a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)b.datepicker._adjustDate(a.target,i?+1:-1,"D");h=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)b.datepicker._adjustDate(a.target,a.ctrlKey?-b.datepicker._get(d,"stepBigMonths"):-b.datepicker._get(d,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)b.datepicker._adjustDate(a.target,-7,"D");h=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)b.datepicker._adjustDate(a.target,i?-1:+1,"D");h=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)b.datepicker._adjustDate(a.target,
282
+ a.ctrlKey?+b.datepicker._get(d,"stepBigMonths"):+b.datepicker._get(d,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)b.datepicker._adjustDate(a.target,+7,"D");h=a.ctrlKey||a.metaKey;break;default:h=false}else if(a.keyCode==36&&a.ctrlKey)b.datepicker._showDatepicker(this);else h=false;if(h){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var d=b.datepicker._getInst(a.target);if(b.datepicker._get(d,"constrainInput")){d=b.datepicker._possibleChars(b.datepicker._get(d,"dateFormat"));
283
+ var h=String.fromCharCode(a.charCode==c?a.keyCode:a.charCode);return a.ctrlKey||h<" "||!d||d.indexOf(h)>-1}},_doKeyUp:function(a){a=b.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(b.datepicker.parseDate(b.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,b.datepicker._getFormatConfig(a))){b.datepicker._setDateFromField(a);b.datepicker._updateAlternate(a);b.datepicker._updateDatepicker(a)}}catch(d){b.datepicker.log(d)}return true},_showDatepicker:function(a){a=a.target||
284
+ a;if(a.nodeName.toLowerCase()!="input")a=b("input",a.parentNode)[0];if(!(b.datepicker._isDisabledDatepicker(a)||b.datepicker._lastInput==a)){var d=b.datepicker._getInst(a);b.datepicker._curInst&&b.datepicker._curInst!=d&&b.datepicker._curInst.dpDiv.stop(true,true);var h=b.datepicker._get(d,"beforeShow");g(d.settings,h?h.apply(a,[a,d]):{});d.lastVal=null;b.datepicker._lastInput=a;b.datepicker._setDateFromField(d);if(b.datepicker._inDialog)a.value="";if(!b.datepicker._pos){b.datepicker._pos=b.datepicker._findPos(a);
285
+ b.datepicker._pos[1]+=a.offsetHeight}var i=false;b(a).parents().each(function(){i|=b(this).css("position")=="fixed";return!i});if(i&&b.browser.opera){b.datepicker._pos[0]-=document.documentElement.scrollLeft;b.datepicker._pos[1]-=document.documentElement.scrollTop}h={left:b.datepicker._pos[0],top:b.datepicker._pos[1]};b.datepicker._pos=null;d.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});b.datepicker._updateDatepicker(d);h=b.datepicker._checkOffset(d,h,i);d.dpDiv.css({position:b.datepicker._inDialog&&
286
+ b.blockUI?"static":i?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"});if(!d.inline){h=b.datepicker._get(d,"showAnim");var j=b.datepicker._get(d,"duration"),n=function(){b.datepicker._datepickerShowing=true;var q=b.datepicker._getBorders(d.dpDiv);d.dpDiv.find("iframe.ui-datepicker-cover").css({left:-q[0],top:-q[1],width:d.dpDiv.outerWidth(),height:d.dpDiv.outerHeight()})};d.dpDiv.zIndex(b(a).zIndex()+1);b.effects&&b.effects[h]?d.dpDiv.show(h,b.datepicker._get(d,"showOptions"),j,
287
+ n):d.dpDiv[h||"show"](h?j:null,n);if(!h||!j)n();d.input.is(":visible")&&!d.input.is(":disabled")&&d.input.focus();b.datepicker._curInst=d}}},_updateDatepicker:function(a){var d=this,h=b.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({left:-h[0],top:-h[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){b(this).removeClass("ui-state-hover");
288
+ this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!d._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).addClass("ui-datepicker-prev-hover");
289
+ this.className.indexOf("ui-datepicker-next")!=-1&&b(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();h=this._getNumberOfMonths(a);var i=h[1];i>1?a.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",17*i+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");
290
+ a==b.datepicker._curInst&&b.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus()},_getBorders:function(a){var d=function(h){return{thin:1,medium:2,thick:3}[h]||h};return[parseFloat(d(a.css("border-left-width"))),parseFloat(d(a.css("border-top-width")))]},_checkOffset:function(a,d,h){var i=a.dpDiv.outerWidth(),j=a.dpDiv.outerHeight(),n=a.input?a.input.outerWidth():0,q=a.input?a.input.outerHeight():0,l=document.documentElement.clientWidth+b(document).scrollLeft(),
291
+ k=document.documentElement.clientHeight+b(document).scrollTop();d.left-=this._get(a,"isRTL")?i-n:0;d.left-=h&&d.left==a.input.offset().left?b(document).scrollLeft():0;d.top-=h&&d.top==a.input.offset().top+q?b(document).scrollTop():0;d.left-=Math.min(d.left,d.left+i>l&&l>i?Math.abs(d.left+i-l):0);d.top-=Math.min(d.top,d.top+j>k&&k>j?Math.abs(j+q):0);return d},_findPos:function(a){for(var d=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[d?"previousSibling":"nextSibling"];
292
+ a=b(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var d=this._curInst;if(!(!d||a&&d!=b.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(d,"showAnim");var h=this._get(d,"duration"),i=function(){b.datepicker._tidyDialog(d);this._curInst=null};b.effects&&b.effects[a]?d.dpDiv.hide(a,b.datepicker._get(d,"showOptions"),h,i):d.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?h:null,i);a||i();if(a=this._get(d,"onClose"))a.apply(d.input?d.input[0]:null,[d.input?d.input.val():
293
+ "",d]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(b.blockUI){b.unblockUI();b("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(b.datepicker._curInst){a=b(a.target);a[0].id!=b.datepicker._mainDivId&&a.parents("#"+b.datepicker._mainDivId).length==0&&!a.hasClass(b.datepicker.markerClassName)&&
294
+ !a.hasClass(b.datepicker._triggerClass)&&b.datepicker._datepickerShowing&&!(b.datepicker._inDialog&&b.blockUI)&&b.datepicker._hideDatepicker()}},_adjustDate:function(a,d,h){a=b(a);var i=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(i,d+(h=="M"?this._get(i,"showCurrentAtPos"):0),h);this._updateDatepicker(i)}},_gotoToday:function(a){a=b(a);var d=this._getInst(a[0]);if(this._get(d,"gotoCurrent")&&d.currentDay){d.selectedDay=d.currentDay;d.drawMonth=d.selectedMonth=d.currentMonth;
295
+ d.drawYear=d.selectedYear=d.currentYear}else{var h=new Date;d.selectedDay=h.getDate();d.drawMonth=d.selectedMonth=h.getMonth();d.drawYear=d.selectedYear=h.getFullYear()}this._notifyChange(d);this._adjustDate(a)},_selectMonthYear:function(a,d,h){a=b(a);var i=this._getInst(a[0]);i._selectingMonthYear=false;i["selected"+(h=="M"?"Month":"Year")]=i["draw"+(h=="M"?"Month":"Year")]=parseInt(d.options[d.selectedIndex].value,10);this._notifyChange(i);this._adjustDate(a)},_clickMonthYear:function(a){var d=
296
+ this._getInst(b(a)[0]);d.input&&d._selectingMonthYear&&setTimeout(function(){d.input.focus()},0);d._selectingMonthYear=!d._selectingMonthYear},_selectDay:function(a,d,h,i){var j=b(a);if(!(b(i).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay=b("a",i).html();j.selectedMonth=j.currentMonth=d;j.selectedYear=j.currentYear=h;this._selectDate(a,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(a){a=
297
+ b(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,d){a=this._getInst(b(a)[0]);d=d!=null?d:this._formatDate(a);a.input&&a.input.val(d);this._updateAlternate(a);var h=this._get(a,"onSelect");if(h)h.apply(a.input?a.input[0]:null,[d,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var d=this._get(a,
298
+ "altField");if(d){var h=this._get(a,"altFormat")||this._get(a,"dateFormat"),i=this._getDate(a),j=this.formatDate(h,i,this._getFormatConfig(a));b(d).each(function(){b(this).val(j)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var d=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((d-a)/864E5)/7)+1},parseDate:function(a,d,h){if(a==null||d==null)throw"Invalid arguments";d=typeof d==
299
+ "object"?d.toString():d+"";if(d=="")return null;for(var i=(h?h.shortYearCutoff:null)||this._defaults.shortYearCutoff,j=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,n=(h?h.dayNames:null)||this._defaults.dayNames,q=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort,l=(h?h.monthNames:null)||this._defaults.monthNames,k=h=-1,m=-1,o=-1,p=false,s=function(x){(x=y+1<a.length&&a.charAt(y+1)==x)&&y++;return x},r=function(x){s(x);x=new RegExp("^\\d{1,"+(x=="@"?14:x=="!"?20:x=="y"?4:x=="o"?
300
+ 3:2)+"}");x=d.substring(w).match(x);if(!x)throw"Missing number at position "+w;w+=x[0].length;return parseInt(x[0],10)},u=function(x,C,J){x=s(x)?J:C;for(C=0;C<x.length;C++)if(d.substr(w,x[C].length).toLowerCase()==x[C].toLowerCase()){w+=x[C].length;return C+1}throw"Unknown name at position "+w;},v=function(){if(d.charAt(w)!=a.charAt(y))throw"Unexpected literal at position "+w;w++},w=0,y=0;y<a.length;y++)if(p)if(a.charAt(y)=="'"&&!s("'"))p=false;else v();else switch(a.charAt(y)){case "d":m=r("d");
301
+ break;case "D":u("D",j,n);break;case "o":o=r("o");break;case "m":k=r("m");break;case "M":k=u("M",q,l);break;case "y":h=r("y");break;case "@":var B=new Date(r("@"));h=B.getFullYear();k=B.getMonth()+1;m=B.getDate();break;case "!":B=new Date((r("!")-this._ticksTo1970)/1E4);h=B.getFullYear();k=B.getMonth()+1;m=B.getDate();break;case "'":if(s("'"))v();else p=true;break;default:v()}if(h==-1)h=(new Date).getFullYear();else if(h<100)h+=(new Date).getFullYear()-(new Date).getFullYear()%100+(h<=i?0:-100);if(o>
302
+ -1){k=1;m=o;do{i=this._getDaysInMonth(h,k-1);if(m<=i)break;k++;m-=i}while(1)}B=this._daylightSavingAdjust(new Date(h,k-1,m));if(B.getFullYear()!=h||B.getMonth()+1!=k||B.getDate()!=m)throw"Invalid date";return B},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*
303
+ 60*60*1E7,formatDate:function(a,d,h){if(!d)return"";var i=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,j=(h?h.dayNames:null)||this._defaults.dayNames,n=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort;h=(h?h.monthNames:null)||this._defaults.monthNames;var q=function(s){(s=p+1<a.length&&a.charAt(p+1)==s)&&p++;return s},l=function(s,r,u){r=""+r;if(q(s))for(;r.length<u;)r="0"+r;return r},k=function(s,r,u,v){return q(s)?v[r]:u[r]},m="",o=false;if(d)for(var p=0;p<a.length;p++)if(o)if(a.charAt(p)==
304
+ "'"&&!q("'"))o=false;else m+=a.charAt(p);else switch(a.charAt(p)){case "d":m+=l("d",d.getDate(),2);break;case "D":m+=k("D",d.getDay(),i,j);break;case "o":m+=l("o",(d.getTime()-(new Date(d.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":m+=l("m",d.getMonth()+1,2);break;case "M":m+=k("M",d.getMonth(),n,h);break;case "y":m+=q("y")?d.getFullYear():(d.getYear()%100<10?"0":"")+d.getYear()%100;break;case "@":m+=d.getTime();break;case "!":m+=d.getTime()*1E4+this._ticksTo1970;break;case "'":if(q("'"))m+=
305
+ "'";else o=true;break;default:m+=a.charAt(p)}return m},_possibleChars:function(a){for(var d="",h=false,i=function(n){(n=j+1<a.length&&a.charAt(j+1)==n)&&j++;return n},j=0;j<a.length;j++)if(h)if(a.charAt(j)=="'"&&!i("'"))h=false;else d+=a.charAt(j);else switch(a.charAt(j)){case "d":case "m":case "y":case "@":d+="0123456789";break;case "D":case "M":return null;case "'":if(i("'"))d+="'";else h=true;break;default:d+=a.charAt(j)}return d},_get:function(a,d){return a.settings[d]!==c?a.settings[d]:this._defaults[d]},
306
+ _setDateFromField:function(a,d){if(a.input.val()!=a.lastVal){var h=this._get(a,"dateFormat"),i=a.lastVal=a.input?a.input.val():null,j,n;j=n=this._getDefaultDate(a);var q=this._getFormatConfig(a);try{j=this.parseDate(h,i,q)||n}catch(l){this.log(l);i=d?"":i}a.selectedDay=j.getDate();a.drawMonth=a.selectedMonth=j.getMonth();a.drawYear=a.selectedYear=j.getFullYear();a.currentDay=i?j.getDate():0;a.currentMonth=i?j.getMonth():0;a.currentYear=i?j.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,
307
+ this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,d,h){var i=function(n){var q=new Date;q.setDate(q.getDate()+n);return q},j=function(n){try{return b.datepicker.parseDate(b.datepicker._get(a,"dateFormat"),n,b.datepicker._getFormatConfig(a))}catch(q){}var l=(n.toLowerCase().match(/^c/)?b.datepicker._getDate(a):null)||new Date,k=l.getFullYear(),m=l.getMonth();l=l.getDate();for(var o=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,p=o.exec(n);p;){switch(p[2]||"d"){case "d":case "D":l+=
308
+ parseInt(p[1],10);break;case "w":case "W":l+=parseInt(p[1],10)*7;break;case "m":case "M":m+=parseInt(p[1],10);l=Math.min(l,b.datepicker._getDaysInMonth(k,m));break;case "y":case "Y":k+=parseInt(p[1],10);l=Math.min(l,b.datepicker._getDaysInMonth(k,m));break}p=o.exec(n)}return new Date(k,m,l)};if(d=(d=d==null?h:typeof d=="string"?j(d):typeof d=="number"?isNaN(d)?h:i(d):d)&&d.toString()=="Invalid Date"?h:d){d.setHours(0);d.setMinutes(0);d.setSeconds(0);d.setMilliseconds(0)}return this._daylightSavingAdjust(d)},
309
+ _daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,d,h){var i=!d,j=a.selectedMonth,n=a.selectedYear;d=this._restrictMinMax(a,this._determineDate(a,d,new Date));a.selectedDay=a.currentDay=d.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=d.getMonth();a.drawYear=a.selectedYear=a.currentYear=d.getFullYear();if((j!=a.selectedMonth||n!=a.selectedYear)&&!h)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(i?
310
+ "":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var d=new Date;d=this._daylightSavingAdjust(new Date(d.getFullYear(),d.getMonth(),d.getDate()));var h=this._get(a,"isRTL"),i=this._get(a,"showButtonPanel"),j=this._get(a,"hideIfNoPrevNext"),n=this._get(a,"navigationAsDateFormat"),q=this._getNumberOfMonths(a),l=this._get(a,"showCurrentAtPos"),k=
311
+ this._get(a,"stepMonths"),m=q[0]!=1||q[1]!=1,o=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),p=this._getMinMaxDate(a,"min"),s=this._getMinMaxDate(a,"max");l=a.drawMonth-l;var r=a.drawYear;if(l<0){l+=12;r--}if(s){var u=this._daylightSavingAdjust(new Date(s.getFullYear(),s.getMonth()-q[0]*q[1]+1,s.getDate()));for(u=p&&u<p?p:u;this._daylightSavingAdjust(new Date(r,l,1))>u;){l--;if(l<0){l=11;r--}}}a.drawMonth=l;a.drawYear=r;u=this._get(a,
312
+ "prevText");u=!n?u:this.formatDate(u,this._daylightSavingAdjust(new Date(r,l-k,1)),this._getFormatConfig(a));u=this._canAdjustMonth(a,-1,r,l)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+e+".datepicker._adjustDate('#"+a.id+"', -"+k+", 'M');\" title=\""+u+'"><span class="ui-icon ui-icon-circle-triangle-'+(h?"e":"w")+'">'+u+"</span></a>":j?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+u+'"><span class="ui-icon ui-icon-circle-triangle-'+(h?"e":"w")+'">'+
313
+ u+"</span></a>";var v=this._get(a,"nextText");v=!n?v:this.formatDate(v,this._daylightSavingAdjust(new Date(r,l+k,1)),this._getFormatConfig(a));j=this._canAdjustMonth(a,+1,r,l)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+e+".datepicker._adjustDate('#"+a.id+"', +"+k+", 'M');\" title=\""+v+'"><span class="ui-icon ui-icon-circle-triangle-'+(h?"w":"e")+'">'+v+"</span></a>":j?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+v+'"><span class="ui-icon ui-icon-circle-triangle-'+
314
+ (h?"w":"e")+'">'+v+"</span></a>";k=this._get(a,"currentText");v=this._get(a,"gotoCurrent")&&a.currentDay?o:d;k=!n?k:this.formatDate(k,v,this._getFormatConfig(a));n=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+e+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";i=i?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(h?n:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
315
+ e+".datepicker._gotoToday('#"+a.id+"');\">"+k+"</button>":"")+(h?"":n)+"</div>":"";n=parseInt(this._get(a,"firstDay"),10);n=isNaN(n)?0:n;k=this._get(a,"showWeek");v=this._get(a,"dayNames");this._get(a,"dayNamesShort");var w=this._get(a,"dayNamesMin"),y=this._get(a,"monthNames"),B=this._get(a,"monthNamesShort"),x=this._get(a,"beforeShowDay"),C=this._get(a,"showOtherMonths"),J=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),K="",G=0;G<q[0];G++){for(var N=
316
+ "",H=0;H<q[1];H++){var O=this._daylightSavingAdjust(new Date(r,l,a.selectedDay)),A=" ui-corner-all",D="";if(m){D+='<div class="ui-datepicker-group';if(q[1]>1)switch(H){case 0:D+=" ui-datepicker-group-first";A=" ui-corner-"+(h?"right":"left");break;case q[1]-1:D+=" ui-datepicker-group-last";A=" ui-corner-"+(h?"left":"right");break;default:D+=" ui-datepicker-group-middle";A="";break}D+='">'}D+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+A+'">'+(/all|left/.test(A)&&G==0?h?
317
+ j:u:"")+(/all|right/.test(A)&&G==0?h?u:j:"")+this._generateMonthYearHeader(a,l,r,p,s,G>0||H>0,y,B)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var E=k?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(A=0;A<7;A++){var z=(A+n)%7;E+="<th"+((A+n+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+v[z]+'">'+w[z]+"</span></th>"}D+=E+"</tr></thead><tbody>";E=this._getDaysInMonth(r,l);if(r==a.selectedYear&&l==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
318
+ E);A=(this._getFirstDayOfMonth(r,l)-n+7)%7;E=m?6:Math.ceil((A+E)/7);z=this._daylightSavingAdjust(new Date(r,l,1-A));for(var P=0;P<E;P++){D+="<tr>";var Q=!k?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(z)+"</td>";for(A=0;A<7;A++){var I=x?x.apply(a.input?a.input[0]:null,[z]):[true,""],F=z.getMonth()!=l,L=F&&!J||!I[0]||p&&z<p||s&&z>s;Q+='<td class="'+((A+n+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(z.getTime()==O.getTime()&&l==a.selectedMonth&&
319
+ a._keyEvent||M.getTime()==z.getTime()&&M.getTime()==O.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!C?"":" "+I[1]+(z.getTime()==o.getTime()?" "+this._currentClass:"")+(z.getTime()==d.getTime()?" ui-datepicker-today":""))+'"'+((!F||C)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+e+".datepicker._selectDay('#"+a.id+"',"+z.getMonth()+","+z.getFullYear()+', this);return false;"')+">"+(F&&!C?"&#xa0;":L?'<span class="ui-state-default">'+z.getDate()+
320
+ "</span>":'<a class="ui-state-default'+(z.getTime()==d.getTime()?" ui-state-highlight":"")+(z.getTime()==o.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+z.getDate()+"</a>")+"</td>";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}D+=Q+"</tr>"}l++;if(l>11){l=0;r++}D+="</tbody></table>"+(m?"</div>"+(q[0]>0&&H==q[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");N+=D}K+=N}K+=i+(b.browser.msie&&parseInt(b.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
321
+ "");a._keyEvent=false;return K},_generateMonthYearHeader:function(a,d,h,i,j,n,q,l){var k=this._get(a,"changeMonth"),m=this._get(a,"changeYear"),o=this._get(a,"showMonthAfterYear"),p='<div class="ui-datepicker-title">',s="";if(n||!k)s+='<span class="ui-datepicker-month">'+q[d]+"</span>";else{q=i&&i.getFullYear()==h;var r=j&&j.getFullYear()==h;s+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+e+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+e+".datepicker._clickMonthYear('#"+
322
+ a.id+"');\">";for(var u=0;u<12;u++)if((!q||u>=i.getMonth())&&(!r||u<=j.getMonth()))s+='<option value="'+u+'"'+(u==d?' selected="selected"':"")+">"+l[u]+"</option>";s+="</select>"}o||(p+=s+(n||!(k&&m)?"&#xa0;":""));if(n||!m)p+='<span class="ui-datepicker-year">'+h+"</span>";else{l=this._get(a,"yearRange").split(":");var v=(new Date).getFullYear();q=function(w){w=w.match(/c[+-].*/)?h+parseInt(w.substring(1),10):w.match(/[+-].*/)?v+parseInt(w,10):parseInt(w,10);return isNaN(w)?v:w};d=q(l[0]);l=Math.max(d,
323
+ q(l[1]||""));d=i?Math.max(d,i.getFullYear()):d;l=j?Math.min(l,j.getFullYear()):l;for(p+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+e+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+e+".datepicker._clickMonthYear('#"+a.id+"');\">";d<=l;d++)p+='<option value="'+d+'"'+(d==h?' selected="selected"':"")+">"+d+"</option>";p+="</select>"}p+=this._get(a,"yearSuffix");if(o)p+=(n||!(k&&m)?"&#xa0;":"")+s;p+="</div>";return p},_adjustInstDate:function(a,d,h){var i=
324
+ a.drawYear+(h=="Y"?d:0),j=a.drawMonth+(h=="M"?d:0);d=Math.min(a.selectedDay,this._getDaysInMonth(i,j))+(h=="D"?d:0);i=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(i,j,d)));a.selectedDay=i.getDate();a.drawMonth=a.selectedMonth=i.getMonth();a.drawYear=a.selectedYear=i.getFullYear();if(h=="M"||h=="Y")this._notifyChange(a)},_restrictMinMax:function(a,d){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");d=h&&d<h?h:d;return d=a&&d>a?a:d},_notifyChange:function(a){var d=this._get(a,
325
+ "onChangeMonthYear");if(d)d.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,d){return this._determineDate(a,this._get(a,d+"Date"),null)},_getDaysInMonth:function(a,d){return 32-(new Date(a,d,32)).getDate()},_getFirstDayOfMonth:function(a,d){return(new Date(a,d,1)).getDay()},_canAdjustMonth:function(a,d,h,i){var j=this._getNumberOfMonths(a);
326
+ h=this._daylightSavingAdjust(new Date(h,i+(d<0?d:j[0]*j[1]),1));d<0&&h.setDate(this._getDaysInMonth(h.getFullYear(),h.getMonth()));return this._isInRange(a,h)},_isInRange:function(a,d){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!h||d.getTime()>=h.getTime())&&(!a||d.getTime()<=a.getTime())},_getFormatConfig:function(a){var d=this._get(a,"shortYearCutoff");d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);return{shortYearCutoff:d,dayNamesShort:this._get(a,
327
+ "dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,d,h,i){if(!d){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}d=d?typeof d=="object"?d:this._daylightSavingAdjust(new Date(i,h,d)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),d,this._getFormatConfig(a))}});b.fn.datepicker=
328
+ function(a){if(!b.datepicker.initialized){b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv);b.datepicker.initialized=true}var d=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(d));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(d));
329
+ return this.each(function(){typeof a=="string"?b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this].concat(d)):b.datepicker._attachDatepicker(this,a)})};b.datepicker=new f;b.datepicker.initialized=false;b.datepicker.uuid=(new Date).getTime();b.datepicker.version="1.8.6";window["DP_jQuery_"+e]=b})(jQuery);
330
+ (function(b,c){var f={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},g={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};b.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var a=b(this).css(e).offset().top;
331
+ a<0&&b(this).css("top",e.top-a)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var e=this,a=e.options,d=a.title||"&#160;",h=b.ui.dialog.getTitleId(e.element),i=(e.uiDialog=b("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a.dialogClass).css({zIndex:a.zIndex}).attr("tabIndex",
332
+ -1).css("outline",0).keydown(function(q){if(a.closeOnEscape&&q.keyCode&&q.keyCode===b.ui.keyCode.ESCAPE){e.close(q);q.preventDefault()}}).attr({role:"dialog","aria-labelledby":h}).mousedown(function(q){e.moveToTop(false,q)});e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(i);var j=(e.uiDialogTitlebar=b("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(i),n=b('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
333
+ "button").hover(function(){n.addClass("ui-state-hover")},function(){n.removeClass("ui-state-hover")}).focus(function(){n.addClass("ui-state-focus")}).blur(function(){n.removeClass("ui-state-focus")}).click(function(q){e.close(q);return false}).appendTo(j);(e.uiDialogTitlebarCloseText=b("<span></span>")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(n);b("<span></span>").addClass("ui-dialog-title").attr("id",h).html(d).prependTo(j);if(b.isFunction(a.beforeclose)&&!b.isFunction(a.beforeClose))a.beforeClose=
334
+ a.beforeclose;j.find("*").add(j).disableSelection();a.draggable&&b.fn.draggable&&e._makeDraggable();a.resizable&&b.fn.resizable&&e._makeResizable();e._createButtons(a.buttons);e._isOpen=false;b.fn.bgiframe&&i.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var e=this;e.overlay&&e.overlay.destroy();e.uiDialog.hide();e.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");e.uiDialog.remove();e.originalTitle&&
335
+ e.element.attr("title",e.originalTitle);return e},widget:function(){return this.uiDialog},close:function(e){var a=this,d;if(false!==a._trigger("beforeClose",e)){a.overlay&&a.overlay.destroy();a.uiDialog.unbind("keypress.ui-dialog");a._isOpen=false;if(a.options.hide)a.uiDialog.hide(a.options.hide,function(){a._trigger("close",e)});else{a.uiDialog.hide();a._trigger("close",e)}b.ui.dialog.overlay.resize();if(a.options.modal){d=0;b(".ui-dialog").each(function(){if(this!==a.uiDialog[0])d=Math.max(d,b(this).css("z-index"))});
336
+ b.ui.dialog.maxZ=d}return a}},isOpen:function(){return this._isOpen},moveToTop:function(e,a){var d=this,h=d.options;if(h.modal&&!e||!h.stack&&!h.modal)return d._trigger("focus",a);if(h.zIndex>b.ui.dialog.maxZ)b.ui.dialog.maxZ=h.zIndex;if(d.overlay){b.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",b.ui.dialog.overlay.maxZ=b.ui.dialog.maxZ)}e={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};b.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",b.ui.dialog.maxZ);d.element.attr(e);
337
+ d._trigger("focus",a);return d},open:function(){if(!this._isOpen){var e=this,a=e.options,d=e.uiDialog;e.overlay=a.modal?new b.ui.dialog.overlay(e):null;e._size();e._position(a.position);d.show(a.show);e.moveToTop(true);a.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode===b.ui.keyCode.TAB){var i=b(":tabbable",this),j=i.filter(":first");i=i.filter(":last");if(h.target===i[0]&&!h.shiftKey){j.focus(1);return false}else if(h.target===j[0]&&h.shiftKey){i.focus(1);return false}}});b(e.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();
338
+ e._isOpen=true;e._trigger("open");return e}},_createButtons:function(e){var a=this,d=false,h=b("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),i=b("<div></div>").addClass("ui-dialog-buttonset").appendTo(h);a.uiDialog.find(".ui-dialog-buttonpane").remove();typeof e==="object"&&e!==null&&b.each(e,function(){return!(d=true)});if(d){b.each(e,function(j,n){n=b.isFunction(n)?{click:n,text:j}:n;j=b('<button type="button"></button>').attr(n,true).unbind("click").click(function(){n.click.apply(a.element[0],
339
+ arguments)}).appendTo(i);b.fn.button&&j.button()});h.appendTo(a.uiDialog)}},_makeDraggable:function(){function e(j){return{position:j.position,offset:j.offset}}var a=this,d=a.options,h=b(document),i;a.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(j,n){i=d.height==="auto"?"auto":b(this).height();b(this).height(b(this).height()).addClass("ui-dialog-dragging");a._trigger("dragStart",j,e(n))},drag:function(j,
340
+ n){a._trigger("drag",j,e(n))},stop:function(j,n){d.position=[n.position.left-h.scrollLeft(),n.position.top-h.scrollTop()];b(this).removeClass("ui-dialog-dragging").height(i);a._trigger("dragStop",j,e(n));b.ui.dialog.overlay.resize()}})},_makeResizable:function(e){function a(j){return{originalPosition:j.originalPosition,originalSize:j.originalSize,position:j.position,size:j.size}}e=e===c?this.options.resizable:e;var d=this,h=d.options,i=d.uiDialog.css("position");e=typeof e==="string"?e:"n,e,s,w,se,sw,ne,nw";
341
+ d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:h.maxWidth,maxHeight:h.maxHeight,minWidth:h.minWidth,minHeight:d._minHeight(),handles:e,start:function(j,n){b(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",j,a(n))},resize:function(j,n){d._trigger("resize",j,a(n))},stop:function(j,n){b(this).removeClass("ui-dialog-resizing");h.height=b(this).height();h.width=b(this).width();d._trigger("resizeStop",j,a(n));b.ui.dialog.overlay.resize()}}).css("position",
342
+ i).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(e){var a=[],d=[0,0],h;if(e){if(typeof e==="string"||typeof e==="object"&&"0"in e){a=e.split?e.split(" "):[e[0],e[1]];if(a.length===1)a[1]=a[0];b.each(["left","top"],function(i,j){if(+a[i]===a[i]){d[i]=a[i];a[i]=j}});e={my:a.join(" "),at:a.join(" "),offset:d.join(" ")}}e=b.extend({},b.ui.dialog.prototype.options.position,
343
+ e)}else e=b.ui.dialog.prototype.options.position;(h=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(e);h||this.uiDialog.hide()},_setOptions:function(e){var a=this,d={},h=false;b.each(e,function(i,j){a._setOption(i,j);if(i in f)h=true;if(i in g)d[i]=j});h&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(e,a){var d=this,h=d.uiDialog;switch(e){case "beforeclose":e="beforeClose";break;case "buttons":d._createButtons(a);
344
+ break;case "closeText":d.uiDialogTitlebarCloseText.text(""+a);break;case "dialogClass":h.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a);break;case "disabled":a?h.addClass("ui-dialog-disabled"):h.removeClass("ui-dialog-disabled");break;case "draggable":var i=h.is(":data(draggable)");i&&!a&&h.draggable("destroy");!i&&a&&d._makeDraggable();break;case "position":d._position(a);break;case "resizable":(i=h.is(":data(resizable)"))&&!a&&h.resizable("destroy");
345
+ i&&typeof a==="string"&&h.resizable("option","handles",a);!i&&a!==false&&d._makeResizable(a);break;case "title":b(".ui-dialog-title",d.uiDialogTitlebar).html(""+(a||"&#160;"));break}b.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var e=this.options,a,d;this.element.show().css({width:"auto",minHeight:0,height:0});if(e.minWidth>e.width)e.width=e.minWidth;a=this.uiDialog.css({height:"auto",width:e.width}).height();d=Math.max(0,e.minHeight-a);if(e.height==="auto")if(b.support.minHeight)this.element.css({minHeight:d,
346
+ height:"auto"});else{this.uiDialog.show();e=this.element.css("height","auto").height();this.uiDialog.hide();this.element.height(Math.max(e,d))}else this.element.height(Math.max(e.height-a,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});b.extend(b.ui.dialog,{version:"1.8.6",uuid:0,maxZ:0,getTitleId:function(e){e=e.attr("id");if(!e){this.uuid+=1;e=this.uuid}return"ui-dialog-title-"+e},overlay:function(e){this.$el=b.ui.dialog.overlay.create(e)}});
347
+ b.extend(b.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){b.ui.dialog.overlay.instances.length&&b(document).bind(b.ui.dialog.overlay.events,function(d){if(b(d.target).zIndex()<b.ui.dialog.overlay.maxZ)return false})},1);b(document).bind("keydown.dialog-overlay",function(d){if(e.options.closeOnEscape&&
348
+ d.keyCode&&d.keyCode===b.ui.keyCode.ESCAPE){e.close(d);d.preventDefault()}});b(window).bind("resize.dialog-overlay",b.ui.dialog.overlay.resize)}var a=(this.oldInstances.pop()||b("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});b.fn.bgiframe&&a.bgiframe();this.instances.push(a);return a},destroy:function(e){this.oldInstances.push(this.instances.splice(b.inArray(e,this.instances),1)[0]);this.instances.length===0&&b([document,window]).unbind(".dialog-overlay");
349
+ e.remove();var a=0;b.each(this.instances,function(){a=Math.max(a,this.css("z-index"))});this.maxZ=a},height:function(){var e,a;if(b.browser.msie&&b.browser.version<7){e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);a=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return e<a?b(window).height()+"px":e+"px"}else return b(document).height()+"px"},width:function(){var e,a;if(b.browser.msie&&b.browser.version<7){e=Math.max(document.documentElement.scrollWidth,
350
+ document.body.scrollWidth);a=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return e<a?b(window).width()+"px":e+"px"}else return b(document).width()+"px"},resize:function(){var e=b([]);b.each(b.ui.dialog.overlay.instances,function(){e=e.add(this)});e.css({width:0,height:0}).css({width:b.ui.dialog.overlay.width(),height:b.ui.dialog.overlay.height()})}});b.extend(b.ui.dialog.overlay.prototype,{destroy:function(){b.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
351
+ (function(b){b.ui=b.ui||{};var c=/left|center|right/,f=/top|center|bottom/,g=b.fn.position,e=b.fn.offset;b.fn.position=function(a){if(!a||!a.of)return g.apply(this,arguments);a=b.extend({},a);var d=b(a.of),h=d[0],i=(a.collision||"flip").split(" "),j=a.offset?a.offset.split(" "):[0,0],n,q,l;if(h.nodeType===9){n=d.width();q=d.height();l={top:0,left:0}}else if(h.setTimeout){n=d.width();q=d.height();l={top:d.scrollTop(),left:d.scrollLeft()}}else if(h.preventDefault){a.at="left top";n=q=0;l={top:a.of.pageY,
352
+ left:a.of.pageX}}else{n=d.outerWidth();q=d.outerHeight();l=d.offset()}b.each(["my","at"],function(){var k=(a[this]||"").split(" ");if(k.length===1)k=c.test(k[0])?k.concat(["center"]):f.test(k[0])?["center"].concat(k):["center","center"];k[0]=c.test(k[0])?k[0]:"center";k[1]=f.test(k[1])?k[1]:"center";a[this]=k});if(i.length===1)i[1]=i[0];j[0]=parseInt(j[0],10)||0;if(j.length===1)j[1]=j[0];j[1]=parseInt(j[1],10)||0;if(a.at[0]==="right")l.left+=n;else if(a.at[0]==="center")l.left+=n/2;if(a.at[1]==="bottom")l.top+=
353
+ q;else if(a.at[1]==="center")l.top+=q/2;l.left+=j[0];l.top+=j[1];return this.each(function(){var k=b(this),m=k.outerWidth(),o=k.outerHeight(),p=parseInt(b.curCSS(this,"marginLeft",true))||0,s=parseInt(b.curCSS(this,"marginTop",true))||0,r=m+p+parseInt(b.curCSS(this,"marginRight",true))||0,u=o+s+parseInt(b.curCSS(this,"marginBottom",true))||0,v=b.extend({},l),w;if(a.my[0]==="right")v.left-=m;else if(a.my[0]==="center")v.left-=m/2;if(a.my[1]==="bottom")v.top-=o;else if(a.my[1]==="center")v.top-=o/2;
354
+ v.left=parseInt(v.left);v.top=parseInt(v.top);w={left:v.left-p,top:v.top-s};b.each(["left","top"],function(y,B){b.ui.position[i[y]]&&b.ui.position[i[y]][B](v,{targetWidth:n,targetHeight:q,elemWidth:m,elemHeight:o,collisionPosition:w,collisionWidth:r,collisionHeight:u,offset:j,my:a.my,at:a.at})});b.fn.bgiframe&&k.bgiframe();k.offset(b.extend(v,{using:a.using}))})};b.ui.position={fit:{left:function(a,d){var h=b(window);h=d.collisionPosition.left+d.collisionWidth-h.width()-h.scrollLeft();a.left=h>0?
355
+ a.left-h:Math.max(a.left-d.collisionPosition.left,a.left)},top:function(a,d){var h=b(window);h=d.collisionPosition.top+d.collisionHeight-h.height()-h.scrollTop();a.top=h>0?a.top-h:Math.max(a.top-d.collisionPosition.top,a.top)}},flip:{left:function(a,d){if(d.at[0]!=="center"){var h=b(window);h=d.collisionPosition.left+d.collisionWidth-h.width()-h.scrollLeft();var i=d.my[0]==="left"?-d.elemWidth:d.my[0]==="right"?d.elemWidth:0,j=d.at[0]==="left"?d.targetWidth:-d.targetWidth,n=-2*d.offset[0];a.left+=
356
+ d.collisionPosition.left<0?i+j+n:h>0?i+j+n:0}},top:function(a,d){if(d.at[1]!=="center"){var h=b(window);h=d.collisionPosition.top+d.collisionHeight-h.height()-h.scrollTop();var i=d.my[1]==="top"?-d.elemHeight:d.my[1]==="bottom"?d.elemHeight:0,j=d.at[1]==="top"?d.targetHeight:-d.targetHeight,n=-2*d.offset[1];a.top+=d.collisionPosition.top<0?i+j+n:h>0?i+j+n:0}}}};if(!b.offset.setOffset){b.offset.setOffset=function(a,d){if(/static/.test(b.curCSS(a,"position")))a.style.position="relative";var h=b(a),
357
+ i=h.offset(),j=parseInt(b.curCSS(a,"top",true),10)||0,n=parseInt(b.curCSS(a,"left",true),10)||0;i={top:d.top-i.top+j,left:d.left-i.left+n};"using"in d?d.using.call(a,i):h.css(i)};b.fn.offset=function(a){var d=this[0];if(!d||!d.ownerDocument)return null;if(a)return this.each(function(){b.offset.setOffset(this,a)});return e.call(this)}}})(jQuery);
358
+ (function(b,c){b.widget("ui.progressbar",{options:{value:0},min:0,max:100,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
359
+ this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(f){if(f===c)return this._value();this._setOption("value",f);return this},_setOption:function(f,g){if(f==="value"){this.options.value=g;this._refreshValue();this._trigger("change");this._value()===this.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var f=this.options.value;if(typeof f!=="number")f=0;return Math.min(this.max,Math.max(this.min,f))},_refreshValue:function(){var f=
360
+ this.value();this.valueDiv.toggleClass("ui-corner-right",f===this.max).width(f+"%");this.element.attr("aria-valuenow",f)}});b.extend(b.ui.progressbar,{version:"1.8.6"})})(jQuery);
361
+ (function(b){b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var c=this,f=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");f.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
362
+ this.range=b([]);if(f.range){if(f.range===true){this.range=b("<div></div>");if(!f.values)f.values=[this._valueMin(),this._valueMin()];if(f.values.length&&f.values.length!==2)f.values=[f.values[0],f.values[0]]}else this.range=b("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(f.range==="min"||f.range==="max")this.range.addClass("ui-slider-range-"+f.range);this.range.addClass("ui-widget-header")}b(".ui-slider-handle",this.element).length===0&&b("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
363
+ if(f.values&&f.values.length)for(;b(".ui-slider-handle",this.element).length<f.values.length;)b("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){f.disabled||b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(f.disabled)b(this).blur();
364
+ else{b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(g){b(this).data("index.ui-slider-handle",g)});this.handles.keydown(function(g){var e=true,a=b(this).data("index.ui-slider-handle"),d,h,i;if(!c.options.disabled){switch(g.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:e=
365
+ false;if(!c._keySliding){c._keySliding=true;b(this).addClass("ui-state-active");d=c._start(g,a);if(d===false)return}break}i=c.options.step;d=c.options.values&&c.options.values.length?(h=c.values(a)):(h=c.value());switch(g.keyCode){case b.ui.keyCode.HOME:h=c._valueMin();break;case b.ui.keyCode.END:h=c._valueMax();break;case b.ui.keyCode.PAGE_UP:h=c._trimAlignValue(d+(c._valueMax()-c._valueMin())/5);break;case b.ui.keyCode.PAGE_DOWN:h=c._trimAlignValue(d-(c._valueMax()-c._valueMin())/5);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(d===
366
+ c._valueMax())return;h=c._trimAlignValue(d+i);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(d===c._valueMin())return;h=c._trimAlignValue(d-i);break}c._slide(g,a,h);return e}}).keyup(function(g){var e=b(this).data("index.ui-slider-handle");if(c._keySliding){c._keySliding=false;c._stop(g,e);c._change(g,e);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
367
+ this._mouseDestroy();return this},_mouseCapture:function(c){var f=this.options,g,e,a,d,h;if(f.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();g=this._normValueFromMouse({x:c.pageX,y:c.pageY});e=this._valueMax()-this._valueMin()+1;d=this;this.handles.each(function(i){var j=Math.abs(g-d.values(i));if(e>j){e=j;a=b(this);h=i}});if(f.range===true&&this.values(1)===f.min){h+=1;a=b(this.handles[h])}if(this._start(c,
368
+ h)===false)return false;this._mouseSliding=true;d._handleIndex=h;a.addClass("ui-state-active").focus();f=a.offset();this._clickOffset=!b(c.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:c.pageX-f.left-a.width()/2,top:c.pageY-f.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)};this._slide(c,h,g);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(c){var f=
369
+ this._normValueFromMouse({x:c.pageX,y:c.pageY});this._slide(c,this._handleIndex,f);return false},_mouseStop:function(c){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(c,this._handleIndex);this._change(c,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(c){var f;if(this.orientation==="horizontal"){f=
370
+ this.elementSize.width;c=c.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{f=this.elementSize.height;c=c.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}f=c/f;if(f>1)f=1;if(f<0)f=0;if(this.orientation==="vertical")f=1-f;c=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+f*c)},_start:function(c,f){var g={handle:this.handles[f],value:this.value()};if(this.options.values&&this.options.values.length){g.value=this.values(f);
371
+ g.values=this.values()}return this._trigger("start",c,g)},_slide:function(c,f,g){var e;if(this.options.values&&this.options.values.length){e=this.values(f?0:1);if(this.options.values.length===2&&this.options.range===true&&(f===0&&g>e||f===1&&g<e))g=e;if(g!==this.values(f)){e=this.values();e[f]=g;c=this._trigger("slide",c,{handle:this.handles[f],value:g,values:e});this.values(f?0:1);c!==false&&this.values(f,g,true)}}else if(g!==this.value()){c=this._trigger("slide",c,{handle:this.handles[f],value:g});
372
+ c!==false&&this.value(g)}},_stop:function(c,f){var g={handle:this.handles[f],value:this.value()};if(this.options.values&&this.options.values.length){g.value=this.values(f);g.values=this.values()}this._trigger("stop",c,g)},_change:function(c,f){if(!this._keySliding&&!this._mouseSliding){var g={handle:this.handles[f],value:this.value()};if(this.options.values&&this.options.values.length){g.value=this.values(f);g.values=this.values()}this._trigger("change",c,g)}},value:function(c){if(arguments.length){this.options.value=
373
+ this._trimAlignValue(c);this._refreshValue();this._change(null,0)}return this._value()},values:function(c,f){var g,e,a;if(arguments.length>1){this.options.values[c]=this._trimAlignValue(f);this._refreshValue();this._change(null,c)}if(arguments.length)if(b.isArray(arguments[0])){g=this.options.values;e=arguments[0];for(a=0;a<g.length;a+=1){g[a]=this._trimAlignValue(e[a]);this._change(null,a)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(c):this.value();
374
+ else return this._values()},_setOption:function(c,f){var g,e=0;if(b.isArray(this.options.values))e=this.options.values.length;b.Widget.prototype._setOption.apply(this,arguments);switch(c){case "disabled":if(f){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
375
+ this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(g=0;g<e;g+=1)this._change(null,g);this._animateOff=false;break}},_value:function(){var c=this.options.value;return c=this._trimAlignValue(c)},_values:function(c){var f,g;if(arguments.length){f=this.options.values[c];
376
+ return f=this._trimAlignValue(f)}else{f=this.options.values.slice();for(g=0;g<f.length;g+=1)f[g]=this._trimAlignValue(f[g]);return f}},_trimAlignValue:function(c){if(c<this._valueMin())return this._valueMin();if(c>this._valueMax())return this._valueMax();var f=this.options.step>0?this.options.step:1,g=c%f;c=c-g;if(Math.abs(g)*2>=f)c+=g>0?f:-f;return parseFloat(c.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var c=
377
+ this.options.range,f=this.options,g=this,e=!this._animateOff?f.animate:false,a,d={},h,i,j,n;if(this.options.values&&this.options.values.length)this.handles.each(function(q){a=(g.values(q)-g._valueMin())/(g._valueMax()-g._valueMin())*100;d[g.orientation==="horizontal"?"left":"bottom"]=a+"%";b(this).stop(1,1)[e?"animate":"css"](d,f.animate);if(g.options.range===true)if(g.orientation==="horizontal"){if(q===0)g.range.stop(1,1)[e?"animate":"css"]({left:a+"%"},f.animate);if(q===1)g.range[e?"animate":"css"]({width:a-
378
+ h+"%"},{queue:false,duration:f.animate})}else{if(q===0)g.range.stop(1,1)[e?"animate":"css"]({bottom:a+"%"},f.animate);if(q===1)g.range[e?"animate":"css"]({height:a-h+"%"},{queue:false,duration:f.animate})}h=a});else{i=this.value();j=this._valueMin();n=this._valueMax();a=n!==j?(i-j)/(n-j)*100:0;d[g.orientation==="horizontal"?"left":"bottom"]=a+"%";this.handle.stop(1,1)[e?"animate":"css"](d,f.animate);if(c==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:a+"%"},
379
+ f.animate);if(c==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-a+"%"},{queue:false,duration:f.animate});if(c==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:a+"%"},f.animate);if(c==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-a+"%"},{queue:false,duration:f.animate})}}});b.extend(b.ui.slider,{version:"1.8.6"})})(jQuery);
380
+ (function(b,c){function f(){return++e}function g(){return++a}var e=0,a=0;b.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(d,h){if(d=="selected")this.options.collapsible&&
381
+ h==this.options.selected||this.select(h);else{this.options[d]=h;this._tabify()}},_tabId:function(d){return d.title&&d.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+f()},_sanitizeSelector:function(d){return d.replace(/:/g,"\\:")},_cookie:function(){var d=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+g());return b.cookie.apply(null,[d].concat(b.makeArray(arguments)))},_ui:function(d,h){return{tab:d,panel:h,index:this.anchors.index(d)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var d=
382
+ b(this);d.html(d.data("label.tabs")).removeData("label.tabs")})},_tabify:function(d){function h(r,u){r.css("display","");!b.support.opacity&&u.opacity&&r[0].style.removeAttribute("filter")}var i=this,j=this.options,n=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=b(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return b("a",this)[0]});this.panels=b([]);this.anchors.each(function(r,u){var v=b(u).attr("href"),w=v.split("#")[0],y;if(w&&(w===location.toString().split("#")[0]||
383
+ (y=b("base")[0])&&w===y.href)){v=u.hash;u.href=v}if(n.test(v))i.panels=i.panels.add(i._sanitizeSelector(v));else if(v&&v!=="#"){b.data(u,"href.tabs",v);b.data(u,"load.tabs",v.replace(/#.*$/,""));v=i._tabId(u);u.href="#"+v;u=b("#"+v);if(!u.length){u=b(j.panelTemplate).attr("id",v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[r-1]||i.list);u.data("destroy.tabs",true)}i.panels=i.panels.add(u)}else j.disabled.push(r)});if(d){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
384
+ this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(j.selected===c){location.hash&&this.anchors.each(function(r,u){if(u.hash==location.hash){j.selected=r;return false}});if(typeof j.selected!=="number"&&j.cookie)j.selected=parseInt(i._cookie(),10);if(typeof j.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)j.selected=
385
+ this.lis.index(this.lis.filter(".ui-tabs-selected"));j.selected=j.selected||(this.lis.length?0:-1)}else if(j.selected===null)j.selected=-1;j.selected=j.selected>=0&&this.anchors[j.selected]||j.selected<0?j.selected:0;j.disabled=b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"),function(r){return i.lis.index(r)}))).sort();b.inArray(j.selected,j.disabled)!=-1&&j.disabled.splice(b.inArray(j.selected,j.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
386
+ if(j.selected>=0&&this.anchors.length){b(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");i.element.queue("tabs",function(){i._trigger("show",null,i._ui(i.anchors[j.selected],b(i._sanitizeSelector(i.anchors[j.selected].hash))))});this.load(j.selected)}b(window).bind("unload",function(){i.lis.add(i.anchors).unbind(".tabs");i.lis=i.anchors=i.panels=null})}else j.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
387
+ this.element[j.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");j.cookie&&this._cookie(j.selected,j.cookie);d=0;for(var q;q=this.lis[d];d++)b(q)[b.inArray(d,j.disabled)!=-1&&!b(q).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");j.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(j.event!=="mouseover"){var l=function(r,u){u.is(":not(.ui-state-disabled)")&&u.addClass("ui-state-"+r)},k=function(r,u){u.removeClass("ui-state-"+
388
+ r)};this.lis.bind("mouseover.tabs",function(){l("hover",b(this))});this.lis.bind("mouseout.tabs",function(){k("hover",b(this))});this.anchors.bind("focus.tabs",function(){l("focus",b(this).closest("li"))});this.anchors.bind("blur.tabs",function(){k("focus",b(this).closest("li"))})}var m,o;if(j.fx)if(b.isArray(j.fx)){m=j.fx[0];o=j.fx[1]}else m=o=j.fx;var p=o?function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
389
+ function(){h(u,o);i._trigger("show",null,i._ui(r,u[0]))})}:function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.removeClass("ui-tabs-hide");i._trigger("show",null,i._ui(r,u[0]))},s=m?function(r,u){u.animate(m,m.duration||"normal",function(){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");h(u,m);i.element.dequeue("tabs")})}:function(r,u){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");i.element.dequeue("tabs")};
390
+ this.anchors.bind(j.event+".tabs",function(){var r=this,u=b(r).closest("li"),v=i.panels.filter(":not(.ui-tabs-hide)"),w=b(i._sanitizeSelector(r.hash));if(u.hasClass("ui-tabs-selected")&&!j.collapsible||u.hasClass("ui-state-disabled")||u.hasClass("ui-state-processing")||i.panels.filter(":animated").length||i._trigger("select",null,i._ui(this,w[0]))===false){this.blur();return false}j.selected=i.anchors.index(this);i.abort();if(j.collapsible)if(u.hasClass("ui-tabs-selected")){j.selected=-1;j.cookie&&
391
+ i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){s(r,v)}).dequeue("tabs");this.blur();return false}else if(!v.length){j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){p(r,w)});i.load(i.anchors.index(this));this.blur();return false}j.cookie&&i._cookie(j.selected,j.cookie);if(w.length){v.length&&i.element.queue("tabs",function(){s(r,v)});i.element.queue("tabs",function(){p(r,w)});i.load(i.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
392
+ b.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(d){if(typeof d=="string")d=this.anchors.index(this.anchors.filter("[href$="+d+"]"));return d},destroy:function(){var d=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var h=
393
+ b.data(this,"href.tabs");if(h)this.href=h;var i=b(this).unbind(".tabs");b.each(["href","load","cache"],function(j,n){i.removeData(n+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){b.data(this,"destroy.tabs")?b(this).remove():b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});d.cookie&&this._cookie(null,d.cookie);return this},add:function(d,
394
+ h,i){if(i===c)i=this.anchors.length;var j=this,n=this.options;h=b(n.tabTemplate.replace(/#\{href\}/g,d).replace(/#\{label\}/g,h));d=!d.indexOf("#")?d.replace("#",""):this._tabId(b("a",h)[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var q=b("#"+d);q.length||(q=b(n.panelTemplate).attr("id",d).data("destroy.tabs",true));q.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(i>=this.lis.length){h.appendTo(this.list);q.appendTo(this.list[0].parentNode)}else{h.insertBefore(this.lis[i]);
395
+ q.insertBefore(this.panels[i])}n.disabled=b.map(n.disabled,function(l){return l>=i?++l:l});this._tabify();if(this.anchors.length==1){n.selected=0;h.addClass("ui-tabs-selected ui-state-active");q.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[0],j.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[i],this.panels[i]));return this},remove:function(d){d=this._getIndex(d);var h=this.options,i=this.lis.eq(d).remove(),j=this.panels.eq(d).remove();
396
+ if(i.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(d+(d+1<this.anchors.length?1:-1));h.disabled=b.map(b.grep(h.disabled,function(n){return n!=d}),function(n){return n>=d?--n:n});this._tabify();this._trigger("remove",null,this._ui(i.find("a")[0],j[0]));return this},enable:function(d){d=this._getIndex(d);var h=this.options;if(b.inArray(d,h.disabled)!=-1){this.lis.eq(d).removeClass("ui-state-disabled");h.disabled=b.grep(h.disabled,function(i){return i!=d});this._trigger("enable",null,
397
+ this._ui(this.anchors[d],this.panels[d]));return this}},disable:function(d){d=this._getIndex(d);var h=this.options;if(d!=h.selected){this.lis.eq(d).addClass("ui-state-disabled");h.disabled.push(d);h.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[d],this.panels[d]))}return this},select:function(d){d=this._getIndex(d);if(d==-1)if(this.options.collapsible&&this.options.selected!=-1)d=this.options.selected;else return this;this.anchors.eq(d).trigger(this.options.event+".tabs");return this},
398
+ load:function(d){d=this._getIndex(d);var h=this,i=this.options,j=this.anchors.eq(d)[0],n=b.data(j,"load.tabs");this.abort();if(!n||this.element.queue("tabs").length!==0&&b.data(j,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(d).addClass("ui-state-processing");if(i.spinner){var q=b("span",j);q.data("label.tabs",q.html()).html(i.spinner)}this.xhr=b.ajax(b.extend({},i.ajaxOptions,{url:n,success:function(l,k){b(h._sanitizeSelector(j.hash)).html(l);h._cleanup();i.cache&&b.data(j,"cache.tabs",
399
+ true);h._trigger("load",null,h._ui(h.anchors[d],h.panels[d]));try{i.ajaxOptions.success(l,k)}catch(m){}},error:function(l,k){h._cleanup();h._trigger("load",null,h._ui(h.anchors[d],h.panels[d]));try{i.ajaxOptions.error(l,k,d,j)}catch(m){}}}));h.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(d,
400
+ h){this.anchors.eq(d).removeData("cache.tabs").data("load.tabs",h);return this},length:function(){return this.anchors.length}});b.extend(b.ui.tabs,{version:"1.8.6"});b.extend(b.ui.tabs.prototype,{rotation:null,rotate:function(d,h){var i=this,j=this.options,n=i._rotate||(i._rotate=function(q){clearTimeout(i.rotation);i.rotation=setTimeout(function(){var l=j.selected;i.select(++l<i.anchors.length?l:0)},d);q&&q.stopPropagation()});h=i._unrotate||(i._unrotate=!h?function(q){q.clientX&&i.rotate(null)}:
401
+ function(){t=j.selected;n()});if(d){this.element.bind("tabsshow",n);this.anchors.bind(j.event+".tabs",h);n()}else{clearTimeout(i.rotation);this.element.unbind("tabsshow",n);this.anchors.unbind(j.event+".tabs",h);delete this._rotate;delete this._unrotate}return this}})})(jQuery);