# Encoding: UTF-8

[{content: "#!/usr/bin/env ruby${TM_RUBY_SWITCHES: -wKU}\n",
  name: "#!/usr/bin/env ruby -wKU",
  scope: "source.ruby",
  tabTrigger: "rb",
  uuid: "A05CBDD6-845D-45EB-94FB-F8787F5456BE"},
 {content: " :yields: ${0:arguments}",
  name: ":yields:",
  scope: "source.ruby comment",
  tabTrigger: "y",
  uuid: "ED6368FB-A11D-4622-9F42-7879481094F1"},
 {content: "# => ",
  name: "Add ‘# =>’ Marker",
  scope: "source.ruby",
  tabTrigger: "#",
  uuid: "88BC3896-DC39-4307-A271-21D33340F15A"},
 {content: 
   "Array.new(${1:10}) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:i}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "Array.new(10) { |i| .. }",
  scope: "source.ruby",
  tabTrigger: "Array",
  uuid: "DAE6A754-D906-4763-B816-CE67125CEF08"},
 {content: "TESTS = ${1:10_000}\nBenchmark.bmbm do |results|\n  $0\nend",
  name: "Benchmark.bmbm do .. end",
  scope: "source.ruby",
  tabTrigger: "bm-",
  uuid: "942F20E2-C40A-44B8-A3F2-99AAC68CB534"},
 {content: 
   "${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}} = Struct.new(:${2:attr_names}) do\n\tdef ${3:method_name}\n\t\t$0\n\tend\n\t\n\t\nend",
  name: "ClassName = Struct .. do .. end",
  scope: "source.ruby",
  tabTrigger: "cla",
  uuid: "05DFF82C-5A29-4EBD-93FE-C165FFFB5EA8"},
 {content: "Dir.glob(${1:\"${2:dir/glob/*}\"}) { |${3:file}| $0 }",
  name: "Dir.glob(\"..\") { |file| .. }",
  scope: "source.ruby",
  tabTrigger: "Dir",
  uuid: "332AA973-AA71-48CB-AEE9-1D71E11019AC"},
 {content: "Dir[${1:\"${2:glob/**/*.rb}\"}]",
  name: "Dir[\"..\"]",
  scope: "source.ruby",
  tabTrigger: "Dir",
  uuid: "8EBBB26F-980E-404E-8366-74E5772298F6"},
 {content: "\#{${1:$TM_SELECTED_TEXT}}",
  keyEquivalent: "#",
  name: "Embedded Code — \#{…}",
  scope: 
   "(string.quoted.double.ruby|string.interpolated.ruby) - string source",
  uuid: "EEE6D060-C5A0-400D-A2E0-0835013C5365"},
 {content: "File.foreach(${1:\"${2:path/to/file}\"}) { |${3:line}| $0 }",
  name: "File.foreach (\"..\") { |line| .. }",
  scope: "source.ruby",
  tabTrigger: "File",
  uuid: "8F594E5E-6F46-4E98-B5FB-1C8F3BA9828F"},
 {content: 
   "File.open(${1:\"${2:path/to/file}\"}${3/(^[rwab+]+$)|.*/(?1:, \")/}${3:w}${3/(^[rwab+]+$)|.*/(?1:\")/}) { |${4:file}| $0 }",
  name: "File.open(\"..\") { |file| .. }",
  scope: "source.ruby",
  tabTrigger: "File",
  uuid: "397FA09F-A30F-4EE4-920C-318D5004EE97"},
 {content: "File.read(${1:\"${2:path/to/file}\"})",
  name: "File.read(\"..\")",
  scope: "source.ruby",
  tabTrigger: "File",
  uuid: "50C56AC8-48F3-42A0-AF10-8164464AFAEF"},
 {content: ":${1:key} => ${2:\"${3:value}\"}${4:, }",
  name: "Hash Pair — :key => \"value\"",
  scope: "source.ruby",
  tabTrigger: ":",
  uuid: "840B9C4C-7037-4C3B-9028-EB9DC75EDB3E"},
 {content: " => ",
  keyEquivalent: "^l",
  name: "Hash Pointer — =>",
  scope: "source.ruby",
  uuid: "B9E3A6DF-875D-11D9-897C-000393CBCE2E"},
 {content: "Hash.new { |${1:hash}, ${2:key}| ${1:hash}[${2:key}] = $0 }",
  name: "Hash.new { |hash, key| hash[key] = .. }",
  scope: "source.ruby",
  tabTrigger: "Hash",
  uuid: "E16EE658-1CA0-4950-954B-B962E50B754F"},
 {content: "<%= ${0:$TM_SELECTED_TEXT} %>",
  keyEquivalent: "^>",
  name: "Insert ERb’s <% .. %> or <%= .. %>",
  scope: "text.html, source.yaml, meta.erb",
  uuid: "FDFABCB9-DF58-4469-AE11-5407A4FF4D70"},
 {content: 
   "do${1/(^(?<var>\\s*[a-z_][a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1: |)/}${1:variable}${1/(^(?<var>\\s*[a-z_][a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}\n\t$0\nend",
  name: "Insert do |variable| … end",
  scope: "source.ruby",
  tabTrigger: "do",
  uuid: "4B72C5C3-6CA7-41AC-B2F9-51DEA25D469E"},
 {content: 
   "{ ${1/(^(?<var>\\s*[a-z_][a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${1:variable}${1/(^(?<var>\\s*[a-z_][a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}${2:$TM_SELECTED_TEXT} ",
  name: "Insert { |variable| … }",
  scope: "source.ruby - string - comment",
  tabTrigger: "{",
  uuid: "855FC4EF-7B1E-48EE-AD4E-5ECB8ED79D1C"},
 {content: 
   "File.open(${1:\"${2:path/to/file}.dump\"}, \"wb\") { |${3:file}| Marshal.dump(${4:obj}, ${3:file}) }",
  name: "Marshal.dump(.., file)",
  scope: "source.ruby",
  tabTrigger: "Md",
  uuid: "0CB48BCA-3F6E-4AE0-85BC-08A1D2508216"},
 {content: 
   "File.open(${1:\"${2:path/to/file}.dump\"}, \"rb\") { |${3:file}| Marshal.load(${3:file}) }",
  name: "Marshal.load(obj)",
  scope: "source.ruby",
  tabTrigger: "Ml",
  uuid: "20AAD0BC-075D-4EC0-9057-E3E5E62C4125"},
 {content: "`[[ $TM_LINE_INDEX != 0 ]] && echo; echo`=begin rdoc\n\t$0\n=end",
  name: "New Block",
  scope: "source.ruby",
  tabTrigger: "=b",
  uuid: "05984208-D559-4C04-A69C-2019361A985A",
  disableAutoIndent: true},
 {content: "PStore.new(${1:\"${2:file_name.pstore}\"})",
  name: "PStore.new( .. )",
  scope: "source.ruby",
  tabTrigger: "Pn-",
  uuid: "5B46ECFD-23A4-4F0C-9951-F64C19C72C2B"},
 {content: 
   "File.open(${1:\"${2:path/to/file}.yaml\"}, \"w\") { |${3:file}| YAML.dump(${4:obj}, ${3:file}) }",
  name: "YAML.dump(.., file)",
  scope: "source.ruby",
  tabTrigger: "Yd-",
  uuid: "3BA6762A-BB6B-489E-8006-F30F386AEF48"},
 {content: 
   "File.open(${1:\"${2:path/to/file}.yaml\"}) { |${3:file}| YAML.load(${3:file}) }",
  name: "YAML.load(file)",
  scope: "source.ruby",
  tabTrigger: "Yl-",
  uuid: "8343ACF4-EEB7-44B5-B835-94826466D4D5"},
 {content: "__END__\n",
  name: "__END__",
  scope: "source.ruby",
  tabTrigger: "end",
  uuid: "451A0596-1F72-4AFB-AF2F-45900FABB0F7"},
 {content: "alias_method :${1:new_name}, :${0:old_name}",
  name: "alias_method ..",
  scope: "source.ruby",
  tabTrigger: "am",
  uuid: "988C8AEF-FC71-4455-9C4F-9338C05685A4"},
 {content: "all? { |${1:e}| $0 }",
  name: "all? { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "all",
  uuid: "07D1F987-7CDB-4EAD-B64A-27A93051700E"},
 {content: "any? { |${1:e}| $0 }",
  name: "any? { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "any",
  uuid: "A3B9B76B-2BC5-425C-AB24-9FAAFC375798"},
 {content: "if __FILE__ == \\$PROGRAM_NAME\n\t$0\nend",
  name: "application { .. }",
  scope: "source.ruby",
  tabTrigger: "app",
  uuid: "E16D24D2-CC7E-4786-BE0B-1725FC865D78"},
 {content: 
   "assert`snippet_paren.rb`${1:test}, \"${0:Failure message.}\"`snippet_paren.rb end`",
  name: "assert(..)",
  scope: "source.ruby",
  tabTrigger: "as",
  uuid: "B32C147D-44A6-478A-9D5D-189D7831E9A7"},
 {content: 
   "assert_equal`snippet_paren.rb`${1:expected}, ${0:actual}`snippet_paren.rb end`",
  name: "assert_equal(..)",
  scope: "source.ruby",
  tabTrigger: "ase",
  uuid: "43A61A22-6BEE-4997-961C-1CDE739C05FE"},
 {content: 
   "assert_in_delta`snippet_paren.rb`${1:expected_float}, ${2:actual_float}, ${0:2 ** -20}`snippet_paren.rb end`",
  name: "assert_in_delta(..)",
  scope: "source.ruby",
  tabTrigger: "asid",
  uuid: "429D0EF5-580D-4166-8F79-713DE96B77F1"},
 {content: 
   "assert_instance_of`snippet_paren.rb`${1:ExpectedClass}, ${0:actual_instance}`snippet_paren.rb end`",
  name: "assert_instance_of(..)",
  scope: "source.ruby",
  tabTrigger: "asio",
  uuid: "0E831E03-67E1-4357-8323-C60685C23C4F"},
 {content: 
   "assert_kind_of`snippet_paren.rb`${1:ExpectedKind}, ${0:actual_instance}`snippet_paren.rb end`",
  name: "assert_kind_of(..)",
  scope: "source.ruby",
  tabTrigger: "asko",
  uuid: "671F05E2-D9CC-485E-BB1B-B13EF20FAC65"},
 {content: 
   "assert_match`snippet_paren.rb`/${1:expected_pattern}/, ${0:actual_string}`snippet_paren.rb end`",
  name: "assert_match(..)",
  scope: "source.ruby",
  tabTrigger: "asm",
  uuid: "711ED6C3-0F18-41FB-9A7D-3094BB319A85"},
 {content: "assert_nil`snippet_paren.rb`${0:instance}`snippet_paren.rb end`",
  name: "assert_nil(..)",
  scope: "source.ruby",
  tabTrigger: "asn",
  uuid: "4C79256C-480A-459C-BDE8-BB0D972811DB"},
 {content: 
   "assert_no_match`snippet_paren.rb`/${1:unexpected_pattern}/, ${0:actual_string}`snippet_paren.rb end`",
  name: "assert_no_match(..)",
  scope: "source.ruby",
  tabTrigger: "asnm",
  uuid: "A072BB1E-1DD1-45D3-9346-8CA3BA21B364"},
 {content: 
   "assert_not_equal`snippet_paren.rb`${1:unexpected}, ${0:actual}`snippet_paren.rb end`",
  name: "assert_not_equal(..)",
  scope: "source.ruby",
  tabTrigger: "asne",
  uuid: "A243E96F-DC21-4AA0-B340-13A7674F6AFF"},
 {content: 
   "assert_not_nil`snippet_paren.rb`${0:instance}`snippet_paren.rb end`",
  name: "assert_not_nil(..)",
  scope: "source.ruby",
  tabTrigger: "asnn",
  uuid: "79FEC3CC-2A40-4611-9A85-ECDB22FE0701"},
 {content: 
   "assert_not_same`snippet_paren.rb`${1:unexpected}, ${0:actual}`snippet_paren.rb end`",
  name: "assert_not_same(..)",
  scope: "source.ruby",
  tabTrigger: "asns",
  uuid: "F91C25EC-EC76-498B-BFB5-FDA8F57C5875"},
 {content: "assert_nothing_raised(${1:Exception}) { $0 }",
  name: "assert_nothing_raised(..) { .. }",
  scope: "source.ruby",
  tabTrigger: "asnr",
  uuid: "82F8EEE0-2452-411E-8102-7BFDDBCA2E72"},
 {content: "assert_nothing_thrown { $0 }",
  name: "assert_nothing_thrown { .. }",
  scope: "source.ruby",
  tabTrigger: "asnt",
  uuid: "33639D7A-BD8C-4396-9C44-307B8AC87C9E"},
 {content: 
   "assert_operator`snippet_paren.rb`${1:left}, :${2:operator}, ${0:right}`snippet_paren.rb end`",
  name: "assert_operator(..)",
  scope: "source.ruby",
  tabTrigger: "aso",
  uuid: "1B925A4D-8EE4-442B-9254-293599F5717F"},
 {content: "assert_raise(${1:Exception}) { $0 }",
  name: "assert_raise(..) { .. }",
  scope: "source.ruby",
  tabTrigger: "asr",
  uuid: "68B21F6F-5D89-41FA-A19C-F29C2F912B4E"},
 {content: 
   "assert_respond_to`snippet_paren.rb`${1:object}, :${0:method}`snippet_paren.rb end`",
  name: "assert_respond_to(..)",
  scope: "source.ruby",
  tabTrigger: "asrt",
  uuid: "09A11FDA-49FC-4466-8787-8D1D5D111A89"},
 {content: 
   "assert_same`snippet_paren.rb`${1:expected}, ${0:actual}`snippet_paren.rb end`",
  name: "assert_same(..)",
  scope: "source.ruby",
  tabTrigger: "ass",
  uuid: "29340695-E426-4F77-8CF7-C59360A549F4"},
 {content: 
   "assert_send`snippet_paren.rb`[${1:object}, :${2:message}, ${0:args}]`snippet_paren.rb end`",
  name: "assert_send(..)",
  scope: "source.ruby",
  tabTrigger: "ass",
  uuid: "7850AD5C-A90D-4E2C-A931-EADFF8D3D9A3"},
 {content: "assert_throws(:${1:expected}) { $0 }",
  name: "assert_throws(..) { .. }",
  scope: "source.ruby",
  tabTrigger: "ast",
  uuid: "05655BD8-23C6-445F-BFD1-420BF25C3030"},
 {content: "attr_accessor :${0:attr_names}",
  name: "attr_accessor ..",
  scope: "source.ruby",
  tabTrigger: "rw",
  uuid: "D7A7D3C9-1714-4C50-8CC0-D83A03883E8F"},
 {content: "attr_reader :${0:attr_names}",
  name: "attr_reader ..",
  scope: "source.ruby",
  tabTrigger: "r",
  uuid: "A150C2D8-25B3-4339-BC92-8A0160A70486"},
 {content: "attr_writer :${0:attr_names}",
  name: "attr_writer ..",
  scope: "source.ruby",
  tabTrigger: "w",
  uuid: "3D383096-A03F-4EF8-9060-3C727045AB34"},
 {content: 
   "${TM_SELECTED_TEXT/([\\t ]*).*/$1/m}begin\n\t${3:${TM_SELECTED_TEXT/(\\A.*)|(.+)|\\n\\z/(?1:$0:(?2:\\t$0))/g}}\n${TM_SELECTED_TEXT/([\\t ]*).*/$1/m}rescue ${1:Exception}${2/.+/ => /}${2:e}\n${TM_SELECTED_TEXT/([\\t ]*).*/$1/m}\t$0\n${TM_SELECTED_TEXT/([\\t ]*).*/$1/m}end\n",
  keyEquivalent: "^W",
  name: "begin … rescue … end",
  scope: "source.ruby - comment",
  tabTrigger: "begin",
  uuid: "0F940CBC-2173-49FF-B6FD-98A62863F8F2"},
 {content: "case ${1:object}\nwhen ${2:condition}\n\t$0\nend",
  name: "case … end",
  scope: "source.ruby",
  tabTrigger: "case",
  uuid: "667083EE-62C3-11D9-B8CF-000D93589AF6"},
 {content: 
   "class ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}} < DelegateClass(${2:ParentClass})\n\tdef initialize${3/(^.*?\\S.*)|.*/(?1:\\()/}${3:args}${3/(^.*?\\S.*)|.*/(?1:\\))/}\n\t\tsuper(${4:del_obj})\n\t\t\n\t\t$0\n\tend\n\t\n\t\nend",
  name: "class .. < DelegateClass .. initialize .. end",
  scope: "source.ruby",
  tabTrigger: "cla-",
  uuid: "AFE1D078-EA16-45F5-AD8A-FAC1B523D861"},
 {content: 
   "class ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}} < ${2:ParentClass}\n\tdef initialize${3/(^.*?\\S.*)|.*/(?1:\\()/}${3:args}${3/(^.*?\\S.*)|.*/(?1:\\))/}\n\t\t$0\n\tend\n\t\n\t\nend",
  name: "class .. < ParentClass .. initialize .. end",
  scope: "source.ruby",
  tabTrigger: "cla",
  uuid: "0CCBE04E-F4E2-4E55-9506-7DE67ACF8388"},
 {content: 
   "require \"test/unit\"\n\nrequire \"${1:library_file_name}\"\n\nclass Test${2:${1/([\\w&&[^_]]+)|./\\u$1/g}} < Test::Unit::TestCase\n\tdef test_${3:case_name}\n\t\t$0\n\tend\nend",
  name: "class .. < Test::Unit::TestCase .. end",
  scope: "source.ruby",
  tabTrigger: "tc",
  uuid: "31D1F145-33AB-4441-BA11-4D1C46928C4C"},
 {content: 
   "class ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}}\n\t$0\nend",
  name: "class .. end",
  scope: "source.ruby",
  tabTrigger: "cla",
  uuid: "BF487539-8085-4FF4-8601-1AD20FABAEDC"},
 {content: 
   "class ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}}\n\tdef initialize${2/(^.*?\\S.*)|.*/(?1:\\()/}${2:args}${2/(^.*?\\S.*)|.*/(?1:\\))/}\n\t\t$0\n\tend\n\t\n\t\nend",
  name: "class .. initialize .. end",
  scope: "source.ruby",
  tabTrigger: "cla",
  uuid: "83EED068-8C1C-4BAF-9893-902DC00616AB"},
 {content: "class << ${1:self}\n\t$0\nend",
  name: "class << self .. end",
  scope: "source.ruby",
  tabTrigger: "cla",
  uuid: "C7AAAE45-487A-4B61-8962-D47675AAC05F"},
 {content: 
   "class ${1:BlankSlate}\n\tinstance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n\t\n\tdef initialize${2/(^.*?\\S.*)|.*/(?1:\\()/}${2:args}${2/(^.*?\\S.*)|.*/(?1:\\))/}\n\t\t@${3:delegate} = ${4:delegate_object}\n\t\t\n\t\t$0\n\tend\n\t\n\tdef method_missing(meth, *args, &block)\n\t\t@${3:delegate}.send(meth, *args, &block)\n\tend\n\t\n\t\nend",
  name: "class BlankSlate .. initialize .. end",
  scope: "source.ruby",
  tabTrigger: "cla",
  uuid: "E98FB8F9-7302-431D-8BF2-275A68A6126C"},
 {content: 
   "split(\"::\").inject(Object) { |par, const| par.const_get(const) }",
  name: "class_from_name()",
  scope: "source.ruby",
  tabTrigger: "clafn",
  uuid: "2DBEE50B-3097-4A57-AB48-3586CF392D8B"},
 {content: "classify { |${1:e}| $0 }",
  name: "classify { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "cl",
  uuid: "5DA9E1E8-2C54-420A-9B84-B040A1AF2B9E"},
 {content: "collect { |${1:e}| $0 }",
  name: "collect { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "col",
  uuid: "669A86AD-936F-4EDA-8E4E-6863804072DA"},
 {content: "Marshal.load(Marshal.dump(${0:obj_to_copy}))",
  name: "deep_copy(..)",
  scope: "source.ruby",
  tabTrigger: "deec",
  uuid: "0BA2B2F1-E767-4A03-9791-0AC0183251F1"},
 {content: "def method_missing(meth, *args, &blk)\n\t$0\nend",
  name: "def method_missing .. end",
  scope: "source.ruby",
  tabTrigger: "defmm",
  uuid: "87D5F8AD-8DA6-4AED-A0D8-B51CAC980445"},
 {content: "def self.${1:class_method_name}\n\t$0\nend",
  name: "def self .. end",
  scope: "source.ruby",
  tabTrigger: "defs",
  uuid: "7C6E88FA-CA0E-4110-8C75-A94E54286A75"},
 {content: "def test_${1:case_name}\n\t$0\nend",
  name: "def test_ .. end",
  scope: "source.ruby",
  tabTrigger: "deft",
  uuid: "00F66D41-25AF-4597-B67D-E540965A5222"},
 {content: "def ${1:method_name}\n\t$0\nend",
  name: "def … end",
  scope: "source.ruby",
  tabTrigger: "def",
  uuid: "4E9A7A73-875C-11D9-897C-000393CBCE2E"},
 {content: "def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}",
  name: "def_delegator ..",
  scope: "source.ruby",
  tabTrigger: "defd",
  uuid: "C44ED391-614F-4BA2-BB0F-87668EEA9954"},
 {content: "def_delegators :${1:@del_obj}, :${0:del_methods}",
  name: "def_delegators ..",
  scope: "source.ruby",
  tabTrigger: "defds",
  uuid: "4A6EFD6B-88E2-4822-AD48-03460EDBC796"},
 {content: "delete_if { |${1:e}| $0 }",
  name: "delete_if { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "deli",
  uuid: "263C94DC-63CF-4BA3-9692-C5582CA8F1AB"},
 {content: "detect { |${1:e}| $0 }",
  name: "detect { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "det",
  uuid: "6C6B9849-9631-49FF-A9F9-F0E94A1512C5"},
 {content: "File.dirname(__FILE__)",
  name: "directory()",
  scope: "source.ruby",
  tabTrigger: "dir",
  uuid: "678BDB83-FBBD-4E8E-BE0B-E1A98AECB247"},
 {content: 
   "downto(${1:0}) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:n}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "downto(0) { |n| .. }",
  scope: "source.ruby",
  tabTrigger: "dow",
  uuid: "4991BB86-736E-4758-B9B2-E4FA90B9368F"},
 {content: "each { |${1:e}| $0 }",
  name: "each { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "ea",
  uuid: "ECBA4CA0-275F-460E-85BE-E82FEA2E2B26"},
 {content: "each_byte { |${1:byte}| $0 }",
  name: "each_byte { |byte| .. }",
  scope: "source.ruby",
  tabTrigger: "eab",
  uuid: "338EC03D-3FF4-4435-94E8-1CEF20CEC75D"},
 {content: "each_char { |${1:chr}| $0 }",
  name: "each_char { |chr| .. }",
  scope: "source.ruby",
  tabTrigger: "eac-",
  uuid: "FDD73070-6D32-4301-A86A-C55B77C3D8ED"},
 {content: "each_cons(${1:2}) { |${2:group}| $0 }",
  name: "each_cons(..) { |group| .. }",
  scope: "source.ruby",
  tabTrigger: "eac-",
  uuid: "3C04589C-5127-478E-97B3-CA7DD2EA7ECD"},
 {content: "each_index { |${1:i}| $0 }",
  name: "each_index { |i| .. }",
  scope: "source.ruby",
  tabTrigger: "eai",
  uuid: "689120C9-AB40-4081-8268-9362E00FA4A0"},
 {content: "each_key { |${1:key}| $0 }",
  name: "each_key { |key| .. }",
  scope: "source.ruby",
  tabTrigger: "eak",
  uuid: "E54F7077-3C33-4B53-A4F7-21E16132D3AD"},
 {content: "each_line$1 { |${2:line}| $0 }",
  name: "each_line { |line| .. }",
  scope: "source.ruby",
  tabTrigger: "eal",
  uuid: "02913388-EE8E-4C55-AC94-94F3D751F47E"},
 {content: "each_pair { |${1:name}, ${2:val}| $0 }",
  name: "each_pair { |name, val| .. }",
  scope: "source.ruby",
  tabTrigger: "eap",
  uuid: "7A3CECED-452B-438E-A5C6-95B6BDC43243"},
 {content: "each_slice(${1:2}) { |${2:group}| $0 }",
  name: "each_slice(..) { |group| .. }",
  scope: "source.ruby",
  tabTrigger: "eas-",
  uuid: "CD748479-D2A4-4AB5-95BD-4C89512BA210"},
 {content: "each_value { |${1:val}| $0 }",
  name: "each_value { |val| .. }",
  scope: "source.ruby",
  tabTrigger: "eav",
  uuid: "844DBD70-BC23-4FBF-9C18-F4A610239DF2"},
 {content: "each_with_index { |${1:e}, ${2:i}| $0 }",
  name: "each_with_index { |e, i| .. }",
  scope: "source.ruby",
  tabTrigger: "eawi",
  uuid: "1DD13CF5-39C0-4F10-B655-56DACEBC7F94"},
 {content: "elsif ${1:condition}\n\t$0",
  name: "elsif ...",
  scope: "source.ruby",
  tabTrigger: "elsif",
  uuid: "CD1609FA-47DA-4EE4-9C5B-5C56D953F5B1"},
 {content: "extend Forwardable",
  name: "extend Forwardable",
  scope: "source.ruby",
  tabTrigger: "Forw-",
  uuid: "7F46C90A-595B-4B83-A4F7-058F63CE4218"},
 {content: 
   "fetch(${1:name}) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:key}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "fetch(name) { |key| .. }",
  scope: "source.ruby",
  tabTrigger: "fet",
  uuid: "1F72122A-35AD-4BA1-AA01-889A10319666"},
 {content: 
   "fill(${1:range}) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:i}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "fill(range) { |i| .. }",
  scope: "source.ruby",
  tabTrigger: "fil",
  uuid: "6021BBDC-4AAD-447B-A0C2-A4BB31721558"},
 {content: "find { |${1:e}| $0 }",
  name: "find { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "fin",
  uuid: "E23FE534-8061-4828-98A5-46270B6910B0"},
 {content: "find_all { |${1:e}| $0 }",
  name: "find_all { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "fina",
  uuid: "197709C5-8382-4A59-B6D7-31A0CC0F23B7"},
 {content: "inject(Array.new) { |${1:arr}, ${2:a}| ${1:arr}.push(*${2:a}) }",
  name: "flatten_once()",
  scope: "source.ruby",
  tabTrigger: "flao",
  uuid: "3DDB99C4-486D-4C11-A217-5680FDD8EC19"},
 {content: 
   "flunk`snippet_paren.rb`\"${0:Failure message.}\"`snippet_paren.rb end`",
  name: "flunk(..)",
  scope: "source.ruby",
  tabTrigger: "fl",
  uuid: "DB457094-1AC9-4856-AEFC-43A9576B6775"},
 {content: "grep(${1:/${2:pattern}/}) { |${3:match}| $0 }",
  name: "grep(/pattern/) { |match| .. }",
  scope: "source.ruby",
  tabTrigger: "gre",
  uuid: "9D9E7BA3-8C5D-4532-83EA-326358C2F5BB"},
 {content: 
   "gsub(/${1:pattern}/) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:match}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "gsub(/../) { |match| .. }",
  scope: "source.ruby",
  tabTrigger: "gsu",
  uuid: "2514FC26-468C-4D08-A788-494A444C4286"},
 {content: "if ${1:condition}\n\t$2\nelse\n\t$3\nend",
  name: "if … else … end",
  scope: "source.ruby",
  tabTrigger: "ife",
  uuid: "667082E6-62C3-11D9-B8CF-000D93589AF6"},
 {content: "if ${1:condition}\n\t$0\nend",
  name: "if … end",
  scope: "source.ruby",
  tabTrigger: "if",
  uuid: "6670835F-62C3-11D9-B8CF-000D93589AF6"},
 {content: "include Comparable\n\ndef <=>(other)\n\t$0\nend",
  name: "include Comparable ..",
  scope: "source.ruby",
  tabTrigger: "Comp",
  uuid: "6C9D6B3D-D8E9-4606-9534-577C8D21FFF6"},
 {content: "include Enumerable\n\ndef each(&block)\n\t$0\nend",
  name: "include Enumerable ..",
  scope: "source.ruby",
  tabTrigger: "Enum",
  uuid: "AAD5D511-6BE7-41DA-8F2B-1593A48FBB08"},
 {content: "inject${1/.+/(/}${1:init}${1/.+/)/} { |${2:mem}, ${3:var}| $0 }",
  name: "inject(init) { |mem, var| .. }",
  scope: "source.ruby",
  tabTrigger: "inj",
  uuid: "B563E0D7-513D-49B4-9733-1B04A6F25A74"},
 {content: 
   "lambda { ${1/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${1:args}${1/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "lambda { |args| .. }",
  scope: "source.ruby",
  tabTrigger: "lam",
  uuid: "21E75321-0CF7-45E8-A297-BCC7C0DDDD15"},
 {content: "loop { $0 }",
  name: "loop { .. }",
  scope: "source.ruby",
  tabTrigger: "loo",
  uuid: "567E3D18-BF2B-4379-8927-2777EC9F495E"},
 {content: "map { |${1:e}| $0 }",
  name: "map { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "map",
  uuid: "5A3754FC-43A3-462B-AB42-E3E951872E6F"},
 {content: "enum_with_index.map { |${1:e}, ${2:i}| $0 }",
  name: "map_with_index { |e, i| .. }",
  scope: "source.ruby",
  tabTrigger: "mapwi-",
  uuid: "BD4CFD7B-1AC0-4569-9BDA-FD491F41F4E6"},
 {content: "max { |a, b| $0 }",
  name: "max { |a, b| .. }",
  scope: "source.ruby",
  tabTrigger: "max",
  uuid: "98182B9E-7C61-4824-BE4C-9CD69C816037"},
 {content: "min { |a, b| $0 }",
  name: "min { |a, b| .. }",
  scope: "source.ruby",
  tabTrigger: "min",
  uuid: "CB03D11A-7204-48D0-92C1-E109034403E7"},
 {content: 
   "module ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}}\n\tmodule ClassMethods\n\t\t$0\n\tend\n\t\n\tmodule InstanceMethods\n\t\t\n\tend\n\t\n\tdef self.included(receiver)\n\t\treceiver.extend         ClassMethods\n\t\treceiver.send :include, InstanceMethods\n\tend\nend",
  name: "module .. ClassMethods .. end",
  scope: "source.ruby",
  tabTrigger: "mod",
  uuid: "A71A18CF-2D71-4BFF-AA0C-D9B8C59BC4EB"},
 {content: 
   "module ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}}\n\t$0\nend",
  name: "module .. end",
  scope: "source.ruby",
  tabTrigger: "mod",
  uuid: "2B73EC5F-06D2-460C-A14F-6FA05AFCF0CC"},
 {content: 
   "module ${1:${TM_FILENAME/(?:\\A|_)([A-Za-z0-9]+)(?:\\.rb)?/(?2::\\u$1)/g}}\n\tmodule_function\n\t\n\t$0\nend",
  name: "module .. module_function .. end",
  scope: "source.ruby",
  tabTrigger: "mod",
  uuid: "0E85EC81-2FAB-4648-B590-119CC1BB6E41"},
 {content: "namespace :${1:${TM_FILENAME/\\.\\w+//}} do\n\t$0\nend",
  name: "namespace :.. do .. end",
  scope: "source.ruby",
  tabTrigger: "nam",
  uuid: "05EE1046-5ED7-48F5-8693-1F066163B2F4"},
 {content: 
   "open(${1:\"${2:path/or/url/or/pipe}\"}${3/(^[rwab+]+$)|.*/(?1:, \")/}${3:w}${3/(^[rwab+]+$)|.*/(?1:\")/}) { |${4:io}| $0 }",
  name: "open(\"path/or/url\", \"w\") { |io| .. }",
  scope: "source.ruby",
  tabTrigger: "ope",
  uuid: "418F1817-255F-430A-B09A-222964ED66A7"},
 {content: 
   "opts.on( \"-${1:o}\", \"--${2:long-option-name}\"${3/^\\s*$|(.*\\S.*)/(?1:, )/}${3:String},\n         \"${4:Option description.}\" ) do |${6:opt}|\n\t$0\nend",
  name: "option(..)",
  scope: "source.ruby",
  tabTrigger: "opt",
  uuid: "209D5D73-7A77-4931-A158-3FB6D5B48A88"},
 {content: 
   "require \"optparse\"\n\noptions = {${1::default => \"args\"}}\n\nARGV.options do |opts|\n\topts.banner = \"Usage:  \#{File.basename(\\$PROGRAM_NAME)} [OPTIONS]${2/^\\s*$|(.*\\S.*)/(?1: )/}${2:OTHER_ARGS}\"\n\t\n\topts.separator \"\"\n\topts.separator \"Specific Options:\"\n\t\n\t$0\n\t\n\topts.separator \"Common Options:\"\n\t\n\topts.on( \"-h\", \"--help\",\n\t         \"Show this message.\" ) do\n\t\tputs opts\n\t\texit\n\tend\n\t\n\tbegin\n\t\topts.parse!\n\trescue\n\t\tputs opts\n\t\texit\n\tend\nend\n",
  name: "option_parse { .. }",
  scope: "source.ruby",
  tabTrigger: "optp",
  uuid: "C3C48948-4F49-484E-A8DE-DEB44723099E"},
 {content: "partition { |${1:e}| $0 }",
  name: "partition { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "par",
  uuid: "52B8BF63-F09E-4789-8407-06168A8AE666"},
 {content: "File.join(File.dirname(__FILE__), *%w[${1:rel path here}])",
  name: "path_from_here( .. )",
  scope: "source.ruby",
  tabTrigger: "patfh",
  uuid: "A4E89D97-D5ED-48BB-B5FF-1BFB79211FCD"},
 {content: "sort_by { rand }",
  name: "randomize()",
  scope: "source.ruby",
  tabTrigger: "ran",
  uuid: "B0CE57EC-FB2E-4482-8CCE-448DC2588715"},
 {content: "reject { |${1:e}| $0 }",
  name: "reject { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "rej",
  uuid: "B79B9DAB-ABEF-44F6-BF7E-635E7BA11DFD"},
 {content: "require \"$0\"",
  name: "require \"..\"",
  scope: "source.ruby",
  tabTrigger: "req",
  uuid: "97DE939B-D243-4D5C-B953-1C9090912E7C"},
 {content: 
   "require \"test/unit\"\n\nrequire \"tc_${1:test_case_file}\"\nrequire \"tc_${2:test_case_file}\"\n",
  name: "require \"tc_..\" ..",
  scope: "source.ruby",
  tabTrigger: "ts",
  uuid: "5297FD0C-98B1-4514-BBD1-1516810BECA6"},
 {content: "require \"$0\"",
  name: "require_gem \"..\"",
  scope: "source.ruby",
  tabTrigger: "reqg-",
  uuid: "34FEBB9F-73CD-4DD4-A0A3-1CF2A5E3DE78"},
 {content: "results.report(\"${1:name}:\") { TESTS.times { $0 } }",
  name: "results.report(..) { .. }",
  scope: "source.ruby",
  tabTrigger: "rep",
  uuid: "1C60D589-DD46-4109-90CA-6B34AEA2F298"},
 {content: "reverse_each { |${1:e}| $0 }",
  name: "reverse_each { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "reve",
  uuid: "F3C5F719-EF03-4FF7-A777-4A8402FE3B6B"},
 {content: "scan(/${1:pattern}/) { |${2:match}| $0 }",
  name: "scan(/../) { |match| .. }",
  scope: "source.ruby",
  tabTrigger: "sca",
  uuid: "66802933-B49F-479B-9DF9-1D898FF1FA90"},
 {content: "select { |${1:e}| $0 }",
  name: "select { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "sel",
  uuid: "4E409AA4-E7D4-46B7-A4E9-E32F992B33E9"},
 {content: "class << self; self end",
  name: "singleton_class()",
  scope: "source.ruby",
  tabTrigger: "sinc",
  uuid: "B46D35B8-5DEB-4C10-A110-BA1965A2EB9C"},
 {content: "sort { |a, b| $0 }",
  name: "sort { |a, b| .. }",
  scope: "source.ruby",
  tabTrigger: "sor",
  uuid: "9E0B4D4B-2956-4B3A-800A-3D8CE54E66BF"},
 {content: "sort_by { |${1:e}| $0 }",
  name: "sort_by { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "sorb",
  uuid: "BA9440C9-36C3-4031-BB61-67B581D5B179"},
 {content: 
   "step(${1:2}) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:n}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "step(2) { |e| .. }",
  scope: "source.ruby",
  tabTrigger: "ste",
  uuid: "36853A11-0307-4AE7-B835-7CE6358717A5"},
 {content: 
   "sub(/${1:pattern}/) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:match}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "sub(/../) { |match| .. }",
  scope: "source.ruby",
  tabTrigger: "sub",
  uuid: "8021944C-CEA4-4983-8D1C-78D18D4004A1"},
 {content: 
   "desc \"${1:Task description}\"\ntask :${2:${3:task_name} => ${4:[:${5:dependent, :tasks}]}} do\n\t$0\nend",
  name: "task :task_name => [:dependent, :tasks] do .. end",
  scope: "source.ruby",
  tabTrigger: "tas",
  uuid: "A7BF14E6-59B1-42E5-8755-8A72BF13685E"},
 {content: 
   "times { ${1/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${1:n}${1/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "times { |n| .. }",
  scope: "source.ruby",
  tabTrigger: "tim",
  uuid: "206D54AF-E67A-4DF0-B7F4-3D42FEB81685"},
 {content: 
   "transaction${1/(^.*?\\S.*)|.*/(?1:\\()/}${1:true}${1/(^.*?\\S.*)|.*/(?1:\\))/} { $0 }",
  name: "transaction( .. ) { .. }",
  scope: "source.ruby",
  tabTrigger: "tra",
  uuid: "46BF99AD-E172-4D49-BCF7-072F4730E1D9"},
 {content: "ARGF.each_line$1 do |${2:line}|\n\t$0\nend",
  name: "unix_filter { .. }",
  scope: "source.ruby",
  tabTrigger: "unif",
  uuid: "8CEF9711-88D5-4202-AFB9-29EF4EFD25C1"},
 {content: "unless ${1:condition}\n\t$0\nend",
  name: "unless … end",
  scope: "source.ruby",
  tabTrigger: "unless",
  uuid: "F53E098D-D08E-4CE2-990A-B0BD70E60614"},
 {content: "until ${1:condition}\n\t$0\nend",
  name: "until ... end",
  scope: "source.ruby",
  tabTrigger: "until",
  uuid: "488B387C-50C0-4B2D-9260-5A7E7EAF9B42"},
 {content: 
   "upto(${1:1.0/0.0}) { ${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:|)/}${2:n}${2/(^(?<var>\\s*(?:\\*|\\*?[a-z_])[a-zA-Z0-9_]*\\s*)(,\\g<var>)*,?\\s*$)|.*/(?1:| )/}$0 }",
  name: "upto(1.0/0.0) { |n| .. }",
  scope: "source.ruby",
  tabTrigger: "upt",
  uuid: "51954118-81D7-42B6-9A10-BE23D8B9FFE2"},
 {content: 
   "if ARGV.$1\n\tabort \"Usage:  \#{\\$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"\nend",
  name: "usage_if()",
  scope: "source.ruby",
  tabTrigger: "usai",
  uuid: "21C0D711-F32A-4665-AA0D-B136F9DD3945"},
 {content: 
   "unless ARGV.$1\n\tabort \"Usage:  \#{\\$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"\nend",
  name: "usage_unless()",
  scope: "source.ruby",
  tabTrigger: "usau",
  uuid: "49D69DEC-6991-49F4-8D9B-BA60BFDD3D17"},
 {content: "when ${1:condition}\n\t$0",
  name: "when …",
  scope: "source.ruby",
  tabTrigger: "when",
  uuid: "48D8E498-C9A5-4B1B-9A18-71A5860276FB"},
 {content: "while ${1:condition}\n\t$0\nend",
  name: "while ... end",
  scope: "source.ruby",
  tabTrigger: "while",
  uuid: "D121FC61-96A4-4B8F-8709-280EDA876FF3"},
 {content: "REXML::Document.new(File.read(${1:\"${2:path/to/file}\"}))",
  name: "xmlread(..)",
  scope: "source.ruby",
  tabTrigger: "xml-",
  uuid: "B904D4AA-D15D-48A4-8EB2-563BAF489332"},
 {content: "elements.each(${1:\"${2://XPath}\"}) do |${3:node}|\n\t$0\nend",
  name: "xpath(..) { .. }",
  scope: "source.ruby",
  tabTrigger: "xpa",
  uuid: "CC300D44-6C3F-4F6C-A8AB-86F5A2DC57CF"},
 {content: "zip(${1:enums}) { |${2:row}| $0 }",
  name: "zip(enums) { |row| .. }",
  scope: "source.ruby",
  tabTrigger: "zip",
  uuid: "FD010022-E0E7-44DB-827F-33F7D9310DA2"}]
