Project

flareshow

0.0
No commit activity in last 3 years
No release in over 3 years
a ruby gem for interacting with the shareflow collaboration service by Zenbe
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme
   ___ ___                                 __                            
 /'___\\_ \                               /\ \                           
/\ \__///\ \      __     _ __   __    ____\ \ \___     ___   __  __  __  
\ \ ,__\\ \ \   /'__`\  /\`'__\'__`\ /',__\\ \  _ `\  / __`\/\ \/\ \/\ \ 
 \ \ \_/ \_\ \_/\ \L\.\_\ \ \/\  __//\__, `\\ \ \ \ \/\ \L\ \ \ \_/ \_/ \
  \ \_\  /\____\ \__/.\_\\ \_\ \____\/\____/ \ \_\ \_\ \____/\ \___x___/'
   \/_/  \/____/\/__/\/_/ \/_/\/____/\/___/   \/_/\/_/\/___/  \/__//__/

    ~ a ruby wrapper for the Zenbe Shareflow API

Overview

Flareshow provides a ruby wrapper around the shareflow json rpc wire protocol.

For more information about the Shareflow API see: http://api.zenbe.com

Getting Started

You'll need a shareflow account setup before you can begin interacting with the api. Go to http://getshareflow.com and sign up for a free account.

Authentication

All actions in Flareshow require authenticationFlareshow can automatically authenticate you against your shareflow server. Just create a YAML formatted .flareshowrc file in your home directory with the following keys

subdomain : demo.zenbe.com login : demo password : password

To authenticate manually do the following:

Flareshow::Service.configure(<subdomain>)
Flareshow::Service.authenticate(<login>, <password>)

Usage

Once you've authenticated you can choose to use either interact directly with the Flareshow::Service or use the Flareshow::Resource domain models which encapsulate the domain logic of Shareflow providing a friendlier development environment.

Examples

accessing models and associations

Flareshow offers an ActiveRecord like syntax for retrieving and manipulating models.

# Get the first post from the server ordered by creation date by default
p = Post.first

# Get the comments for that post
p.comments

# get the file attachments for the post
files = p.files

# download a file
files.first.download

reading posts

# the following code will read all posts on the server in a loop
per_request = 30
results = []
offset = 0

loop do 
  posts = Post.find(:offset => offset, :limit => per_request)
  results += posts
  puts results.size
  offset += per_request
  break if posts.empty?
end

upload a file to a Post

p=Post.new()
p.save
p.create_file("/path/to/your/file")

searching for a post

# posts, files, comments include the searchable mixin
# and can be searched using full text search capabilities
# on the server
results = Post.search("some keywords")

deleting a post or comment

Post.first.destroy
Comment.first.destroy

renaming a flow

f=Flow.find_by_name('test')
f.name = 'a different name'
f.save

inviting someone to a flow (only available if you are the creator of the flow)

f=Flow.find_by_name('test')
f.send_invitations('test@test.com')

# this also works
f.send_invitations(['test1@test.com', 'test2@test.com'])

canceling an invitation to a flow (only available if you are the creator of the flow)

f=Flow.find_by_name('test')
# revoke an invitation by the email address that was invited
f.revoke_invitations('test@test.com')

removing a user from a flow (only available if you are the creator of the flow)

f = Flow.find_by_name('test')
users = f.list_users # get a listing of the users on the flow
# remove the last user in the list from the flow...you cant remove yourself in this way
f.remove_members(users.last.id) 

listing all the users on a flow

f=Flow.first
f.list_users