diff options
Diffstat (limited to 'oni-ruby')
-rw-r--r-- | oni-ruby/Cask | 12 | ||||
-rw-r--r-- | oni-ruby/oni-ruby.el | 60 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/ProductSeed | 5 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/ProductSeedHW | 5 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/ProductSeedHWGroup | 8 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/describe | 7 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/do | 6 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/factory | 9 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/fill_in | 5 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/mod | 11 | ||||
-rw-r--r-- | oni-ruby/snippets/ruby-mode/reduce | 5 |
11 files changed, 133 insertions, 0 deletions
diff --git a/oni-ruby/Cask b/oni-ruby/Cask new file mode 100644 index 0000000..6b8c51a --- /dev/null +++ b/oni-ruby/Cask @@ -0,0 +1,12 @@ +(source gnu) +(source melpa) + +(package-file "./oni-ruby.el") + +(depends-on "ruby-mode") +(depends-on "oni-yasnippet" :git "../" :files ("oni-yasnippet.el")) +(depends-on "oni-fci" :git "../" :files ("oni-fci.el")) + +(files + "*.el" + ("snippets" "./snippets/*")) diff --git a/oni-ruby/oni-ruby.el b/oni-ruby/oni-ruby.el new file mode 100644 index 0000000..6e84184 --- /dev/null +++ b/oni-ruby/oni-ruby.el @@ -0,0 +1,60 @@ +;;; oni-ruby.el --- Ruby configuration -*- lexical-binding: t; -*- + +;; Copyright (C) 2019 Tom Willemse + +;; Author: Tom Willemse <tom@ryuslash.org> +;; Keywords: local +;; Version: 20190828000216 +;; Package-Requires: (ruby-mode oni-fci oni-yasnippet) + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Ruby configuration. + +;;; Code: + +(require 'yasnippet) + +(defconst oni-ruby-root + (file-name-directory + (or load-file-name + (buffer-file-name))) + "The directory where ‘oni-ruby’ was loaded from.") + +(defconst oni-ruby-snippets-dir + (expand-file-name "snippets" oni-ruby-root) + "The directory where ‘oni-ruby’ stores its snippets.") + +;;;###autoload +(defun oni-ruby-snippets-initialize () + "Initialize the snippets for ‘oni-ruby’." + (when (boundp 'yas-snippet-dirs) + (add-to-list 'yas-snippet-dirs oni-ruby-snippets-dir)) + (yas-load-directory oni-ruby-snippets-dir)) + +(add-hook 'ruby-mode-hook 'electric-indent-local-mode) +(add-hook 'ruby-mode-hook 'electric-pair-local-mode) +(add-hook 'ruby-mode-hook 'fci-mode) + +;;;###autoload +(with-eval-after-load 'ruby-mode + (with-eval-after-load 'yasnippet + (oni-ruby-snippets-initialize))) + +;;;###autoload(with-eval-after-load 'ruby-mode (require 'oni-ruby)) + +(provide 'oni-ruby) +;;; oni-ruby.el ends here diff --git a/oni-ruby/snippets/ruby-mode/ProductSeed b/oni-ruby/snippets/ruby-mode/ProductSeed new file mode 100644 index 0000000..7e836c2 --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/ProductSeed @@ -0,0 +1,5 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ProductSeed +# key: pseed +# -- +Product.find_or_create_by_name(parent_id: $1, name: '$2', description: '$3', price: '$4')
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/ProductSeedHW b/oni-ruby/snippets/ruby-mode/ProductSeedHW new file mode 100644 index 0000000..843b32e --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/ProductSeedHW @@ -0,0 +1,5 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ProductSeedWithHW +# key: pseed +# -- +Product.find_or_create_by_name(parent_id: $1, name: '$2', description: '$3', price: '$4', width_in_cm: '$5', height_in_cm: '$6', width_in_mm: '${5:$(round (* 10 (string-to-int yas-text)))}', height_in_mm: '${6:$(round (* 10 (string-to-int yas-text)))}')
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/ProductSeedHWGroup b/oni-ruby/snippets/ruby-mode/ProductSeedHWGroup new file mode 100644 index 0000000..25594c5 --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/ProductSeedHWGroup @@ -0,0 +1,8 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: ProductSeedWithHWGroup +# key: pseed +# -- +Product.find_or_create_by_name(parent_id: $1, name: '$2', description: 'Small', price: '20.00', width_in_cm: '25.00', height_in_cm: '21.00', width_in_mm: '250', height_in_mm: '210') +Product.find_or_create_by_name(parent_id: $1, name: '$2', description: 'Medium', price: '20.00', width_in_cm: '30.00', height_in_cm: '25.80', width_in_mm: '300', height_in_mm: '258') +Product.find_or_create_by_name(parent_id: $1, name: '$2', description: 'Large', price: '20.00', width_in_cm: '35.00', height_in_cm: '30.00', width_in_mm: '350', height_in_mm: '300') +Product.find_or_create_by_name(parent_id: $1, name: '$2', description: 'Extra large', price: '20.00', width_in_cm: '40.00', height_in_cm: '34.00', width_in_mm: '400', height_in_mm: '340') diff --git a/oni-ruby/snippets/ruby-mode/describe b/oni-ruby/snippets/ruby-mode/describe new file mode 100644 index 0000000..acd3a6b --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/describe @@ -0,0 +1,7 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: describe +# key: desc +# -- +describe '$1' do + $0 +end
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/do b/oni-ruby/snippets/ruby-mode/do new file mode 100644 index 0000000..3c556fc --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/do @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: do +# key: do +# -- +do$0 +end
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/factory b/oni-ruby/snippets/ruby-mode/factory new file mode 100644 index 0000000..619b2e5 --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/factory @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: factory +# key: factory +# -- +FactoryGirl.define do + factory :${1:`(file-name-sans-extension (file-name-nondirectory buffer-file-name))`} do + $0 + end +end
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/fill_in b/oni-ruby/snippets/ruby-mode/fill_in new file mode 100644 index 0000000..854b029 --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/fill_in @@ -0,0 +1,5 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: fill_in +# key: fin +# -- +fill_in '$1', with: $2
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/mod b/oni-ruby/snippets/ruby-mode/mod new file mode 100644 index 0000000..9af7d23 --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/mod @@ -0,0 +1,11 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: module ... end +# key: mod +# group: definitions +# -- +module ${1:`(let ((fn (capitalize (file-name-nondirectory + (directory-file-name + default-directory))))) + (replace-regexp-in-string "_" "" fn t t))`} + $0 +end
\ No newline at end of file diff --git a/oni-ruby/snippets/ruby-mode/reduce b/oni-ruby/snippets/ruby-mode/reduce new file mode 100644 index 0000000..3d4bfe4 --- /dev/null +++ b/oni-ruby/snippets/ruby-mode/reduce @@ -0,0 +1,5 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: reduce +# key: reduce +# -- +reduce { |a, e| $0 }
\ No newline at end of file |