Skip to content

Instantly share code, notes, and snippets.

# Movies sub-module
require ['app'], (MyApp) ->
MyApp.module 'Movie', (Movie, MyApp, Backbone, Marionette, $, _) ->
Movie.on 'start', ->
.....
# A file movies/ListViews
require ['app'], (MyApp) ->
MyApp.module 'Movie.Views', (Views, MyApp, Backbone, Marionette, $, _) ->
class Views.ItemView extends Marionette.ItemView
class MailSenderServiceTest extends GroovyTestCase {
// logging
Logger logger = Logger.getLogger(MailSenderServiceTest.class.getName())
// service & data
def mailSenderService
def mockMailService
def fixtureData = [:]
@uris77
uris77 / View.Spec.coffee
Created October 5, 2013 08:01
Testing Backbone Views
describe 'View', ->
Given -> @model = {}
Given -> @subject = new View
Then -> expect(@subject.events).toEqual
'click button': 'createAccount'
'change input[name="login"]': 'checkAvailability'
describe 'render', ->
Given -> spyOn(JST, ['app/templates/sign-up-form.us'].andReturn(-> '<div id="woot" />')
class MultiRenderView
render: ->
_(@)
.chain()
.functions()
.select((f) -> f.indexOf("render") == 0)
.without("render")
.each (f) => @[f]()
class MyView extends MultiRenderView
# Convert an instance of Moment to the specified timeZone:
# date = new moment(new Date())
# date.forTimeZone(moment.central)
moment.fn.forTimeZone = (timeZone) ->
currentOffset = (this.zone() * 60) * -1
if this.isDST()
timeZoneOffset = timeZone.utcTotalOffset
else
timeZoneOffset = timeZone.utcOffset
if currentOffset > timeZoneOffset
@uris77
uris77 / FairSqr.js
Last active December 22, 2015 23:29
Fair And Sqr Ex with JS
var reverseNum = function(num) { return num.toString().split('').reverse().join(''); };
var sqrt = function(num) { return Math.sqrt(num); };
var msqrt = _.memoize(function(num){ return sqrt(num); });
var isFair = function(num) { return num == reverseNum(num);};
var isSqr = function(num) { return (msqrt(num) % 1) == 0;};
var sqrFair = function(num) {
var _sqrt = msqrt(num);
return isFair(_sqrt);
};
class List.Controller extends App.Controllers.Base
initialize: (options) ->
@searchModel = options.searchModel
@searchModel.on "change:sortField", @fetchAttendees
@searchModel.on "change:queryString", @fetchAttendees
@searchModel.on "change:group", @fetchAttendees
@fetchAttendees()
@layout = @getLayout()
@show @layout
@uris77
uris77 / stringTrimMonoid.scala
Last active December 22, 2015 00:39
Monoid for trimming strings.
def trimMonoid(s: String): Monoid[String] = new Monoid[String] {
def op(x: String, y: String) = x.trim() + " " + y.trim()
val zero = ""
}
trimMonoid("").op("Something ", " Somewhere ") //=> Something Somewhere
@uris77
uris77 / modularviews.coffee
Created August 23, 2013 19:05
Views configured as modules
@RedParrot.module "AttendeeAdmin.CenterRegion", (CenterRegion, App, Backbone, Marionette, $, _) ->
class CenterRegion.Controller extends App.Controllers.Base
initialize: (options) ->
@region = options.region
@attendee = options.attendee
@layout = @getLayout()
@_listenToLayoutEvents()
@show @layout
@modulesOptions = {region: @layout.tabContentRegion, attendee: @attendee}
def countChange(money: Int, coins: List[Int]): Int = {
def compare(a: Int, b: Int) = {
if (a == b) "=="
else if (a > b) ">"
else "<"
}
def calculateChange(sum: Int, coins: List[Int]): Int = {
if (coins.isEmpty) 0
else