Tinysou
Ruby library for the Tinysou API.
Installation
Add this line to your application's Gemfile:
gem 'tinysou'
And then execute:
$ bundle
Or install it yourself as:
$ gem install tinysou
Usage
client = Tinysou::Client.new 'YOUR_TOKEN'
Engine
List:
client.engines
Create:
client.create_engine name: 'blog', display_name: 'Blog'
Read:
client.engine 'blog'
Update:
client.update_engine 'blog', display_name: 'My Blog'
Delete:
client.destroy_engine 'blog'
Collection
List:
client.collections 'blog'
Create:
client.create_collection 'blog', name: 'posts', field_types: {
title: 'string',
tags: 'string',
author: 'enum',
date: 'date',
body: 'text'
}
Read:
client.collection 'blog', 'posts'
Destroy:
client.destroy_collection 'blog', 'posts'
Document
List:
client.documents 'blog', 'posts', page: 0, per_page: 20
Create:
client.create_document 'blog', 'posts', {
title: 'My First Post',
tags: ['news'],
author: 'Author',
date: '2014-08-16T00:00:00Z',
body: 'Tinysou start online today!'
}
Read:
client.document 'blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29'
Update:
client.update_document 'blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29', {
title: 'First Post'
}
Delete:
client.destroy_document 'blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29'
Search
client.search 'blog', {
q: 'tinysou', c: 'posts',
page: 0, per_parge: 10,
filter: {
range: {
field: "date",
from: "2014-07-01T00:00:00Z",
to: "2014-08-01T00:00:00Z"
}
},
sort: {
field: "date",
order: "asc",
mode: "avg"
}
}
Autocomplete
client.autocomplete 'blog', q: 't', c: 'posts'
Examples
See examples
Contributing
- Fork it ( https://github.com/tinysou/tinysou-ruby/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request