$ rails g resource article subject body:text
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
class OpenStruct | |
def initialize(args) | |
args.each_pair do |k,v| | |
instance_variable_set "@#{k}", v | |
end | |
end | |
def method_missing(name, *args) | |
instance_variable_get "@#{name}" |
/** | |
* QUÉ ES ESTO | |
* Una manera muy simple de organizar los eventos de una página de tal modo que no están | |
* esparcidos por el código javascript. Inspirado en las vistas de backbone.js | |
* | |
* POR QUÉ | |
* De este modo los eventos que escucha tu página están declarados en un lugar evidente. | |
* | |
* CÓMO USARLO | |
* Crea una clase View que herede de AbstractView. Esta clase debe definir: |
class @AbstractView | |
constructor: -> | |
console.log "I'm not meant to be instantitated" | |
render: -> | |
for event_selector of @events | |
event_selector_array = event_selector.split(' ') | |
event = event_selector_array.reverse().pop() | |
selector = event_selector_array.reverse().join(' ') | |
if selector == 'document' |
/** | |
* Clase de ejemplo o referencia para usarse con AbstractView. | |
*/ | |
View = (function(_super) { | |
__extends(View, _super); | |
function View() { | |
return View.__super__.constructor.apply(this, arguments); | |
} |
# inspired by twitter's RECESS | |
# http://twitter.github.io/recess/ | |
# usage: git diff | ruby ~/linter.rb | |
class Linter | |
def process | |
@result = {} | |
STDIN.each_line do |line| | |
@line = line[2..-1] |
_ = { | |
map: function(hash, lambda) { | |
return Object.keys(hash).map(function(key) { | |
var value = hash[key]; | |
return lambda(value, key); | |
}); | |
}, | |
omit: function(hash, unwanted) { | |
var tmp = {}; |
RxJS and Bacon.js equivalences:
Bacon.js | RxJS | |
---|---|---|
Create stream for keyup events from an element | var inputText$ = $([data-js=my-input]).asEventStream('keyup').map('.target.value'); | var inputText$ = Rx.Observable.fromEvent($('[data-js=my-input]'), 'keyup').pluck('target', 'value') |
Create stream for keyup events from a live element | var inputText$ = $(document).asEventStream('keyup', '[data-js=my-input]').map('.target.value'); | var inputText$ = Rx.Observable.create(function(observer) {$(document).on('keyup', '[data-js=my-input]', function(e) {observer.onNext(e.target.value);});}); |
Subscribe to a stream | inputText$.onValue(function(props) {…}); | inputText$.subscribe(function(props) {…}); |
Create stream from promises | Bacon.fromPromise($.get(url, {text: text})); | Rx.Observable.fromPromise($.get(url, {text: text})); |