%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
;ELC ;;; Compiled ;;; in Emacs version 25.2.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-declare-group 'ruby nil "Major mode for editing Ruby code." :prefix "ruby-" :group 'languages) #@38 Keywords at the beginning of blocks. (defconst ruby-block-beg-keywords '("class" "module" "def" "if" "unless" "case" "while" "until" "for" "begin" "do") (#$ . 513)) #@42 Regexp to match the beginning of blocks. (defconst ruby-block-beg-re (regexp-opt ruby-block-beg-keywords) (#$ . 684)) #@52 Regexp to match keywords that nest without blocks. (defconst ruby-non-block-do-re "\\_<\\(for\\|rescue\\|until\\|while\\)\\_>" (#$ . 808)) #@52 Regexp to match where the indentation gets deeper. (defconst ruby-indent-beg-re "^\\(\\s *\\(?:class\\|def\\|module\\)\\|\\(?:begin\\|case\\|for\\|if\\|un\\(?:less\\|til\\)\\|while\\)\\)\\_>" (#$ . 953)) #@57 Modifiers that are the same as the beginning of blocks. (defconst ruby-modifier-beg-keywords '("if" "unless" "while" "until") (#$ . 1163)) #@60 Regexp to match modifiers same as the beginning of blocks. (defconst ruby-modifier-beg-re (regexp-opt ruby-modifier-beg-keywords) (#$ . 1308)) #@28 Regexp to match modifiers. (defconst ruby-modifier-re (byte-code "\301\302B!\207" [ruby-modifier-beg-keywords regexp-opt "rescue"] 3) (#$ . 1457)) #@78 Keywords where the indentation gets shallower in middle of block statements. (defconst ruby-block-mid-keywords '("then" "else" "elsif" "when" "rescue" "ensure") (#$ . 1611)) #@85 Regexp to match where the indentation gets shallower in middle of block statements. (defconst ruby-block-mid-re (regexp-opt ruby-block-mid-keywords) (#$ . 1791)) #@35 Regexp to match boolean keywords. (defconst ruby-block-op-keywords '("and" "or" "not") (#$ . 1959)) #@42 Regexp to match hanging block modifiers. (defconst ruby-block-hanging-re (byte-code "\302\303 \"!\207" [ruby-modifier-beg-keywords ruby-block-op-keywords regexp-opt append] 4) (#$ . 2065)) (defconst ruby-block-end-re "\\_<end\\_>") #@65 Regexp to match the beginning of a defun, in the general sense. (defconst ruby-defun-beg-re "\\(def\\|class\\|module\\)" (#$ . 2304)) #@61 Regexp to match the beginning of a singleton class context. (defconst ruby-singleton-class-re "class\\s *<<" (#$ . 2444)) #@45 Regexp to match the beginning of a heredoc. (defconst ruby-here-doc-beg-re "\\(<\\)<\\([~-]\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)" (#$ . 2572)) (defconst ruby-expression-expansion-re "\\(?:[^\\]\\|\\=\\)\\(\\\\\\\\\\)*\\(#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\|\\$[^a-zA-Z \n]\\)\\)") #@122 Return a regexp to find the end of a heredoc. This should only be called after matching against `ruby-here-doc-beg-re'. (defalias 'ruby-here-doc-end-match #[nil "\300\301\302!\205 \303\304\301\305!\206 \301\306!\206 \301\307!!Q\207" ["^" match-string 2 "[ ]*" regexp-quote 4 5 6] 5 (#$ . 2936)]) (defconst ruby-delimiter (concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\_<\\(" ruby-block-beg-re "\\)\\_>\\|" ruby-block-end-re "\\|^=begin\\|" ruby-here-doc-beg-re)) #@55 Regexp to match where the indentation gets shallower. (defconst ruby-negative (concat "^[ ]*\\(\\(" ruby-block-mid-re "\\)\\>\\|" ruby-block-end-re "\\|}\\|\\]\\)") (#$ . 3411)) #@28 Regexp to match operators. (defconst ruby-operator-re "[-,.+*/%&|^~=<>:]\\|\\\\$" (#$ . 3596)) #@51 List of characters that symbol names may contain. (defconst ruby-symbol-chars "a-zA-Z0-9_" (#$ . 3697)) #@26 Regexp to match symbols. (defconst ruby-symbol-re (concat "[" ruby-symbol-chars "]") (#$ . 3807)) (defvar ruby-use-smie t) #@27 Keymap used in Ruby mode. (defvar ruby-mode-map (byte-code "\302 \204 \303\304\305#\210\303\306\307#\210\303\310\311#\210 \203# \303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210)\207" [map ruby-use-smie make-sparse-keymap define-key [134217730] ruby-backward-sexp [134217734] ruby-forward-sexp [134217745] ruby-indent-exp [134217732] smie-down-list [134217744] ruby-beginning-of-block [134217742] ruby-end-of-block "{" ruby-toggle-block "'" ruby-toggle-string-quotes] 4) (#$ . 3936)) #@16 Ruby Mode Menu (defvar ruby-mode-menu nil (#$ . 4476)) (easy-menu-do-define 'ruby-mode-menu ruby-mode-map "Ruby Mode Menu" '("Ruby" ["Beginning of Block" ruby-beginning-of-block t] ["End of Block" ruby-end-of-block t] ["Toggle Block" ruby-toggle-block t] "--" ["Toggle String Quotes" ruby-toggle-string-quotes t] "--" ["Backward Sexp" ruby-backward-sexp :visible (not ruby-use-smie)] ["Backward Sexp" backward-sexp :visible ruby-use-smie] ["Forward Sexp" ruby-forward-sexp :visible (not ruby-use-smie)] ["Forward Sexp" forward-sexp :visible ruby-use-smie] ["Indent Sexp" ruby-indent-exp :visible (not ruby-use-smie)] ["Indent Sexp" prog-indent-sexp :visible ruby-use-smie])) #@35 Syntax table to use in Ruby mode. (defvar ruby-mode-syntax-table (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\316#\210\302\322\316#\210\302\323\324#\210\302\325\324#\210\302\326\324#\210\302\327\324#\210\302\330\324#\210\302\331\324#\210\302\332\324#\210\302\333\324#\210\302\334\324#\210\302\335\324#\210\302\336\324#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\302\351\352#\210)\207" [table make-syntax-table modify-syntax-entry 39 "\"" 34 96 35 "<" 10 ">" 92 "\\" 36 "'" 95 "_" 58 64 60 "." 62 38 124 37 61 47 43 42 45 59 40 "()" 41 ")(" 123 "(}" 125 "){" 91 "(]" 93 ")["] 4) (#$ . 5157)) (byte-code "\300\301\302\303\304\305\306\307\310\311& \210\300\312\313\314\304\315\306\307\310\316& \210\300\317\320\321\304\315\306\307\310\316& \207" [custom-declare-variable ruby-indent-tabs-mode nil "Indentation can insert tabs in Ruby mode if this is non-nil." :type boolean :group ruby :safe booleanp ruby-indent-level 2 "Indentation of Ruby statements." integer integerp ruby-comment-column (default-value 'comment-column) "Indentation column of comments."] 10) #@61 Keywords that can be used in `ruby-align-to-stmt-keywords'. (defconst ruby-alignable-keywords '(if while unless until begin case for def) (#$ . 6415)) (byte-code "\301\302\303\304\305\306\307\310\311\312\313\306\314\315\"BFF\316\317\320\321\322\323&\210\301\324\325\326\305\327\316\317\320\330\322\323&\210\301\331\332\333\305\327\316\317\320\330& \210\301\334\335\336\305\337\316\317&\210\301\340\341\342\305\343\316\317&\210\301\344\345\346\305\347\316\317&\210\301\350\332\351\305\327\316\317&\210\301\352\353\354\305\355\316\317\322\323& \210\301\356\357\360\305\361\316\317\322\323& \210\301\362\332\363\305\327\316\317&\210\364\365!\207" [ruby-alignable-keywords custom-declare-variable ruby-align-to-stmt-keywords '(def) "Keywords after which we align the expression body to statement.\n\nWhen nil, an expression that begins with one these keywords is\nindented to the column of the keyword. Example:\n\n tee = if foo\n bar\n else\n qux\n end\n\nIf this value is t or contains a symbol with the name of given\nkeyword, the expression is indented to align to the beginning of\nthe statement:\n\n tee = if foo\n bar\n else\n qux\n end\n\nOnly has effect when `ruby-use-smie' is t.\n" :type choice (const :tag "None" nil) (const :tag "All" t) repeat :tag "User defined" mapcar #[(kw) "\301D\207" [kw const] 2] :group ruby :safe listp :version "24.4" ruby-align-chained-calls nil "If non-nil, align chained method calls.\n\nEach method call on a separate line will be aligned to the column\nof its parent.\n\nOnly has effect when `ruby-use-smie' is t." boolean booleanp ruby-deep-arglist t "Deep indent lists in parenthesis when non-nil.\nAlso ignores spaces after parenthesis when `space'.\nOnly has effect when `ruby-use-smie' is nil." ruby-deep-indent-paren '(40 91 93 t) "Deep indent lists in parenthesis when non-nil.\nThe value t means continuous line.\nAlso ignores spaces after parenthesis when `space'.\nOnly has effect when `ruby-use-smie' is nil." (choice (const nil) character (repeat (choice character (cons character (choice (const nil) (const t))) (const t)))) ruby-deep-indent-paren-style 'space "Default deep indent style.\nOnly has effect when `ruby-use-smie' is nil." (choice (const t) (const nil) (const space)) ruby-encoding-map '((us-ascii) (shift-jis . cp932) (shift_jis . cp932) (japanese-cp932 . cp932)) "Alist to map encoding name from Emacs to Ruby.\nAssociating an encoding name with nil means it needs not be\nexplicitly declared in magic comment." (repeat (cons (symbol :tag "From") (symbol :tag "To"))) ruby-insert-encoding-magic-comment "Insert a magic Ruby encoding comment upon save if this is non-nil.\nThe encoding will be auto-detected. The format of the encoding comment\nis customizable via `ruby-encoding-magic-comment-style'.\n\nWhen set to `always-utf8' an utf-8 comment will always be added,\neven if it's not required." ruby-encoding-magic-comment-style 'ruby "The style of the magic encoding comment to use." (choice (const :tag "Emacs Style" emacs) (const :tag "Ruby Style" ruby) (const :tag "Custom Style" custom)) ruby-custom-encoding-magic-comment-template "# encoding: %s" "A custom encoding comment template.\nIt is used when `ruby-encoding-magic-comment-style' is set to `custom'." string ruby-use-encoding-map "Use `ruby-encoding-map' to set encoding magic comment if this is non-nil." require smie] 15) (defconst ruby-smie-grammar '((:smie-closer-alist (#14="def" . "end") (#13="begin" . "end") (#12="do" . "end") (#11="class" . "end") (#10="module" . "end") (#9="for" . "end") (#8="[" . #16="]") ("{" . "}") (#7="while" . "end") (#6="until" . "end") (#5="unless" . "end") (#4="if" . "end") (#3="case" . #15="end") (#2="opening-|" . #1="closing-|")) ("**" 372 383) ("%" 346 359) ("/" 347 360) ("*" 348 361) ("-" 322 334) ("+" 323 335) (">>" 298 310) ("<<" 299 311) ("|" 272 285) ("&" 273 286) ("^" 274 287) ("<=" 242 258) ("<" 243 259) (">=" 244 260) (">" 245 261) ("!~" 246 227) ("=~" 247 228) ("!=" 213 229) ("===" 214 230) ("==" 215 231) ("<=>" 216 200) ("||" 188 201) ("&&" 189 202) ("..." 150 176) (".." 151 177) ("||=" 152 126) ("&&=" 153 127) (">>=" 154 128) ("<<=" 155 129) ("^=" 156 130) ("|=" 157 131) ("&=" 158 132) ("**=" 159 133) ("%=" 160 134) ("/=" 161 135) ("*=" 162 136) ("-=" 163 137) ("+=" 164 138) (#1# 0 (405)) (#2# (406) 0) ("when" 17 17) ("elsif" 15 15) ("else" 28 29) ("then" 30 41) ("=>" 104 103) ("in" 407 63) ("rescue" 16 16) ("ensure" 16 16) (#3# (408) 1) (#4# (409) 1) (#5# (410) 1) (#6# (411) 1) (#7# (412) 1) ("{" (413) 2) (#8# (414) 3) (#9# (415) 1) (#10# (416) 1) (#11# (417) 1) (#12# (418) 1) (#13# (419) 1) (#14# (420) 1) ("?" 165 4) ("," 91 91) ("=" 115 102) (" @ " 421 77) ("." 394 394) (#15# 1 (422)) ("}" 2 (423)) (#16# 3 (424)) (":" 4 139) ("or" 64 78) ("and" 65 79) (";" 52 52) ("iuwu-mod" 66 80))) (defalias 'ruby-smie--bosp #[nil "\212\300\301x\210n\203 `S\206 `Sf\302=?\206 `Sf\303>)\207" [" " nil 92 (59 61)] 2]) (defalias 'ruby-smie--implicit-semi-p #[nil "\212\300\301x\210n\206Q `Sf\302>\206Q `Sf\303>\203$ \304`S!@\305>?\206Q `Sf\306=\2035 \212\307 )\310\235\206Q \304`S!@\311=\203H \212\307 )\312\235\206Q \212\313d!\210\314\315!))?\207" [" " nil (91 40) (59 45 43 42 47 58 46 44 92 38 62 60 37 126 94 61 63) syntax-after (3 7 15) 124 ruby-smie--backward-token ("|" "||") 2 ("iuwu-mod" "and" "or") forward-comment looking-at "&?\\."] 2]) (defalias 'ruby-smie--redundant-do-p #[(&optional skip) "\212\203 \301\302!\210\303\304\305!8\306\235)\207" [skip backward-word-strictly 1 2 smie-backward-sexp ";" ("while" "until" "for")] 3]) (defalias 'ruby-smie--opening-pipe-p #[nil "\212`Sf\300=\203\f \301u\210\302\303x\210`Sf\304=\206 \305\306`\307Z\")\207" [124 -1 " \n" nil 123 looking-back "\\_<do" 2] 4]) (defalias 'ruby-smie--closing-pipe-p #[nil "\212`Sf\300=\203\f \301u\210\302\303\304 \305#\205 \306 )\207" [124 -1 re-search-backward "|" line-beginning-position t ruby-smie--opening-pipe-p] 4]) (defalias 'ruby-smie--args-separator-p #[(pos) "\301 W\205B hz\302=\204\"