Skip to content

Instantly share code, notes, and snippets.

Avatar

Dingding Ye sishen

View GitHub Profile
View cucumber: feature-mode.el.patch
diff --git b/cucumber/feature-mode.el a/cucumber/feature-mode.el
index 06b5667..9f37685 100644
--- b/cucumber/feature-mode.el
+++ a/cucumber/feature-mode.el
@@ -57,7 +57,7 @@
(list
'("^ *Feature:" (0 font-lock-keyword-face) (".*" nil nil (0 font-lock-type-face t)))
'("^ *Background:$" (0 font-lock-keyword-face))
- '("^ *Scenario\\(?: Outline\\)?:" (0 font-lock-keyword-face) (".*" nil nil (0 font-lock-function-name-face t)))
+ '("^ *Scenarios?\\(?: Outline\\)?:" (0 font-lock-keyword-face) (".*" nil nil (0 font-lock-function-name-face t)))
@sishen
sishen / Emacs-JSLint
Created Jan 7, 2011
Emacs Func: Use ~/bin/jslint4java-1.4.4.jar to automatically JSLint the Javascript file
View Emacs-JSLint
;;; C-x c calls jslint and outputs to the *compilation* buffer.
(setq jslint-wrapper (concat "java -jar " (substitute-in-file-name "$HOME") "/bin/jslint4java-1.4.4.jar "))
(require 'compile)
(add-hook 'javascript-mode-hook
(lambda ()
(set (make-local-variable 'compilation-read-command) nil)
(set (make-local-variable 'compile-command)
(concat jslint-wrapper buffer-file-name))
(local-set-key (kbd "C-x c") 'compile)))
@sishen
sishen / clean_eco_template.rb
Created Apr 11, 2012 — forked from doitian/clean_eco_template.rb
CleanEcoTemplate for Sprockets in Rails app
View clean_eco_template.rb
# Put this file in lib/
require 'sprockets/eco_template'
class CleanEcoTemplate < Sprockets::EcoTemplate
FROM = " (function() {"
TO = "}).call(__obj);"
def evaluate(scope, locals, &block)
content = Eco.compile(data)
@sishen
sishen / Usage:
Created May 10, 2012
Controller Observer: It's very similar like Sweeper but the observer should be manually added into config/application.rb. The benefit is that the observe still can be callable in the non-request environment such as console or rake.
View Usage:
# In Controller such as comments_controller.rb
observer :comment_observer, only: [:create, :destroy]
@sishen
sishen / Usage:
Created Jun 4, 2012
Dirty plugin for SpineJS.
View Usage:
So the model object can bind the event "change:#{field} to trigger event when the field value is changed.
By default it's off and if need this feature, the model should extend Spine.Model.Dirty.
A sample case.
class User extends Spine.Model
@extend Spine.Model.Dirty
end
@sishen
sishen / notifier.coffee
Created Aug 2, 2012
Web Notifications integration in Pragmatic.ly
View notifier.coffee
class Notifier
constructor: ->
@enableNotification = false
@checkOrRequirePermission()
hasSupport: ->
window.webkitNotifications?
requestPermission: (cb) ->
window.webkitNotifications.requestPermission (cb)
@sishen
sishen / Pragmatic.ly JS Structure
Created Aug 16, 2012
Tree Structure of a real world Spine App
View Pragmatic.ly JS Structure
├── app
│   ├── controllers
│   │   ├── center
│   │   │   ├── filter_controller.js.coffee
│   │   │   └── tickets_controller.js.coffee
│   │   ├── center_content_controller.coffee
│   │   ├── comments_controller.js.coffee
│   │   ├── header
│   │   │   └── project_nav_controller.js.coffee
│   │   ├── header_controller.coffee
@sishen
sishen / left_iteration_controller.js.coffee
Created Aug 16, 2012
Sample Spine.js Controller in Pragmatic.ly
View left_iteration_controller.js.coffee
class App.LeftIterationController extends Spine.Controller
el: '.sidebar #iterations'
elements:
'ul.list': 'list'
constructor: ->
super
App.Iteration.bind 'create', @addIteration
App.Iteration.bind 'refresh', @refreshIterations
@sishen
sishen / ticket_routing_controller.js.coffee
Created Aug 16, 2012
Sample Spine.js Routing Controller in Pragmatic.ly
View ticket_routing_controller.js.coffee
class App.TicketsController extends Spine.Controller
constructor: ->
super
@routes
"/tickets": @index
"/tickets/:id" : (params) ->
@show(params.id)
index: ->
tickets = App.Ticket.all()
@sishen
sishen / project.js.coffee
Created Aug 16, 2012
Sample Spine.js Model in Pragmatic.ly
View project.js.coffee
class App.Project extends Spine.Model
@configure 'Project', 'id', 'name', 'description', 'owner_id', 'uid'
@extend Spine.Model.Ajax
@extend Spine.Model.Dirty
validate: ->
'name required' unless @name
inviteUser: (email) ->
App.Invitation.create(project_id: @id, email: email)