aboutsummaryrefslogtreecommitdiffstats
path: root/oni-ruby
diff options
context:
space:
mode:
Diffstat (limited to 'oni-ruby')
-rw-r--r--oni-ruby/Cask12
-rw-r--r--oni-ruby/oni-ruby.el60
-rw-r--r--oni-ruby/snippets/ruby-mode/ProductSeed5
-rw-r--r--oni-ruby/snippets/ruby-mode/ProductSeedHW5
-rw-r--r--oni-ruby/snippets/ruby-mode/ProductSeedHWGroup8
-rw-r--r--oni-ruby/snippets/ruby-mode/describe7
-rw-r--r--oni-ruby/snippets/ruby-mode/do6
-rw-r--r--oni-ruby/snippets/ruby-mode/factory9
-rw-r--r--oni-ruby/snippets/ruby-mode/fill_in5
-rw-r--r--oni-ruby/snippets/ruby-mode/mod11
-rw-r--r--oni-ruby/snippets/ruby-mode/reduce5
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