   :interpreter "ruby"
   :init
   (add-hook 'ruby-mode-hook 'flycheck-mode)
-  (define-docset!      ruby-mode "rb,ruby,rubygem")
-  (define-builder!     ruby-mode "rake %s" "Rakefile")
+  (define-docset! ruby-mode "rb,ruby,rubygem")
+  (define-builder! ruby-mode "rake %s" "Rakefile")
   (define-env-command! ruby-mode "ruby --version | cut -d' ' -f2")
+  (define-company-backend! ruby-mode (dabbrev-code))
+
   :config
-  ;; Formatting
-  (setq ruby-deep-indent-paren t)
-
+  (setq ruby-deep-indent-paren t) ; Formatting
   (add-hook! ruby-mode
     (electric-indent-local-mode +1)
     (setq narf-electric-indent-words '("else" "end" "elseif")))

  ;; Don't interfere with my custom RET behavior
  (define-key ruby-mode-map [?\n] nil)

  (use-package yard-mode :init (add-hook 'ruby-mode-hook 'yard-mode))

  (use-package robe
    :commands (robe-mode robe-start ruby-load-file company-robe)
    :init
    (add-hook! ruby-mode
      (narf|ruby-load-file)
      (add-hook 'after-save-hook 'narf|ruby-load-file nil t))
    :config
    (require 'company-robe)
    (define-company-backend! ruby-mode (robe)))

  (use-package ruby-refactor
    :init (add-hook 'ruby-mode-hook 'emr-initialize)

  :commands (inf-ruby inf-ruby-console-auto)
  :init
  (define-repl! ruby-mode inf-ruby)
  (evil-set-initial-state 'inf-ruby-mode 'emacs)
  :config
  (require 'company-inf-ruby)
  (define-company-backend! inf-ruby-mode (inf-ruby)))

;;
(define-project-type! rake "rake"
  :files ("Rakefile"))

(define-project-type! vagrant "vagrant"
  :files ("Vagrantfile"))

(provide 'module-ruby)
;;; module-ruby.el ends here
