posty_client

posty_client is a client library and command line tool for the post_api server: https://github.com/posty/posty_api

Install

$ gem install posty_client

Usage

You need to create at least a configuration file at ~/.posty-cli.yml. It contains the details how to connect to your api server.

The cli supplies a command to create a template for you:

$ posty-client create_config

Cli usage

$ posty-client help

Library usage examples

require 'pp'

ENV['RESTCLIENT_LOG'] = 'stdout'

$: << '.'
require 'lib/posty_client.rb'

d = PostyClient::Resources::Domain.new('posty-soft1.org')
puts d.name, d.primary_key
pp d.attributes

unless d.save
  pp d.errors
end

d = PostyClient::Resources::Domain.new('posty-soft.org')
unless d.save
  pp d.errors
end

puts '--'*10

pp d.users

puts '*'*20

u = PostyClient::Resources::User.new(d, 'to')
u.attributes['password'] = 'lalalala'
unless u.save
  pp u.errors
  exit
end

a = PostyClient::Resources::UserAlias.new(u, 'tommy')
a.attributes['destination'] = 'bheller'
unless a.save
  pp a.errors
  exit
end

puts '--'*10
pp u.aliases

# Usage with multiple servers
PostyClient::Settings.current_server = 'server1'
# Now all api calls execute on the settings defined for [production|development|test].servers.server1
d = PostyClient::Resources::Domain.new('posty-soft1.org')

# The `PostyClient::Settings.current_server` setting is thread local setting. The following is thus save to use:
%w(server1 server2).map {|server| PostyClient::Settings.current_server = server; # ...}.map(&:join)

Bug reports

If you discover any bugs, feel free to create an issue on GitHub. Please add as much information as possible to help us fixing the possible bug. We also encourage you to help even more by forking and sending us a pull request.

License

MIT License. See LICENSE for details.