Mailroute
Mailroute is a Ruby client for mailroute.net.
Requirements
Ruby 1.8.7, 1.9.3 or 2.0.0.
Installation
Add this line to your application's Gemfile:
gem 'mailroute'
And then execute:
$ bundle
Or install it by yourself as:
$ gem install mailroute
Usage
Configuration
Mailroute.configure(
:username => '<username here>',
:apikey => '0d1a...a33'
)
Reseller
# A list of resellers
Mailroute::Reseller.list #=> [...]
# You can specify limit and offset
Mailroute::Reseller.list.offset(20).limit(30) #=> [...]
reseller = Mailroute::Reseller.get(12) #=> Reseller<...>
reseller.name #=> "John Doe"
reseller.name = 'Jane Doe'
reseller.save
Mailroute::Reseller.get(12).name #=> 'Jane Doe'
reseller.delete
Mailroute::Reseller.get(12) #=> ActiveResource::ResourceNotFound
reseller = Mailroute::Reseller.get(name: 'John Smith') #=> Reseller<...>
resellers = Mailroute::Reseller.search('Smith') #=> [Reseller<...>, ...]
resellers.include?(reseller) #=> true
Mailroute::Reseller.filter(name: 'Smith') #=> [...]
Mailroute::Reseller.filter(name__exact: 'John Smith') #=> [...]
Mailroute::Reseller.filter(name__starts_with: 'Jo') #=> [...]
Mailroute::Reseller.list.order_by('-name')
Mailroute::Reseller.list.order_by('name')
Mailroute::Reseller.list.order_by('created_at')
new_reseller = Mailroute::Reseller.create(name: 'New Guy') #=> Reseller<...>
new_reseller.id #=> 11111
new_resellers = Mailroute::Reseller.bulk_create(
{ name: 'R2D2' },
{ name: '3PO' },
{ name: 'Luke Skywalker' }
)
new_resellers.count #=> 3
# mass deletion
# by ids:
Mailroute::Reseller.delete([10, 12, 13])
# by instances:
Mailroute::Reseller.delete(new_resellers)
# Associations:
reseller.customers #=> [Customer<...>, ...]
reseller.admins #=> [Admin<...>, ...]
reseller.contacts #=> [ResellerContact<...>, ...]
reseller.branding_info #=> BrandingInfo<...>
send_welcome = true
reseller.create_admin('[email protected]', send_welcome) #=> Admin<...>
reseller.delete_admin('[email protected]')
reseller.create_contact(params) #=> ResellerContact<...>
reseller.create_customer(params) #=> Customer<...>
# All list operations allow chaining
Mailroute::Reseller.
limit(10).
offset(30).
filter(name: 'Fox').
order('created_at') #=> [Reseller<...>, ...]
Contributing
- Fork it
- 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 new Pull Request
TODO
- clean up vcr cassettes
2. refactor extensions/activeresource.rb - it's a mess3. implement Reseller.count4. travisci label - check number of API calls in tests
- better error handling when reseller already exists
7. to_many: ["email_account", "localpart_aliases", "default"=>"No default provided.", "help_text"=>"Many related resources. Can be either a list of URIs or list of individually nested resource data.", "nullable"=>true, "readonly"=>true, "related_type"=>"to_many", "type"=>"related", "unique"=>false] - better validation exceptions
- refactor base.rb
- domain.bulk_create_email_accounts 501
11. mailroute.Policy.get_default_policy() - domain.get_quarantine()
- double-check get by name