aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2019-08-28 00:09:30 -0700
committerGravatar Tom Willemse2019-08-28 00:09:30 -0700
commit567d78a12c2acc2ce0c75871948825089c94fd09 (patch)
tree08f6a8e676d0d837d5b95eb67ac6781e81910bcb
parent5ad89196c2692e0018d6cfeb708d22fd6620a027 (diff)
downloademacs-config-567d78a12c2acc2ce0c75871948825089c94fd09.tar.gz
emacs-config-567d78a12c2acc2ce0c75871948825089c94fd09.zip
Add snippets for ‘oni-ruby’
-rw-r--r--.gitlab-ci.yml11
-rw-r--r--GNUmakefile16
-rw-r--r--oni-ruby/Cask12
-rw-r--r--oni-ruby/oni-ruby.el (renamed from oni-ruby.el)28
-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
13 files changed, 125 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 21f57cd..cc85730 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -86,6 +86,16 @@ package-oni-python:
paths:
- oni-python/dist/
+package-oni-ruby:
+ stage: pre-package-multifile
+ before_script:
+ - rm -rf oni-elisp/dist
+ script:
+ - cask --path oni-ruby package
+ artifacts:
+ paths:
+ - oni-ruby/dist/
+
test-oni-alert:
stage: test
script: make test-oni-alert
@@ -141,6 +151,7 @@ package:
- package-oni-nxml
- package-oni-php
- package-oni-python
+ - package-oni-ruby
before_script:
- rm -rf bin/
- mkdir bin/
diff --git a/GNUmakefile b/GNUmakefile
index 557aa2a..2b478ff 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -4,7 +4,7 @@ PACKAGE_TARGETS := $(addprefix package-,$(FILES))
package: $(PACKAGE_TARGETS) package-oni-conf package-oni-css package-oni-elisp \
package-oni-haml package-oni-html package-oni-nxml package-oni-org \
- package-oni-php package-oni-python
+ package-oni-php package-oni-python package-oni-ruby
package-%: %
emacs --batch \
@@ -66,6 +66,12 @@ package-oni-python:
--funcall package-initialize \
--eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-python/dist/*.tar\") #'string>)))"
+package-oni-ruby:
+ emacs --batch \
+ --load oni-package.el \
+ --funcall package-initialize \
+ --eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-ruby/dist/*.tar\") #'string>)))"
+
install-%:
emacs --batch \
--load oni-package.el \
@@ -146,6 +152,14 @@ install-oni-python:
$(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \
--eval "(package-install-file (car (sort (file-expand-wildcards \"oni-python/dist/*.tar\") #'string>)))"
+install-oni-ruby:
+ emacs --batch \
+ --load oni-package.el \
+ --fluncall package-initialize \
+ --eval '(package-refresh-contents)' \
+ $(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \
+ --eval "(package-install-file (car (sort (file-expand-wildcards \"oni-ruby/dist/*.tar\") #'string>)))"
+
test-%: install-%
emacs --batch \
--load oni-package.el \
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.el b/oni-ruby/oni-ruby.el
index 43de2c2..6e84184 100644
--- a/oni-ruby.el
+++ b/oni-ruby/oni-ruby.el
@@ -4,8 +4,8 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 20190306003050
-;; Package-Requires: (ruby-mode oni-fci)
+;; 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
@@ -26,10 +26,34 @@
;;; 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)
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