Skip to content

Instantly share code, notes, and snippets.

@TomoyaShibata
TomoyaShibata / Gruntfile.js
Created April 23, 2014 13:25
Backbone.jsのtemplateをgruntを使って外部ファイル化 ref: http://qiita.com/bps_tomoya/items/fc7c27a530b8b3954419
module.exports = function (grunt) {
var pkg = grunt.file.readJSON('package.json');
grunt.initConfig({
jst: {
options: {
processName: function (filename) {
return filename.match(/templates\/(.+)\.tmpl$/)[1];
},
processContent: function (src) {
return src.replace(/(^\s+|\s+$)/gm, '');
@TomoyaShibata
TomoyaShibata / Gruntfile.js
Created April 25, 2014 02:11
jsファイルの結合・圧縮をgruntを使って完全自動化 ref: http://qiita.com/bps_tomoya/items/a8dac15c764d9dfca354
module.exports = function (grunt) {
var pkg = grunt.file.readJSON('package.json');
grunt.initConfig({
concat: {
files: {
// 元ファイルの指定
src : 'js/*.js',
// 出力ファイルの指定
dest: 'js/concat/hogehoge.js'
}
<snippet>
<content>
<![CDATA[<%- ${0:value} %>]]>
</content>
<tabTrigger>%-</tabTrigger>
<scope>text.html</scope>
<description>Underscore.js template with escape &lt;%- %&gt;</description>
</snippet>
@TomoyaShibata
TomoyaShibata / file0.java
Last active August 29, 2015 14:09
Joda-Timeを使っているコードで現在日時を任意の値に設定してテストする ref: http://qiita.com/bps/items/bc061ab4802769668c6a
@Test
public void somethingTest() {
DateTime mockDateTime= new DateTime(2014, 1, 1, 0, 0, 0);
DateTimeUtils.setCurrentMillisFixed(mockDateTime.getMills());
// 現在日時を取得してみると、設定した日時が現在日時として取得される
System.out.println(new DateTime()); // 2014-01-01T00:00:00.000+09:00
// something test code...
}
@TomoyaShibata
TomoyaShibata / gist:3628a9ad6e94e6f08f4f
Created December 1, 2014 14:22
競技的なもの用。
/**
* <summary>
* 標準入力まわり
* </summary> */
Console.ReadLine(); // 普通に読み込み
Console.ReadLine().split(''); // 任意の区切り文字
Convert.ToInt16(Console.ReadLine()); // 数値を手に入れる時(Convertしちゃっていいんだっけ、要確認)
@TomoyaShibata
TomoyaShibata / BackboneMediatorModelHoge.js
Last active August 29, 2015 14:10
Backbone.View 間で共有したい、永続化しない Model。 "Mediator" という名付けがそもそも正しいのかは微妙なことと、こういう共有の方法で問題ないのかがちょっと不明。
this.Mediator.Model.Hoge = _.extend(Backbone.Model.prototype, {
title: 0,
name : 0,
// Viewは意図的に殺すので、監視ではなくViewがメソッドを呼ぶイメージ
changeTitle: function(title) {
this.title = title;
this.trigger('changedTitle');
},
@TomoyaShibata
TomoyaShibata / fetchRn2MusicList.js
Last active August 29, 2015 14:12
RN2 Feedからオンエア時刻と曲目部だけを抽出するJS。chainメソッドを使ってメソッドチェーン化。GoogleFeedAPIに依存。
var musicLists = _.chain(result.feed.entries)
.map(entry => { return entry.content.split('<br>') })
.flatten()
.compact()
.filter(splited => { return /[<\/]/.test(splited) }) // 全角山括弧または半角スラッシュを含む文字列
.value();
@TomoyaShibata
TomoyaShibata / lodash.mixin.js
Last active August 29, 2015 14:13
Underscore.js(lodash.js)の柴田さん独自拡張
(function() {
/**
* Underscore.js(lodash.js)の独自拡張
*/
_.mixin({
/**
* プロパティの値が空なプロパティを削除し、新たなオブジェクトを返却します。
*
* @param {Object} o プロパティを持つオブジェクト
* @return {Object} 値が空なプロパティを削除した新たなオブジェクト
@TomoyaShibata
TomoyaShibata / collection.js
Last active August 29, 2015 14:15
Backbone.Collection に1つ以上の Model が格納できない問題を解決する ref: http://qiita.com/bps/items/fcd8d7456773852b9cce
var Collection = Backbone.collection.extend({
model: Backbone.Model.extend({ idAttribute: 'cid' });
});
var collection = new Collection(attrs);
@TomoyaShibata
TomoyaShibata / is.mixin.js
Created April 16, 2015 06:06
is.js の柴田さん独自拡張
(function() {
/**
* 値が null または空文字または未定義である
* @param v 検証対象値
* @return 検証結果
*/
is.invalidValue = function(v) {
return is.null(v) || is.empty(v) || is.undefined(v);
};
})();