1
0
Fork 0

Add snippets for ‘oni-ruby’

This commit is contained in:
Tom Willemse 2019-08-28 00:09:30 -07:00
parent 5ad89196c2
commit 567d78a12c
13 changed files with 125 additions and 3 deletions

View file

@ -86,6 +86,16 @@ package-oni-python:
paths: paths:
- oni-python/dist/ - 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: test-oni-alert:
stage: test stage: test
script: make test-oni-alert script: make test-oni-alert
@ -141,6 +151,7 @@ package:
- package-oni-nxml - package-oni-nxml
- package-oni-php - package-oni-php
- package-oni-python - package-oni-python
- package-oni-ruby
before_script: before_script:
- rm -rf bin/ - rm -rf bin/
- mkdir bin/ - mkdir bin/

View file

@ -4,7 +4,7 @@ PACKAGE_TARGETS := $(addprefix package-,$(FILES))
package: $(PACKAGE_TARGETS) package-oni-conf package-oni-css package-oni-elisp \ 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-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-%: % package-%: %
emacs --batch \ emacs --batch \
@ -66,6 +66,12 @@ package-oni-python:
--funcall package-initialize \ --funcall package-initialize \
--eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-python/dist/*.tar\") #'string>)))" --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-%: install-%:
emacs --batch \ emacs --batch \
--load oni-package.el \ --load oni-package.el \
@ -146,6 +152,14 @@ install-oni-python:
$(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \ $(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \
--eval "(package-install-file (car (sort (file-expand-wildcards \"oni-python/dist/*.tar\") #'string>)))" --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-% test-%: install-%
emacs --batch \ emacs --batch \
--load oni-package.el \ --load oni-package.el \

12
oni-ruby/Cask Normal file
View file

@ -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/*"))

View file

@ -4,8 +4,8 @@
;; Author: Tom Willemse <tom@ryuslash.org> ;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local ;; Keywords: local
;; Version: 20190306003050 ;; Version: 20190828000216
;; Package-Requires: (ruby-mode oni-fci) ;; Package-Requires: (ruby-mode oni-fci oni-yasnippet)
;; This program is free software; you can redistribute it and/or modify ;; 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 ;; it under the terms of the GNU General Public License as published by
@ -26,10 +26,34 @@
;;; Code: ;;; 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-indent-local-mode)
(add-hook 'ruby-mode-hook 'electric-pair-local-mode) (add-hook 'ruby-mode-hook 'electric-pair-local-mode)
(add-hook 'ruby-mode-hook 'fci-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)) ;;;###autoload(with-eval-after-load 'ruby-mode (require 'oni-ruby))
(provide 'oni-ruby) (provide 'oni-ruby)

View file

@ -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')

View file

@ -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)))}')

View file

@ -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')

View file

@ -0,0 +1,7 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: describe
# key: desc
# --
describe '$1' do
$0
end

View file

@ -0,0 +1,6 @@
# -*- mode: snippet -*-
# name: do
# key: do
# --
do$0
end

View file

@ -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

View file

@ -0,0 +1,5 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: fill_in
# key: fin
# --
fill_in '$1', with: $2

View file

@ -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

View file

@ -0,0 +1,5 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: reduce
# key: reduce
# --
reduce { |a, e| $0 }