This commit is contained in:
Rico Sta. Cruz 2017-08-30 06:02:03 +08:00
parent 1e78ce422b
commit 9b84703c36
No known key found for this signature in database
GPG Key ID: CAAD38AE2962619A
2 changed files with 68 additions and 34 deletions

View File

@ -77,6 +77,14 @@ $(function () {
}) })
}) })
/*
* Helper for splitting to words
*/
function splitwords (str) {
return str.toLowerCase().split(/[ \/\-_]/)
}
/* /*
* Search * Search
*/ */
@ -87,7 +95,7 @@ const Search = {
}, },
show (val) { show (val) {
const keywords = val.split(/[ \-_]/) const keywords = splitwords(val)
const selectors = keywords const selectors = keywords
.map(k => `[data-search-index~=${JSON.stringify(k)}]`) .map(k => `[data-search-index~=${JSON.stringify(k)}]`)
.join('') .join('')
@ -114,7 +122,7 @@ function permutate (data) {
function permutateString (str) { function permutateString (str) {
let words = [] let words = []
let inputs = str.toLowerCase().split(/[ \-_]/) let inputs = splitwords(str)
inputs.forEach(word => { inputs.forEach(word => {
words = words.concat(permutateWord(word)) words = words.concat(permutateWord(word))
}) })

View File

@ -1,8 +1,12 @@
--- ---
title: js-model title: js-model
category: JavaScript libraries category: JavaScript libraries
layout: 2017/sheet
--- ---
### Example
```bash
Project = Model "project", -> Project = Model "project", ->
@extend @extend
findByTitle: (title) -> ... findByTitle: (title) -> ...
@ -11,24 +15,31 @@ category: JavaScript libraries
markAsDone: -> ... markAsDone: -> ...
# ActiveRecord::Base.include_root_in_json = false # ActiveRecord::Base.include_root_in_json = false
}); ```
```bash
project = Project.find(1) project = Project.find(1)
project = Project.findByTitle("hello") project = Project.findByTitle("hello")
project.markAsDone() project.markAsDone()
```
### Persistence ### Persistence
```bash
Project "hi", -> Project "hi", ->
@persistence Model.REST, "/projects" @persistence Model.REST, "/projects"
@persistence Model.localStorage @persistence Model.localStorage
```
```bash
Project.load -> Project.load ->
// loaded # loaded
```
### Attrs ### Attrs
```bash
project = new Project(name: "Hello") project = new Project(name: "Hello")
project.attr('name', "Hey") project.attr('name', "Hey")
@ -36,25 +47,40 @@ category: JavaScript libraries
project.save() project.save()
project.destroy() project.destroy()
```
### Collection ### Collection
```bash
Food.add(egg) Food.add(egg)
Food.all() Food.all()
Food.select (food) -> ... Food.select (food) -> ...
Food.first() Food.first()
```
```bash
Food.find(id) Food.find(id)
```
### Events ### Events
```bash
# Classes
Project.bind "add", (obj) -> Project.bind "add", (obj) ->
Project.bind "remove", (obj) -> Project.bind "remove", (obj) ->
```
```bash
# Instances # Instances
project.bind "update", -> project.bind "update", ->
project.bind "destroy", -> project.bind "destroy", ->
```
```bash
project.trigger "turn_blue" project.trigger "turn_blue"
```
http://benpickles.github.io/js-model/ ## References
{: .-one-column}
- <http://benpickles.github.io/js-model/>