G5 Foundation Client
A Ruby gem to access G5 services, including g5-hub.
Installation
Include g5_foundation_client
in your Gemfile, or manually install with rubygems.
Usage
Before you can run any of the code below, your environment must be configured as G5 Authentication Client expects.
It's pretty limited right now. You may fetch a Location given a UID, which must point to a G5 Hub Location detail page.
> model = G5FoundationClient::Location.find_by_uid("http://example.com/clients/g5-c-123-test/locations/g5-cl-123-test")
=> #<G5FoundationClient::Location:0x007f4aa8c25ef8
@name="Location Name",
@phone="123-123-1234",
@uid=
"http://example.com/clients/g5-c-123-test/locations/g5-cl-123-test">
> model.attributes
=> {:uid=>
"http://example.com/clients/g5-c-123-test/locations/g5-cl-123-test",
:name=>"Test Name",
:phone=>"123-123-1234"}
If this gets much more complicated – and it will – you should probably use YARD and point to rdoc.info, or whatever documentation builder you set up.
Testing
Some helpers methods are available to use (if you're using Rspec) by adding the following to spec_helper
:
require 'g5_foundation_client/rspec'
If your environment includes FactoryGirl, this will also require some factory definitions. You probably want this.
This will give you a method to stub finding a G5FoundationClient::Location
and G5FoundationClient::Client
. Basic example:
stub_location_for_uid(
"http://example.com/location_uid",
G5FoundationClient::Location.new(name: "My Location")
)
If you have FactoryGirl, you can omit the second argument and it will build one for you. The stub_location_for_uid
method (as well as its counterpart for clients) will return the built model, which can pair nicely with a let!
call to both build and stub in one shot.
Contributing
Create a Github pull request. Please make sure that Travis CI passes before you do.