JSFiddle - React, Tailwind, and code Playground
by abernier
HTML
<script src="https://raw.github.com/maccman/spine/master/lib/spine.js"></script>
<script src="https://raw.github.com/maccman/spine/master/lib/relation.js"></script>
CoffeeScript
class Book extends Spine.Model
@configure 'Book', 'title'
@hasMany 'pages', 'Page'
window.Book = Book
class Page extends Spine.Model
@configure 'Page', 'content'
@belongsTo 'book', 'Book'
@hasMany 'photos', 'Photo'
window.Page = Page
class Photo extends Spine.Model
@configure 'Photo', 'url'
@belongsTo 'page', 'Page'
window.Photo = Photo
#
# Test 1: feeding 1 level
#
console.log '### TEST 1 ###'
myBook = Book.create(
id: 1
title: 'My book'
pages: ({
id: i
content: "Lorem ipsum #{i}"
} for i in [1..10])
)
console.log myBook.pages().all()
#
# Test 2: feeding 2 levels
#
console.log '### TEST 2 ###'
myBook2 = Book.create(
id: 1
title: 'My book'
pages: ({
id: i
content: "Lorem ipsum #{i}"
photos: ({
id: i * 10 + j
url: "photos/#{j}"
} for j in [1..10])
} for i in [1..10])
)
console.log myBook2.pages().all()
console.log myBook2.pages().first().photos().all()