corrade-nucleus-nucleons – Blame information for rev 20

Subversion Repositories:
Rev:
Rev Author Line No. Line
20 office 1 define("ace/snippets/ruby",["require","exports","module"], function(require, exports, module) {
2 "use strict";
3  
4 exports.snippetText = "########################################\n\
5 # Ruby snippets - for Rails, see below #\n\
6 ########################################\n\
7 \n\
8 # encoding for Ruby 1.9\n\
9 snippet enc\n\
10 # encoding: utf-8\n\
11 \n\
12 # #!/usr/bin/env ruby\n\
13 snippet #!\n\
14 #!/usr/bin/env ruby\n\
15 # encoding: utf-8\n\
16 \n\
17 # New Block\n\
18 snippet =b\n\
19 =begin rdoc\n\
20 ${1}\n\
21 =end\n\
22 snippet y\n\
23 :yields: ${1:arguments}\n\
24 snippet rb\n\
25 #!/usr/bin/env ruby -wKU\n\
26 snippet beg\n\
27 begin\n\
28 ${3}\n\
29 rescue ${1:Exception} => ${2:e}\n\
30 end\n\
31 \n\
32 snippet req require\n\
33 require \"${1}\"${2}\n\
34 snippet #\n\
35 # =>\n\
36 snippet end\n\
37 __END__\n\
38 snippet case\n\
39 case ${1:object}\n\
40 when ${2:condition}\n\
41 ${3}\n\
42 end\n\
43 snippet when\n\
44 when ${1:condition}\n\
45 ${2}\n\
46 snippet def\n\
47 def ${1:method_name}\n\
48 ${2}\n\
49 end\n\
50 snippet deft\n\
51 def test_${1:case_name}\n\
52 ${2}\n\
53 end\n\
54 snippet if\n\
55 if ${1:condition}\n\
56 ${2}\n\
57 end\n\
58 snippet ife\n\
59 if ${1:condition}\n\
60 ${2}\n\
61 else\n\
62 ${3}\n\
63 end\n\
64 snippet elsif\n\
65 elsif ${1:condition}\n\
66 ${2}\n\
67 snippet unless\n\
68 unless ${1:condition}\n\
69 ${2}\n\
70 end\n\
71 snippet while\n\
72 while ${1:condition}\n\
73 ${2}\n\
74 end\n\
75 snippet for\n\
76 for ${1:e} in ${2:c}\n\
77 ${3}\n\
78 end\n\
79 snippet until\n\
80 until ${1:condition}\n\
81 ${2}\n\
82 end\n\
83 snippet cla class .. end\n\
84 class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
85 ${2}\n\
86 end\n\
87 snippet cla class .. initialize .. end\n\
88 class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
89 def initialize(${2:args})\n\
90 ${3}\n\
91 end\n\
92 end\n\
93 snippet cla class .. < ParentClass .. initialize .. end\n\
94 class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < ${2:ParentClass}\n\
95 def initialize(${3:args})\n\
96 ${4}\n\
97 end\n\
98 end\n\
99 snippet cla ClassName = Struct .. do .. end\n\
100 ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} = Struct.new(:${2:attr_names}) do\n\
101 def ${3:method_name}\n\
102 ${4}\n\
103 end\n\
104 end\n\
105 snippet cla class BlankSlate .. initialize .. end\n\
106 class ${1:BlankSlate}\n\
107 instance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n\
108 end\n\
109 snippet cla class << self .. end\n\
110 class << ${1:self}\n\
111 ${2}\n\
112 end\n\
113 # class .. < DelegateClass .. initialize .. end\n\
114 snippet cla-\n\
115 class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < DelegateClass(${2:ParentClass})\n\
116 def initialize(${3:args})\n\
117 super(${4:del_obj})\n\
118 \n\
119 ${5}\n\
120 end\n\
121 end\n\
122 snippet mod module .. end\n\
123 module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
124 ${2}\n\
125 end\n\
126 snippet mod module .. module_function .. end\n\
127 module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
128 module_function\n\
129 \n\
130 ${2}\n\
131 end\n\
132 snippet mod module .. ClassMethods .. end\n\
133 module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
134 module ClassMethods\n\
135 ${2}\n\
136 end\n\
137 \n\
138 module InstanceMethods\n\
139 \n\
140 end\n\
141 \n\
142 def self.included(receiver)\n\
143 receiver.extend ClassMethods\n\
144 receiver.send :include, InstanceMethods\n\
145 end\n\
146 end\n\
147 # attr_reader\n\
148 snippet r\n\
149 attr_reader :${1:attr_names}\n\
150 # attr_writer\n\
151 snippet w\n\
152 attr_writer :${1:attr_names}\n\
153 # attr_accessor\n\
154 snippet rw\n\
155 attr_accessor :${1:attr_names}\n\
156 snippet atp\n\
157 attr_protected :${1:attr_names}\n\
158 snippet ata\n\
159 attr_accessible :${1:attr_names}\n\
160 # include Enumerable\n\
161 snippet Enum\n\
162 include Enumerable\n\
163 \n\
164 def each(&block)\n\
165 ${1}\n\
166 end\n\
167 # include Comparable\n\
168 snippet Comp\n\
169 include Comparable\n\
170 \n\
171 def <=>(other)\n\
172 ${1}\n\
173 end\n\
174 # extend Forwardable\n\
175 snippet Forw-\n\
176 extend Forwardable\n\
177 # def self\n\
178 snippet defs\n\
179 def self.${1:class_method_name}\n\
180 ${2}\n\
181 end\n\
182 # def method_missing\n\
183 snippet defmm\n\
184 def method_missing(meth, *args, &blk)\n\
185 ${1}\n\
186 end\n\
187 snippet defd\n\
188 def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\n\
189 snippet defds\n\
190 def_delegators :${1:@del_obj}, :${2:del_methods}\n\
191 snippet am\n\
192 alias_method :${1:new_name}, :${2:old_name}\n\
193 snippet app\n\
194 if __FILE__ == $PROGRAM_NAME\n\
195 ${1}\n\
196 end\n\
197 # usage_if()\n\
198 snippet usai\n\
199 if ARGV.${1}\n\
200 abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\
201 end\n\
202 # usage_unless()\n\
203 snippet usau\n\
204 unless ARGV.${1}\n\
205 abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\
206 end\n\
207 snippet array\n\
208 Array.new(${1:10}) { |${2:i}| ${3} }\n\
209 snippet hash\n\
210 Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\n\
211 snippet file File.foreach() { |line| .. }\n\
212 File.foreach(${1:\"path/to/file\"}) { |${2:line}| ${3} }\n\
213 snippet file File.read()\n\
214 File.read(${1:\"path/to/file\"})${2}\n\
215 snippet Dir Dir.global() { |file| .. }\n\
216 Dir.glob(${1:\"dir/glob/*\"}) { |${2:file}| ${3} }\n\
217 snippet Dir Dir[\"..\"]\n\
218 Dir[${1:\"glob/**/*.rb\"}]${2}\n\
219 snippet dir\n\
220 Filename.dirname(__FILE__)\n\
221 snippet deli\n\
222 delete_if { |${1:e}| ${2} }\n\
223 snippet fil\n\
224 fill(${1:range}) { |${2:i}| ${3} }\n\
225 # flatten_once()\n\
226 snippet flao\n\
227 inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\n\
228 snippet zip\n\
229 zip(${1:enums}) { |${2:row}| ${3} }\n\
230 # downto(0) { |n| .. }\n\
231 snippet dow\n\
232 downto(${1:0}) { |${2:n}| ${3} }\n\
233 snippet ste\n\
234 step(${1:2}) { |${2:n}| ${3} }\n\
235 snippet tim\n\
236 times { |${1:n}| ${2} }\n\
237 snippet upt\n\
238 upto(${1:1.0/0.0}) { |${2:n}| ${3} }\n\
239 snippet loo\n\
240 loop { ${1} }\n\
241 snippet ea\n\
242 each { |${1:e}| ${2} }\n\
243 snippet ead\n\
244 each do |${1:e}|\n\
245 ${2}\n\
246 end\n\
247 snippet eab\n\
248 each_byte { |${1:byte}| ${2} }\n\
249 snippet eac- each_char { |chr| .. }\n\
250 each_char { |${1:chr}| ${2} }\n\
251 snippet eac- each_cons(..) { |group| .. }\n\
252 each_cons(${1:2}) { |${2:group}| ${3} }\n\
253 snippet eai\n\
254 each_index { |${1:i}| ${2} }\n\
255 snippet eaid\n\
256 each_index do |${1:i}|\n\
257 ${2}\n\
258 end\n\
259 snippet eak\n\
260 each_key { |${1:key}| ${2} }\n\
261 snippet eakd\n\
262 each_key do |${1:key}|\n\
263 ${2}\n\
264 end\n\
265 snippet eal\n\
266 each_line { |${1:line}| ${2} }\n\
267 snippet eald\n\
268 each_line do |${1:line}|\n\
269 ${2}\n\
270 end\n\
271 snippet eap\n\
272 each_pair { |${1:name}, ${2:val}| ${3} }\n\
273 snippet eapd\n\
274 each_pair do |${1:name}, ${2:val}|\n\
275 ${3}\n\
276 end\n\
277 snippet eas-\n\
278 each_slice(${1:2}) { |${2:group}| ${3} }\n\
279 snippet easd-\n\
280 each_slice(${1:2}) do |${2:group}|\n\
281 ${3}\n\
282 end\n\
283 snippet eav\n\
284 each_value { |${1:val}| ${2} }\n\
285 snippet eavd\n\
286 each_value do |${1:val}|\n\
287 ${2}\n\
288 end\n\
289 snippet eawi\n\
290 each_with_index { |${1:e}, ${2:i}| ${3} }\n\
291 snippet eawid\n\
292 each_with_index do |${1:e},${2:i}|\n\
293 ${3}\n\
294 end\n\
295 snippet reve\n\
296 reverse_each { |${1:e}| ${2} }\n\
297 snippet reved\n\
298 reverse_each do |${1:e}|\n\
299 ${2}\n\
300 end\n\
301 snippet inj\n\
302 inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\n\
303 snippet injd\n\
304 inject(${1:init}) do |${2:mem}, ${3:var}|\n\
305 ${4}\n\
306 end\n\
307 snippet map\n\
308 map { |${1:e}| ${2} }\n\
309 snippet mapd\n\
310 map do |${1:e}|\n\
311 ${2}\n\
312 end\n\
313 snippet mapwi-\n\
314 enum_with_index.map { |${1:e}, ${2:i}| ${3} }\n\
315 snippet sor\n\
316 sort { |a, b| ${1} }\n\
317 snippet sorb\n\
318 sort_by { |${1:e}| ${2} }\n\
319 snippet ran\n\
320 sort_by { rand }\n\
321 snippet all\n\
322 all? { |${1:e}| ${2} }\n\
323 snippet any\n\
324 any? { |${1:e}| ${2} }\n\
325 snippet cl\n\
326 classify { |${1:e}| ${2} }\n\
327 snippet col\n\
328 collect { |${1:e}| ${2} }\n\
329 snippet cold\n\
330 collect do |${1:e}|\n\
331 ${2}\n\
332 end\n\
333 snippet det\n\
334 detect { |${1:e}| ${2} }\n\
335 snippet detd\n\
336 detect do |${1:e}|\n\
337 ${2}\n\
338 end\n\
339 snippet fet\n\
340 fetch(${1:name}) { |${2:key}| ${3} }\n\
341 snippet fin\n\
342 find { |${1:e}| ${2} }\n\
343 snippet find\n\
344 find do |${1:e}|\n\
345 ${2}\n\
346 end\n\
347 snippet fina\n\
348 find_all { |${1:e}| ${2} }\n\
349 snippet finad\n\
350 find_all do |${1:e}|\n\
351 ${2}\n\
352 end\n\
353 snippet gre\n\
354 grep(${1:/pattern/}) { |${2:match}| ${3} }\n\
355 snippet sub\n\
356 ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\n\
357 snippet sca\n\
358 scan(${1:/pattern/}) { |${2:match}| ${3} }\n\
359 snippet scad\n\
360 scan(${1:/pattern/}) do |${2:match}|\n\
361 ${3}\n\
362 end\n\
363 snippet max\n\
364 max { |a, b| ${1} }\n\
365 snippet min\n\
366 min { |a, b| ${1} }\n\
367 snippet par\n\
368 partition { |${1:e}| ${2} }\n\
369 snippet pard\n\
370 partition do |${1:e}|\n\
371 ${2}\n\
372 end\n\
373 snippet rej\n\
374 reject { |${1:e}| ${2} }\n\
375 snippet rejd\n\
376 reject do |${1:e}|\n\
377 ${2}\n\
378 end\n\
379 snippet sel\n\
380 select { |${1:e}| ${2} }\n\
381 snippet seld\n\
382 select do |${1:e}|\n\
383 ${2}\n\
384 end\n\
385 snippet lam\n\
386 lambda { |${1:args}| ${2} }\n\
387 snippet doo\n\
388 do\n\
389 ${1}\n\
390 end\n\
391 snippet dov\n\
392 do |${1:variable}|\n\
393 ${2}\n\
394 end\n\
395 snippet :\n\
396 :${1:key} => ${2:\"value\"}${3}\n\
397 snippet ope\n\
398 open(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") { |${3:io}| ${4} }\n\
399 # path_from_here()\n\
400 snippet fpath\n\
401 File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\n\
402 # unix_filter {}\n\
403 snippet unif\n\
404 ARGF.each_line${1} do |${2:line}|\n\
405 ${3}\n\
406 end\n\
407 # option_parse {}\n\
408 snippet optp\n\
409 require \"optparse\"\n\
410 \n\
411 options = {${1:default => \"args\"}}\n\
412 \n\
413 ARGV.options do |opts|\n\
414 opts.banner = \"Usage: #{File.basename($PROGRAM_NAME)}\n\
415 snippet opt\n\
416 opts.on( \"-${1:o}\", \"--${2:long-option-name}\", ${3:String},\n\
417 \"${4:Option description.}\") do |${5:opt}|\n\
418 ${6}\n\
419 end\n\
420 snippet tc\n\
421 require \"test/unit\"\n\
422 \n\
423 require \"${1:library_file_name}\"\n\
424 \n\
425 class Test${2:$1} < Test::Unit::TestCase\n\
426 def test_${3:case_name}\n\
427 ${4}\n\
428 end\n\
429 end\n\
430 snippet ts\n\
431 require \"test/unit\"\n\
432 \n\
433 require \"tc_${1:test_case_file}\"\n\
434 require \"tc_${2:test_case_file}\"${3}\n\
435 snippet as\n\
436 assert ${1:test}, \"${2:Failure message.}\"${3}\n\
437 snippet ase\n\
438 assert_equal ${1:expected}, ${2:actual}${3}\n\
439 snippet asne\n\
440 assert_not_equal ${1:unexpected}, ${2:actual}${3}\n\
441 snippet asid\n\
442 assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\n\
443 snippet asio\n\
444 assert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\n\
445 snippet asko\n\
446 assert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\n\
447 snippet asn\n\
448 assert_nil ${1:instance}${2}\n\
449 snippet asnn\n\
450 assert_not_nil ${1:instance}${2}\n\
451 snippet asm\n\
452 assert_match /${1:expected_pattern}/, ${2:actual_string}${3}\n\
453 snippet asnm\n\
454 assert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\n\
455 snippet aso\n\
456 assert_operator ${1:left}, :${2:operator}, ${3:right}${4}\n\
457 snippet asr\n\
458 assert_raise ${1:Exception} { ${2} }\n\
459 snippet asrd\n\
460 assert_raise ${1:Exception} do\n\
461 ${2}\n\
462 end\n\
463 snippet asnr\n\
464 assert_nothing_raised ${1:Exception} { ${2} }\n\
465 snippet asnrd\n\
466 assert_nothing_raised ${1:Exception} do\n\
467 ${2}\n\
468 end\n\
469 snippet asrt\n\
470 assert_respond_to ${1:object}, :${2:method}${3}\n\
471 snippet ass assert_same(..)\n\
472 assert_same ${1:expected}, ${2:actual}${3}\n\
473 snippet ass assert_send(..)\n\
474 assert_send [${1:object}, :${2:message}, ${3:args}]${4}\n\
475 snippet asns\n\
476 assert_not_same ${1:unexpected}, ${2:actual}${3}\n\
477 snippet ast\n\
478 assert_throws :${1:expected} { ${2} }\n\
479 snippet astd\n\
480 assert_throws :${1:expected} do\n\
481 ${2}\n\
482 end\n\
483 snippet asnt\n\
484 assert_nothing_thrown { ${1} }\n\
485 snippet asntd\n\
486 assert_nothing_thrown do\n\
487 ${1}\n\
488 end\n\
489 snippet fl\n\
490 flunk \"${1:Failure message.}\"${2}\n\
491 # Benchmark.bmbm do .. end\n\
492 snippet bm-\n\
493 TESTS = ${1:10_000}\n\
494 Benchmark.bmbm do |results|\n\
495 ${2}\n\
496 end\n\
497 snippet rep\n\
498 results.report(\"${1:name}:\") { TESTS.times { ${2} }}\n\
499 # Marshal.dump(.., file)\n\
500 snippet Md\n\
501 File.open(${1:\"path/to/file.dump\"}, \"wb\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\n\
502 # Mashal.load(obj)\n\
503 snippet Ml\n\
504 File.open(${1:\"path/to/file.dump\"}, \"rb\") { |${2:file}| Marshal.load($2) }${3}\n\
505 # deep_copy(..)\n\
506 snippet deec\n\
507 Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}\n\
508 snippet Pn-\n\
509 PStore.new(${1:\"file_name.pstore\"})${2}\n\
510 snippet tra\n\
511 transaction(${1:true}) { ${2} }\n\
512 # xmlread(..)\n\
513 snippet xml-\n\
514 REXML::Document.new(File.read(${1:\"path/to/file\"}))${2}\n\
515 # xpath(..) { .. }\n\
516 snippet xpa\n\
517 elements.each(${1:\"//Xpath\"}) do |${2:node}|\n\
518 ${3}\n\
519 end\n\
520 # class_from_name()\n\
521 snippet clafn\n\
522 split(\"::\").inject(Object) { |par, const| par.const_get(const) }\n\
523 # singleton_class()\n\
524 snippet sinc\n\
525 class << self; self end\n\
526 snippet nam\n\
527 namespace :${1:`Filename()`} do\n\
528 ${2}\n\
529 end\n\
530 snippet tas\n\
531 desc \"${1:Task description}\"\n\
532 task :${2:task_name => [:dependent, :tasks]} do\n\
533 ${3}\n\
534 end\n\
535 # block\n\
536 snippet b\n\
537 { |${1:var}| ${2} }\n\
538 snippet begin\n\
539 begin\n\
540 raise 'A test exception.'\n\
541 rescue Exception => e\n\
542 puts e.message\n\
543 puts e.backtrace.inspect\n\
544 else\n\
545 # other exception\n\
546 ensure\n\
547 # always executed\n\
548 end\n\
549 \n\
550 #debugging\n\
551 snippet debug\n\
552 require 'ruby-debug'; debugger; true;\n\
553 snippet pry\n\
554 require 'pry'; binding.pry\n\
555 \n\
556 #############################################\n\
557 # Rails snippets - for pure Ruby, see above #\n\
558 #############################################\n\
559 snippet art\n\
560 assert_redirected_to ${1::action => \"${2:index}\"}\n\
561 snippet artnp\n\
562 assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\n\
563 snippet artnpp\n\
564 assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\n\
565 snippet artp\n\
566 assert_redirected_to ${1:model}_path(${2:@$1})\n\
567 snippet artpp\n\
568 assert_redirected_to ${1:model}s_path\n\
569 snippet asd\n\
570 assert_difference \"${1:Model}.${2:count}\", $1 do\n\
571 ${3}\n\
572 end\n\
573 snippet asnd\n\
574 assert_no_difference \"${1:Model}.${2:count}\" do\n\
575 ${3}\n\
576 end\n\
577 snippet asre\n\
578 assert_response :${1:success}, @response.body${2}\n\
579 snippet asrj\n\
580 assert_rjs :${1:replace}, \"${2:dom id}\"\n\
581 snippet ass assert_select(..)\n\
582 assert_select '${1:path}', :${2:text} => '${3:inner_html' ${4:do}\n\
583 snippet bf\n\
584 before_filter :${1:method}\n\
585 snippet bt\n\
586 belongs_to :${1:association}\n\
587 snippet crw\n\
588 cattr_accessor :${1:attr_names}\n\
589 snippet defcreate\n\
590 def create\n\
591 @${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\n\
592 \n\
593 respond_to do |wants|\n\
594 if @$1.save\n\
595 flash[:notice] = '$2 was successfully created.'\n\
596 wants.html { redirect_to(@$1) }\n\
597 wants.xml { render :xml => @$1, :status => :created, :location => @$1 }\n\
598 else\n\
599 wants.html { render :action => \"new\" }\n\
600 wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\
601 end\n\
602 end\n\
603 end${3}\n\
604 snippet defdestroy\n\
605 def destroy\n\
606 @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
607 @$1.destroy\n\
608 \n\
609 respond_to do |wants|\n\
610 wants.html { redirect_to($1s_url) }\n\
611 wants.xml { head :ok }\n\
612 end\n\
613 end${3}\n\
614 snippet defedit\n\
615 def edit\n\
616 @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
617 end\n\
618 snippet defindex\n\
619 def index\n\
620 @${1:model_class_name} = ${2:ModelClassName}.all\n\
621 \n\
622 respond_to do |wants|\n\
623 wants.html # index.html.erb\n\
624 wants.xml { render :xml => @$1s }\n\
625 end\n\
626 end${3}\n\
627 snippet defnew\n\
628 def new\n\
629 @${1:model_class_name} = ${2:ModelClassName}.new\n\
630 \n\
631 respond_to do |wants|\n\
632 wants.html # new.html.erb\n\
633 wants.xml { render :xml => @$1 }\n\
634 end\n\
635 end${3}\n\
636 snippet defshow\n\
637 def show\n\
638 @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
639 \n\
640 respond_to do |wants|\n\
641 wants.html # show.html.erb\n\
642 wants.xml { render :xml => @$1 }\n\
643 end\n\
644 end${3}\n\
645 snippet defupdate\n\
646 def update\n\
647 @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
648 \n\
649 respond_to do |wants|\n\
650 if @$1.update_attributes(params[:$1])\n\
651 flash[:notice] = '$2 was successfully updated.'\n\
652 wants.html { redirect_to(@$1) }\n\
653 wants.xml { head :ok }\n\
654 else\n\
655 wants.html { render :action => \"edit\" }\n\
656 wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\
657 end\n\
658 end\n\
659 end${3}\n\
660 snippet flash\n\
661 flash[:${1:notice}] = \"${2}\"\n\
662 snippet habtm\n\
663 has_and_belongs_to_many :${1:object}, :join_table => \"${2:table_name}\", :foreign_key => \"${3}_id\"${4}\n\
664 snippet hm\n\
665 has_many :${1:object}\n\
666 snippet hmd\n\
667 has_many :${1:other}s, :class_name => \"${2:$1}\", :foreign_key => \"${3:$1}_id\", :dependent => :destroy${4}\n\
668 snippet hmt\n\
669 has_many :${1:object}, :through => :${2:object}\n\
670 snippet ho\n\
671 has_one :${1:object}\n\
672 snippet i18\n\
673 I18n.t('${1:type.key}')${2}\n\
674 snippet ist\n\
675 <%= image_submit_tag(\"${1:agree.png}\", :id => \"${2:id}\"${3} %>\n\
676 snippet log\n\
677 Rails.logger.${1:debug} ${2}\n\
678 snippet log2\n\
679 RAILS_DEFAULT_LOGGER.${1:debug} ${2}\n\
680 snippet logd\n\
681 logger.debug { \"${1:message}\" }${2}\n\
682 snippet loge\n\
683 logger.error { \"${1:message}\" }${2}\n\
684 snippet logf\n\
685 logger.fatal { \"${1:message}\" }${2}\n\
686 snippet logi\n\
687 logger.info { \"${1:message}\" }${2}\n\
688 snippet logw\n\
689 logger.warn { \"${1:message}\" }${2}\n\
690 snippet mapc\n\
691 ${1:map}.${2:connect} '${3:controller/:action/:id}'\n\
692 snippet mapca\n\
693 ${1:map}.catch_all \"*${2:anything}\", :controller => \"${3:default}\", :action => \"${4:error}\"${5}\n\
694 snippet mapr\n\
695 ${1:map}.resource :${2:resource}\n\
696 snippet maprs\n\
697 ${1:map}.resources :${2:resource}\n\
698 snippet mapwo\n\
699 ${1:map}.with_options :${2:controller} => '${3:thing}' do |$3|\n\
700 ${4}\n\
701 end\n\
702 snippet mbs\n\
703 before_save :${1:method}\n\
704 snippet mcht\n\
705 change_table :${1:table_name} do |t|\n\
706 ${2}\n\
707 end\n\
708 snippet mp\n\
709 map(&:${1:id})\n\
710 snippet mrw\n\
711 mattr_accessor :${1:attr_names}\n\
712 snippet oa\n\
713 order(\"${1:field}\")\n\
714 snippet od\n\
715 order(\"${1:field} DESC\")\n\
716 snippet pa\n\
717 params[:${1:id}]${2}\n\
718 snippet ra\n\
719 render :action => \"${1:action}\"\n\
720 snippet ral\n\
721 render :action => \"${1:action}\", :layout => \"${2:layoutname}\"\n\
722 snippet rest\n\
723 respond_to do |wants|\n\
724 wants.${1:html} { ${2} }\n\
725 end\n\
726 snippet rf\n\
727 render :file => \"${1:filepath}\"\n\
728 snippet rfu\n\
729 render :file => \"${1:filepath}\", :use_full_path => ${2:false}\n\
730 snippet ri\n\
731 render :inline => \"${1:<%= 'hello' %>}\"\n\
732 snippet ril\n\
733 render :inline => \"${1:<%= 'hello' %>}\", :locals => { ${2::name} => \"${3:value}\"${4} }\n\
734 snippet rit\n\
735 render :inline => \"${1:<%= 'hello' %>}\", :type => ${2::rxml}\n\
736 snippet rjson\n\
737 render :json => ${1:text to render}\n\
738 snippet rl\n\
739 render :layout => \"${1:layoutname}\"\n\
740 snippet rn\n\
741 render :nothing => ${1:true}\n\
742 snippet rns\n\
743 render :nothing => ${1:true}, :status => ${2:401}\n\
744 snippet rp\n\
745 render :partial => \"${1:item}\"\n\
746 snippet rpc\n\
747 render :partial => \"${1:item}\", :collection => ${2:@$1s}\n\
748 snippet rpl\n\
749 render :partial => \"${1:item}\", :locals => { :${2:$1} => ${3:@$1}\n\
750 snippet rpo\n\
751 render :partial => \"${1:item}\", :object => ${2:@$1}\n\
752 snippet rps\n\
753 render :partial => \"${1:item}\", :status => ${2:500}\n\
754 snippet rt\n\
755 render :text => \"${1:text to render}\"\n\
756 snippet rtl\n\
757 render :text => \"${1:text to render}\", :layout => \"${2:layoutname}\"\n\
758 snippet rtlt\n\
759 render :text => \"${1:text to render}\", :layout => ${2:true}\n\
760 snippet rts\n\
761 render :text => \"${1:text to render}\", :status => ${2:401}\n\
762 snippet ru\n\
763 render :update do |${1:page}|\n\
764 $1.${2}\n\
765 end\n\
766 snippet rxml\n\
767 render :xml => ${1:text to render}\n\
768 snippet sc\n\
769 scope :${1:name}, :where(:@${2:field} => ${3:value})\n\
770 snippet sl\n\
771 scope :${1:name}, lambda do |${2:value}|\n\
772 where(\"${3:field = ?}\", ${4:bind var})\n\
773 end\n\
774 snippet sha1\n\
775 Digest::SHA1.hexdigest(${1:string})\n\
776 snippet sweeper\n\
777 class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\n\
778 observe $1\n\
779 \n\
780 def after_save(${2:model_class_name})\n\
781 expire_cache($2)\n\
782 end\n\
783 \n\
784 def after_destroy($2)\n\
785 expire_cache($2)\n\
786 end\n\
787 \n\
788 def expire_cache($2)\n\
789 expire_page\n\
790 end\n\
791 end\n\
792 snippet tcb\n\
793 t.boolean :${1:title}\n\
794 ${2}\n\
795 snippet tcbi\n\
796 t.binary :${1:title}, :limit => ${2:2}.megabytes\n\
797 ${3}\n\
798 snippet tcd\n\
799 t.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\n\
800 ${4}\n\
801 snippet tcda\n\
802 t.date :${1:title}\n\
803 ${2}\n\
804 snippet tcdt\n\
805 t.datetime :${1:title}\n\
806 ${2}\n\
807 snippet tcf\n\
808 t.float :${1:title}\n\
809 ${2}\n\
810 snippet tch\n\
811 t.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\n\
812 ${5}\n\
813 snippet tci\n\
814 t.integer :${1:title}\n\
815 ${2}\n\
816 snippet tcl\n\
817 t.integer :lock_version, :null => false, :default => 0\n\
818 ${1}\n\
819 snippet tcr\n\
820 t.references :${1:taggable}, :polymorphic => { :default => '${2:Photo}' }\n\
821 ${3}\n\
822 snippet tcs\n\
823 t.string :${1:title}\n\
824 ${2}\n\
825 snippet tct\n\
826 t.text :${1:title}\n\
827 ${2}\n\
828 snippet tcti\n\
829 t.time :${1:title}\n\
830 ${2}\n\
831 snippet tcts\n\
832 t.timestamp :${1:title}\n\
833 ${2}\n\
834 snippet tctss\n\
835 t.timestamps\n\
836 ${1}\n\
837 snippet va\n\
838 validates_associated :${1:attribute}\n\
839 snippet vao\n\
840 validates_acceptance_of :${1:terms}\n\
841 snippet vc\n\
842 validates_confirmation_of :${1:attribute}\n\
843 snippet ve\n\
844 validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\n\
845 snippet vf\n\
846 validates_format_of :${1:attribute}, :with => /${2:regex}/\n\
847 snippet vi\n\
848 validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\n\
849 snippet vl\n\
850 validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\n\
851 snippet vn\n\
852 validates_numericality_of :${1:attribute}\n\
853 snippet vpo\n\
854 validates_presence_of :${1:attribute}\n\
855 snippet vu\n\
856 validates_uniqueness_of :${1:attribute}\n\
857 snippet wants\n\
858 wants.${1:js|xml|html} { ${2} }\n\
859 snippet wc\n\
860 where(${1:\"conditions\"}${2:, bind_var})\n\
861 snippet wh\n\
862 where(${1:field} => ${2:value})\n\
863 snippet xdelete\n\
864 xhr :delete, :${1:destroy}, :id => ${2:1}${3}\n\
865 snippet xget\n\
866 xhr :get, :${1:show}, :id => ${2:1}${3}\n\
867 snippet xpost\n\
868 xhr :post, :${1:create}, :${2:object} => { ${3} }\n\
869 snippet xput\n\
870 xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\n\
871 snippet test\n\
872 test \"should ${1:do something}\" do\n\
873 ${2}\n\
874 end\n\
875 #migrations\n\
876 snippet mac\n\
877 add_column :${1:table_name}, :${2:column_name}, :${3:data_type}\n\
878 snippet mrc\n\
879 remove_column :${1:table_name}, :${2:column_name}\n\
880 snippet mrnc\n\
881 rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\n\
882 snippet mcc\n\
883 change_column :${1:table}, :${2:column}, :${3:type}\n\
884 snippet mccc\n\
885 t.column :${1:title}, :${2:string}\n\
886 snippet mct\n\
887 create_table :${1:table_name} do |t|\n\
888 t.column :${2:name}, :${3:type}\n\
889 end\n\
890 snippet migration\n\
891 class ${1:class_name} < ActiveRecord::Migration\n\
892 def self.up\n\
893 ${2}\n\
894 end\n\
895 \n\
896 def self.down\n\
897 end\n\
898 end\n\
899 \n\
900 snippet trc\n\
901 t.remove :${1:column}\n\
902 snippet tre\n\
903 t.rename :${1:old_column_name}, :${2:new_column_name}\n\
904 ${3}\n\
905 snippet tref\n\
906 t.references :${1:model}\n\
907 \n\
908 #rspec\n\
909 snippet it\n\
910 it \"${1:spec_name}\" do\n\
911 ${2}\n\
912 end\n\
913 snippet itp\n\
914 it \"${1:spec_name}\"\n\
915 ${2}\n\
916 snippet desc\n\
917 describe ${1:class_name} do\n\
918 ${2}\n\
919 end\n\
920 snippet cont\n\
921 context \"${1:message}\" do\n\
922 ${2}\n\
923 end\n\
924 snippet bef\n\
925 before :${1:each} do\n\
926 ${2}\n\
927 end\n\
928 snippet aft\n\
929 after :${1:each} do\n\
930 ${2}\n\
931 end\n\
932 ";
933 exports.scope = "ruby";
934  
935 });